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 :
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 }}"
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 }}"
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
0 commit comments