Skip to content

Commit 98de421

Browse files
committed
improve deployment workflow
1 parent e013de6 commit 98de421

File tree

2 files changed

+62
-45
lines changed

2 files changed

+62
-45
lines changed

.github/workflows/upload-binaries.yml

+61-43
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,6 @@ env:
99
TAG: ${{ github.event.release.tag_name }} # had some issue using this directly on windows
1010

1111
jobs:
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:
@@ -57,7 +28,7 @@ jobs:
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

bindings/tmc-langs-node/package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
"types": "index.d.ts",
1212
"scripts": {
1313
"build": "cargo-cp-artifact -nc ts/functions.node -- cargo build --message-format=json-render-diagnostics",
14-
"cross": "cargo-cp-artifact -nc ts/functions.node -- cross build --message-format=json-render-diagnostics",
1514
"test": "cargo test && npm run jest",
1615
"jest": "npm install && npm run build && jest"
1716
},
@@ -45,4 +44,4 @@
4544
"d.ts"
4645
]
4746
}
48-
}
47+
}

0 commit comments

Comments
 (0)