Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Commit 48e51b8

Browse files
authored
ci: package cuda dependencies and add checksum.yml (#73)
Co-authored-by: Hien To <tominhhien97@gmail.com>
1 parent 3064523 commit 48e51b8

File tree

2 files changed

+115
-27
lines changed

2 files changed

+115
-27
lines changed

.github/workflows/build.yml

Lines changed: 110 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ jobs:
2929
tag_name: ${{ github.ref_name }}
3030
release_name: "${{ env.VERSION }}"
3131
draft: true
32+
generate_release_notes: true
3233
prerelease: false
3334

3435
build-and-test:
@@ -73,7 +74,7 @@ jobs:
7374
run: |
7475
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
7576
refreshenv
76-
aws s3 cp s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} ${{ matrix.ccache-dir }} --recursive --endpoint ${{ secrets.MINIO_ENDPOINT }} --cli-read-timeout 0
77+
aws s3 sync s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} ${{ matrix.ccache-dir }} --endpoint ${{ secrets.MINIO_ENDPOINT }} --cli-read-timeout 0
7778
env:
7879
AWS_ACCESS_KEY_ID: "${{ secrets.MINIO_ACCESS_KEY_ID }}"
7980
AWS_SECRET_ACCESS_KEY: "${{ secrets.MINIO_SECRET_ACCESS_KEY }}"
@@ -83,7 +84,7 @@ jobs:
8384
if: runner.os == 'Linux'
8485
continue-on-error: true
8586
run: |
86-
aws s3 cp s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} ${{ matrix.ccache-dir }} --recursive --endpoint ${{ secrets.MINIO_ENDPOINT }} --cli-read-timeout 0
87+
aws s3 sync s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} ${{ matrix.ccache-dir }} --endpoint ${{ secrets.MINIO_ENDPOINT }} --cli-read-timeout 0
8788
env:
8889
AWS_ACCESS_KEY_ID: "${{ secrets.MINIO_ACCESS_KEY_ID }}"
8990
AWS_SECRET_ACCESS_KEY: "${{ secrets.MINIO_SECRET_ACCESS_KEY }}"
@@ -95,6 +96,7 @@ jobs:
9596
make build-deps
9697
9798
- name: Build
99+
id: build-and-test
98100
working-directory: cpp
99101
run: |
100102
make build
@@ -109,8 +111,35 @@ jobs:
109111
run: |
110112
make package
111113
114+
- name: Calculate SHA512 Checksum (Windows)
115+
if: runner.os == 'Windows'
116+
shell: pwsh
117+
run: |
118+
CertUtil -hashfile ./cpp/tensorrt_llm/cortex.tensorrt-llm/cortex.tensorrt-llm.tar.gz SHA512 | Select-String -Pattern "^[0-9a-fA-F]+$" | Out-File sha512.txt
119+
$size = (Get-Item ./cpp/tensorrt_llm/cortex.tensorrt-llm/cortex.tensorrt-llm.tar.gz).length
120+
echo "checksum=$(Get-Content sha512.txt)" >> $env:GITHUB_ENV
121+
echo "size=$size" >> $env:GITHUB_ENV
122+
123+
- name: Calculate SHA512 Checksum (Linux)
124+
if: runner.os == 'Linux'
125+
run: |
126+
sha512sum ./cpp/tensorrt_llm/cortex.tensorrt-llm/cortex.tensorrt-llm.tar.gz | awk '{ print $1 }' > sha512.txt
127+
size=$(stat -c%s ./cpp/tensorrt_llm/cortex.tensorrt-llm/cortex.tensorrt-llm.tar.gz)
128+
echo "checksum=$(cat sha512.txt)" >> $GITHUB_ENV
129+
echo "size=$size" >> $GITHUB_ENV
130+
131+
## Write for matrix outputs workaround
132+
- uses: cloudposse/github-action-matrix-outputs-write@v1
133+
id: out
134+
with:
135+
matrix-step-name: ${{ github.job }}
136+
matrix-key: ${{ matrix.os }}-${{ matrix.name }}
137+
outputs: |-
138+
sha512: ${{ env.checksum }}
139+
size: ${{ env.size }}
140+
112141
- name: Upload Artifact
113-
uses: actions/upload-artifact@v2
142+
uses: actions/upload-artifact@v4
114143
with:
115144
name: cortex.tensorrt-llm-${{ matrix.os }}-${{ matrix.name }}
116145
path: cpp/tensorrt_llm/cortex.tensorrt-llm/cortex.tensorrt-llm.tar.gz
@@ -131,7 +160,7 @@ jobs:
131160
run: |
132161
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
133162
refreshenv
134-
aws s3 cp ${{ matrix.ccache-dir }} s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} --recursive --endpoint ${{ secrets.MINIO_ENDPOINT }}
163+
aws s3 sync ${{ matrix.ccache-dir }} s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} --endpoint ${{ secrets.MINIO_ENDPOINT }}
135164
env:
136165
AWS_ACCESS_KEY_ID: "${{ secrets.MINIO_ACCESS_KEY_ID }}"
137166
AWS_SECRET_ACCESS_KEY: "${{ secrets.MINIO_SECRET_ACCESS_KEY }}"
@@ -141,32 +170,91 @@ jobs:
141170
continue-on-error: true
142171
if: always() && runner.os == 'Linux'
143172
run: |
144-
aws s3 cp ${{ matrix.ccache-dir }} s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} --recursive --endpoint ${{ secrets.MINIO_ENDPOINT }}
173+
aws s3 sync ${{ matrix.ccache-dir }} s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} --endpoint ${{ secrets.MINIO_ENDPOINT }}
145174
env:
146175
AWS_ACCESS_KEY_ID: "${{ secrets.MINIO_ACCESS_KEY_ID }}"
147176
AWS_SECRET_ACCESS_KEY: "${{ secrets.MINIO_SECRET_ACCESS_KEY }}"
148177
AWS_DEFAULT_REGION: "${{ secrets.MINIO_REGION }}"
149178

150-
update_release_draft:
179+
## Read matrix outputs
180+
read:
181+
runs-on: ubuntu-latest
151182
needs: [build-and-test]
183+
steps:
184+
- uses: cloudposse/github-action-matrix-outputs-read@v1
185+
id: read
186+
with:
187+
matrix-step-name: build-and-test
188+
outputs:
189+
result: "${{ steps.read.outputs.result }}"
190+
191+
192+
create-checksum-file:
193+
runs-on: ubuntu-20-04
152194
permissions:
153-
# write permission is required to create a github release
154195
contents: write
155-
# write permission is required for autolabeler
156-
# otherwise, read permission is required at least
157-
pull-requests: write
158-
runs-on: ubuntu-latest
196+
needs: [read, create-draft-release]
159197
steps:
160-
# (Optional) GitHub Enterprise requires GHE_HOST variable set
161-
#- name: Set GHE_HOST
162-
# run: |
163-
# echo "GHE_HOST=${GITHUB_SERVER_URL##https:\/\/}" >> $GITHUB_ENV
164-
165-
# Drafts your next Release notes as Pull Requests are merged into "master"
166-
- uses: release-drafter/release-drafter@v5
167-
# (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml
168-
# with:
169-
# config-name: my-config.yml
170-
# disable-autolabeler: true
198+
- name: Download cuda dependencies from s3 and create checksum
199+
run: |
200+
wget http://minio.jan.ai:9000/cicd/dist/cuda-dependencies/12.4/linux/cuda.tar.gz -O /tmp/cuda-12-4-linux-amd64.tar.gz
201+
# wget http://minio.jan.ai:9000/cicd/dist/cuda-dependencies/12.4/windows/cuda.tar.gz -O /tmp/cuda-12-4-windows-amd64.tar.gz
202+
203+
version=${{ needs.create-draft-release.outputs.version }}
204+
outputs=${{ toJson(needs.read.outputs.result) }}
205+
206+
echo $outputs
207+
208+
echo "version: $version" > checksum.yml
209+
echo "files:" >> checksum.yml
210+
211+
echo "$outputs" | jq -r --arg version "$version" '
212+
.sha512 as $sha512 |
213+
.size as $size |
214+
(.sha512 | keys[]) as $key |
215+
"- url: cortex.llamacpp-\($version)-\($key).tar.gz\n sha512: >-\n \($sha512[$key])\n size: \($size[$key])"
216+
' >> checksum.yml
217+
218+
echo "- url: cuda-12-4-linux-amd64.tar.gz" >> checksum.yml
219+
echo " sha512: >-" >> checksum.yml
220+
echo " $(sha512sum /tmp/cuda-12-4-linux-amd64.tar.gz | awk '{ print $1 }')" >> checksum.yml
221+
echo " size: $(stat -c%s /tmp/cuda-12-4-linux-amd64.tar.gz)" >> checksum.yml
222+
223+
# echo "- url: cuda-12-4-windows-amd64.tar.gz" >> checksum.yml
224+
# echo " sha512: >-" >> checksum.yml
225+
# echo " $(sha512sum /tmp/cuda-12-4-windows-amd64.tar.gz | awk '{ print $1 }')" >> checksum.yml
226+
# echo " size: $(stat -c%s /tmp/cuda-12-4-windows-amd64.tar.gz)" >> checksum.yml
227+
cat checksum.yml
228+
229+
- name: Upload checksum.yml to GitHub Release
230+
uses: actions/upload-release-asset@v1
231+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
232+
env:
233+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
234+
with:
235+
upload_url: ${{ needs.create-draft-release.outputs.upload_url }}
236+
asset_path: ./checksum.yml
237+
asset_name: checksum.yml
238+
asset_content_type: text/yaml
239+
240+
- name: upload cuda-12-4-linux-amd64.tar.gz to Github Release
241+
uses: actions/upload-release-asset@v1
242+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
171243
env:
172244
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
245+
with:
246+
upload_url: ${{ needs.create-draft-release.outputs.upload_url }}
247+
asset_path: /tmp/cuda-12-4-linux-amd64.tar.gz
248+
asset_name: cuda-12-4-linux-amd64.tar.gz
249+
asset_content_type: application/gzip
250+
251+
# - name: upload cuda-12-4-windows-amd64.tar.gz to Github Release
252+
# uses: actions/upload-release-asset@v1
253+
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
254+
# env:
255+
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
256+
# with:
257+
# upload_url: ${{ needs.create-draft-release.outputs.upload_url }}
258+
# asset_path: /tmp/cuda-12-4-windows-amd64.tar.gz
259+
# asset_name: cuda-12-4-windows-amd64.tar.gz
260+
# asset_content_type: application/gzip

.github/workflows/quality-gate.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
run: |
4949
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
5050
refreshenv
51-
aws s3 cp s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} ${{ matrix.ccache-dir }} --recursive --endpoint ${{ secrets.MINIO_ENDPOINT }} --cli-read-timeout 0
51+
aws s3 sync s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} ${{ matrix.ccache-dir }} --endpoint ${{ secrets.MINIO_ENDPOINT }} --cli-read-timeout 0
5252
env:
5353
AWS_ACCESS_KEY_ID: "${{ secrets.MINIO_ACCESS_KEY_ID }}"
5454
AWS_SECRET_ACCESS_KEY: "${{ secrets.MINIO_SECRET_ACCESS_KEY }}"
@@ -58,7 +58,7 @@ jobs:
5858
if: runner.os == 'Linux'
5959
continue-on-error: true
6060
run: |
61-
aws s3 cp s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} ${{ matrix.ccache-dir }} --recursive --endpoint ${{ secrets.MINIO_ENDPOINT }} --cli-read-timeout 0
61+
aws s3 sync s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} ${{ matrix.ccache-dir }} --endpoint ${{ secrets.MINIO_ENDPOINT }} --cli-read-timeout 0
6262
env:
6363
AWS_ACCESS_KEY_ID: "${{ secrets.MINIO_ACCESS_KEY_ID }}"
6464
AWS_SECRET_ACCESS_KEY: "${{ secrets.MINIO_SECRET_ACCESS_KEY }}"
@@ -85,7 +85,7 @@ jobs:
8585
make package
8686
8787
- name: Upload Artifact
88-
uses: actions/upload-artifact@v2
88+
uses: actions/upload-artifact@v4
8989
with:
9090
name: cortex.tensorrt-llm-${{ matrix.os }}-${{ matrix.name }}
9191
path: cpp/tensorrt_llm/cortex.tensorrt-llm/cortex.tensorrt-llm.tar.gz
@@ -96,7 +96,7 @@ jobs:
9696
run: |
9797
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
9898
refreshenv
99-
aws s3 cp ${{ matrix.ccache-dir }} s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} --recursive --endpoint ${{ secrets.MINIO_ENDPOINT }}
99+
aws s3 sync ${{ matrix.ccache-dir }} s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} --endpoint ${{ secrets.MINIO_ENDPOINT }}
100100
env:
101101
AWS_ACCESS_KEY_ID: "${{ secrets.MINIO_ACCESS_KEY_ID }}"
102102
AWS_SECRET_ACCESS_KEY: "${{ secrets.MINIO_SECRET_ACCESS_KEY }}"
@@ -106,7 +106,7 @@ jobs:
106106
continue-on-error: true
107107
if: always() && runner.os == 'Linux'
108108
run: |
109-
aws s3 cp ${{ matrix.ccache-dir }} s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} --recursive --endpoint ${{ secrets.MINIO_ENDPOINT }}
109+
aws s3 sync ${{ matrix.ccache-dir }} s3://${{ secrets.MINIO_BUCKET_NAME }}/${{ matrix.s3-key-prefix }} --endpoint ${{ secrets.MINIO_ENDPOINT }}
110110
env:
111111
AWS_ACCESS_KEY_ID: "${{ secrets.MINIO_ACCESS_KEY_ID }}"
112112
AWS_SECRET_ACCESS_KEY: "${{ secrets.MINIO_SECRET_ACCESS_KEY }}"

0 commit comments

Comments
 (0)