11name : Build And Release
22
3- on : [workflow_dispatch, push]
3+ on :
4+ workflow_dispatch :
5+ push :
6+ branches :
7+ - main
48
59jobs :
610 Build :
@@ -24,31 +28,22 @@ jobs:
2428 - name : Install pnpm
2529 uses : pnpm/action-setup@v4
2630
27- # linux
28- - name : Install Rust
29- if : ${{ matrix.os == 'ubuntu-latest' }}
30- uses : dtolnay/rust-toolchain@master
31- with :
32- toolchain : stable
33- targets : ${{ matrix.arch == 'arm64' && 'aarch64-unknown-linux-gnu' || 'x86_64-unknown-linux-gnu' }}
34-
35- # macos
36- - name : Install Rust
37- if : ${{ matrix.os == 'macos-latest' }}
38- uses : dtolnay/rust-toolchain@master
39- with :
40- toolchain : stable
41- targets : ${{ matrix.arch == 'arm64' && 'aarch64-apple-darwin' || 'x86_64-apple-darwin' }}
31+ - name : Get Target Name
32+ id : get_target
33+ env :
34+ npm_config_arch : ${{ matrix.arch }}
35+ run : |
36+ echo "target_name=$(node ./utils/getTarget.js)" >> $GITHUB_ENV
4237
43- # windows
4438 - name : Install Rust
45- if : ${{ matrix.os == 'windows-latest' }}
4639 uses : dtolnay/rust-toolchain@master
4740 with :
4841 toolchain : stable
49- targets : ${{ matrix.arch == 'arm64' && 'aarch64-pc-windows-msvc' || 'x86_64-pc-windows-msvc' }}
42+ targets : ${{ steps.get_target.outputs.target_name }}
5043
5144 - name : Building
45+ env :
46+ npm_config_arch : ${{ matrix.arch }}
5247 run : pnpm install
5348
5449 - name : Uploading
6863 with :
6964 submodules : true
7065
66+ - name : Update npm
67+ run : npm install -g npm@latest
68+
69+ - name : Install pnpm
70+ uses : pnpm/action-setup@v4
71+
7172 - name : Download Artifacts
7273 uses : actions/download-artifact@v3
7374
7879 rm -rf bin-*
7980 sudo chmod -R +x bin
8081
82+ - name : Verify Binaries
83+ run : |
84+ // make sure all binaries are present
85+ if [ ! -f bin/dump-syms-linux-x64 ]; then echo "Missing bin/dump-syms-linux-x64" && exit 1; fi
86+ if [ ! -f bin/dump-syms-linux-arm64 ]; then echo "Missing bin/dump-syms-linux-arm64" && exit 1; fi
87+ if [ ! -f bin/dump-syms-macos-x64 ]; then echo "Missing bin/dump-syms-macos-x64" && exit 1; fi
88+ if [ ! -f bin/dump-syms-macos-arm64 ]; then echo "Missing bin/dump-syms-macos-arm64" && exit 1; fi
89+ if [ ! -f bin/dump-syms-windows-x64.exe ]; then echo "Missing bin/dump-syms-windows-x64.exe" && exit 1; fi
90+ if [ ! -f bin/dump-syms-windows-arm64.exe ]; then echo "Missing bin/dump-syms-windows-arm64.exe" && exit 1; fi
91+
92+ - name : Verify Version
93+ run : |
94+ TAG_VERSION=${GITHUB_REF#refs/tags/v}
95+ PACKAGE_VERSION=$(node -p "require('./package.json').version")
96+ if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ]; then
97+ echo "Tag version ($TAG_VERSION) does not match package.json version ($PACKAGE_VERSION)"
98+ exit 1
99+ fi
100+
81101 # this will only publish if the version has been updated
82102 - name : NPM Publish
83- uses :
JS-DevTools/[email protected] 84- with :
85- token : ${{secrets.NPM_TOKEN}}
103+ run : |
104+ npm publish
0 commit comments