diff --git a/.github/workflows/upload-binaries.yml b/.github/workflows/upload-binaries.yml index c42133b388a..70d96175d6d 100644 --- a/.github/workflows/upload-binaries.yml +++ b/.github/workflows/upload-binaries.yml @@ -72,12 +72,23 @@ jobs: if: ${{ matrix.target != 'x86_64-unknown-linux-musl' }} run: npm --prefix ./crates/bindings/tmc-langs-node run build -- --release --target ${{ matrix.target }} + - name: Generate checksums + run: | + sha256sum ./target/${{ matrix.target }}/release/tmc-langs-cli > ./target/${{ matrix.target }}/release/tmc-langs-cli-${{ matrix.target }}-$TAG.sha256 + if [ "${{ matrix.target }}" != "x86_64-unknown-linux-musl" ]; then + sha256sum ./crates/bindings/tmc-langs-node/ts/functions.node > ./crates/bindings/tmc-langs-node/ts/functions-${{ matrix.target }}-$TAG.node.sha256 + fi + - name: Deploy - run: gsutil cp ./target/${{ matrix.target }}/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-${{ matrix.target }}-$TAG + run: | + gsutil cp ./target/${{ matrix.target }}/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-${{ matrix.target }}-$TAG + gsutil cp ./target/${{ matrix.target }}/release/tmc-langs-cli-${{ matrix.target }}-$TAG.sha256 gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-${{ matrix.target }}-$TAG.sha256 - name: Deploy for node if: ${{ matrix.target != 'x86_64-unknown-linux-musl' }} - run: gsutil cp ./crates/bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$TAG.node + run: | + gsutil cp ./crates/bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$TAG.node + gsutil cp ./crates/bindings/tmc-langs-node/ts/functions-${{ matrix.target }}-$TAG.node.sha256 gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$TAG.node.sha256 windows: runs-on: windows-2022 @@ -111,12 +122,20 @@ jobs: $env:RUSTFLAGS="-C target-feature=+crt-static" # crt-static is set with RUSTFLAGS to statically link MSVCRT (VCRUNTIME140.dll) cargo build -p tmc-langs-cli --release --target ${{ matrix.target }} cd ./crates/bindings/tmc-langs-node && npm install && npm run build -- --release --target ${{ matrix.target }} + + - name: Generate checksums + run: | + Get-FileHash -Path ./target/${{ matrix.target }}/release/tmc-langs-cli.exe -Algorithm SHA256 | Select-Object -ExpandProperty Hash | Out-File -Encoding ASCII ./target/${{ matrix.target }}/release/tmc-langs-cli-${{ matrix.target }}-$Env:TAG.exe.sha256 + Get-FileHash -Path ./crates/bindings/tmc-langs-node/ts/functions.node -Algorithm SHA256 | Select-Object -ExpandProperty Hash | Out-File -Encoding ASCII ./crates/bindings/tmc-langs-node/ts/functions-${{ matrix.target }}-$Env:TAG.node.sha256 + - name: Deploy run: | $env:python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:3])))') $env:CLOUDSDK_PYTHON="C:\hostedtoolcache\windows\Python\$env:python_version\x64\python" gsutil cp ./target/${{ matrix.target }}/release/tmc-langs-cli.exe gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-${{ matrix.target }}-$Env:TAG.exe - gsutil cp ./crates/bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$Env:TAG.node + gsutil cp ./target/${{ matrix.target }}/release/tmc-langs-cli-${{ matrix.target }}-$Env:TAG.exe.sha256 gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-${{ matrix.target }}-$Env:TAG.exe.sha256 + gsutil cp ./crates/bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$Env:TAG.node + gsutil cp ./crates/bindings/tmc-langs-node/ts/functions-${{ matrix.target }}-$Env:TAG.node.sha256 gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$Env:TAG.node.sha256 macos: runs-on: macos-13 @@ -152,9 +171,18 @@ jobs: cargo build -p tmc-langs-cli --release --target ${{ matrix.target }} npm --prefix ./crates/bindings/tmc-langs-node install npm run --prefix ./crates/bindings/tmc-langs-node build -- --release + - name: Sign run: codesign --force -s - target/${{ matrix.target }}/release/tmc-langs-cli + + - name: Generate checksums + run: | + shasum -a 256 ./target/${{ matrix.target }}/release/tmc-langs-cli > ./target/${{ matrix.target }}/release/tmc-langs-cli-${{ matrix.target }}-$TAG.sha256 + shasum -a 256 ./crates/bindings/tmc-langs-node/ts/functions.node > ./crates/bindings/tmc-langs-node/ts/functions-${{ matrix.target }}-$TAG.node.sha256 + - name: Deploy run: | gsutil cp ./target/${{ matrix.target }}/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-${{ matrix.target }}-$TAG - gsutil cp ./crates/bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$TAG.node + gsutil cp ./target/${{ matrix.target }}/release/tmc-langs-cli-${{ matrix.target }}-$TAG.sha256 gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-${{ matrix.target }}-$TAG.sha256 + gsutil cp ./crates/bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$TAG.node + gsutil cp ./crates/bindings/tmc-langs-node/ts/functions-${{ matrix.target }}-$TAG.node.sha256 gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$TAG.node.sha256