99 TAG : ${{ github.event.release.tag_name }} # had some issue using this directly on windows
1010
1111jobs :
12- linux :
13- runs-on : ubuntu-18.04
14- strategy :
15- matrix :
16- target : [i686-unknown-linux-gnu, x86_64-unknown-linux-gnu]
17- steps :
18- - uses : actions/checkout@v2
19- - uses : actions/setup-node@v2
20- with :
21- node-version : ' 16'
22- - uses : GoogleCloudPlatform/github-actions/setup-gcloud@master
23- with :
24- project_id : ${{ secrets.GCP_PROJECT_ID }}
25- service_account_key : ${{ secrets.GCP_SA_KEY }}
26- - name : Install dependencies
27- run : |
28- sudo apt update
29- sudo apt install -y gcc-multilib # required to build for 32-bit arch
30- - name : Build
31- run : |
32- rustup target add ${{ matrix.target }}
33- cargo build -p tmc-langs-cli --release --verbose --target ${{ matrix.target }}
34- npm --prefix ./bindings/tmc-langs-node install
35- npm --prefix ./bindings/tmc-langs-node run build -- --release --verbose --target ${{ matrix.target }}
36- - name : Deploy
37- run : |
38- gsutil cp target/${{ matrix.target }}/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-${{ matrix.target }}-$TAG
39- gsutil cp bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$TAG.node
40-
4112 windows :
4213 runs-on : windows-latest
4314 strategy :
5728 rustup target add ${{ matrix.target }}
5829 $env:RUSTFLAGS="-C target-feature=+crt-static"
5930 cargo build -p tmc-langs-cli --release --verbose --target ${{ matrix.target }}
60- cd ./bindings/tmc-langs-node && npm install && npm run build -- --release --verbose -- target ${{ matrix.target }}
31+ cd ./bindings/tmc-langs-node && npm install && npm run build -- --release --target ${{ matrix.target }}
6132 - name : Deploy
6233 run : |
6334 $env:python_version=$(python -c 'import sys; print(\".\".join(map(str, sys.version_info[:3])))')
@@ -80,19 +51,16 @@ jobs:
8051 run : |
8152 cargo build -p tmc-langs-cli --release --verbose
8253 npm --prefix ./bindings/tmc-langs-node install
83- npm run --prefix ./bindings/tmc-langs-node build -- --release --verbose
54+ npm run --prefix ./bindings/tmc-langs-node build -- --release
8455 - name : Sign
8556 run : codesign --force -s - target/release/tmc-langs-cli
8657 - name : Deploy
8758 run : |
8859 gsutil cp target/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-x86_64-apple-darwin-$TAG
8960 gsutil cp bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-x86_64-apple-darwin-$TAG.node
9061
91- arm :
62+ ubuntu :
9263 runs-on : ubuntu-18.04
93- strategy :
94- matrix :
95- target : [aarch64-unknown-linux-gnu, armv7-unknown-linux-gnueabihf]
9664 steps :
9765 - uses : actions/checkout@v2
9866 - uses : actions/setup-node@v2
@@ -102,14 +70,64 @@ jobs:
10270 with :
10371 project_id : ${{ secrets.GCP_PROJECT_ID }}
10472 service_account_key : ${{ secrets.GCP_SA_KEY }}
105- - name : Cargo build
73+ - name : Install dependencies
10674 run : |
107- rustup target add ${{ matrix.target }}
108- cargo install cross
109- cross build -p tmc-langs-cli --release --verbose --target ${{ matrix.target }}
75+ sudo apt update
76+ sudo apt install -y gcc-multilib # required to build for 32-bit arch
77+ sudo apt install -y gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf # linkers for ARM targets
78+
79+ - name : x86_64-unknown-linux-gnu
80+ env :
81+ TARGET : x86_64-unknown-linux-gnu
82+ run : |
83+ # build and deploy CLI
84+ rustup target add $TARGET
85+ cargo build -p tmc-langs-cli --release --verbose --target $TARGET
86+ gsutil cp target/$TARGET/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-$TARGET-$TAG
87+
88+ # build and deploy Node module
11089 npm --prefix ./bindings/tmc-langs-node install
111- npm --prefix ./bindings/tmc-langs-node run cross -- --release --verbose --target ${{ matrix.target }}
112- - name : Deploy
90+ npm --prefix ./bindings/tmc-langs-node run build -- --release --target $TARGET
91+ gsutil cp bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-$TARGET-$TAG.node
92+
93+ - name : i686-unknown-linux-gnu
94+ env :
95+ TARGET : i686-unknown-linux-gnu
11396 run : |
114- gsutil cp target/${{ matrix.target }}/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-${{ matrix.target }}-$TAG
115- gsutil cp bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-${{ matrix.target }}-$TAG.node
97+ # build and deploy CLI
98+ rustup target add $TARGET
99+ cargo build -p tmc-langs-cli --release --verbose --target $TARGET
100+ gsutil cp target/$TARGET/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-$TARGET-$TAG
101+
102+ # build and deploy Node module
103+ npm --prefix ./bindings/tmc-langs-node install
104+ npm --prefix ./bindings/tmc-langs-node run build -- --release --target $TARGET
105+ gsutil cp bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-$TARGET-$TAG.node
106+
107+ - name : aarch64-unknown-linux-gnu
108+ env :
109+ TARGET : aarch64-unknown-linux-gnu
110+ run : |
111+ # build and deploy CLI
112+ rustup target add $TARGET
113+ cargo build -p tmc-langs-cli --release --verbose --target $TARGET
114+ gsutil cp target/$TARGET/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-$TARGET-$TAG
115+
116+ # build and deploy Node module
117+ npm --prefix ./bindings/tmc-langs-node install
118+ npm --prefix ./bindings/tmc-langs-node run build -- --release --target $TARGET
119+ gsutil cp bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-$TARGET-$TAG.node
120+
121+ - name : armv7-unknown-linux-gnueabihf
122+ env :
123+ TARGET : armv7-unknown-linux-gnueabihf
124+ run : |
125+ # build and deploy CLI
126+ rustup target add $TARGET
127+ cargo build -p tmc-langs-cli --release --verbose --target $TARGET
128+ gsutil cp target/$TARGET/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-$TARGET-$TAG
129+
130+ # build and deploy Node module
131+ npm --prefix ./bindings/tmc-langs-node install
132+ npm --prefix ./bindings/tmc-langs-node run build -- --release --target $TARGET
133+ gsutil cp bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-$TARGET-$TAG.node
0 commit comments