9
9
TAG : ${{ github.event.release.tag_name }} # had some issue using this directly on windows
10
10
11
11
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
-
41
12
windows :
42
13
runs-on : windows-latest
43
14
strategy :
57
28
rustup target add ${{ matrix.target }}
58
29
$env:RUSTFLAGS="-C target-feature=+crt-static"
59
30
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 }}
61
32
- name : Deploy
62
33
run : |
63
34
$env:python_version=$(python -c 'import sys; print(\".\".join(map(str, sys.version_info[:3])))')
@@ -80,19 +51,16 @@ jobs:
80
51
run : |
81
52
cargo build -p tmc-langs-cli --release --verbose
82
53
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
84
55
- name : Sign
85
56
run : codesign --force -s - target/release/tmc-langs-cli
86
57
- name : Deploy
87
58
run : |
88
59
gsutil cp target/release/tmc-langs-cli gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-cli-x86_64-apple-darwin-$TAG
89
60
gsutil cp bindings/tmc-langs-node/ts/functions.node gs://${{ secrets.GCP_BUCKET }}/tmc-langs-rust/tmc-langs-x86_64-apple-darwin-$TAG.node
90
61
91
- arm :
62
+ ubuntu :
92
63
runs-on : ubuntu-18.04
93
- strategy :
94
- matrix :
95
- target : [aarch64-unknown-linux-gnu, armv7-unknown-linux-gnueabihf]
96
64
steps :
97
65
- uses : actions/checkout@v2
98
66
- uses : actions/setup-node@v2
@@ -102,14 +70,64 @@ jobs:
102
70
with :
103
71
project_id : ${{ secrets.GCP_PROJECT_ID }}
104
72
service_account_key : ${{ secrets.GCP_SA_KEY }}
105
- - name : Cargo build
73
+ - name : Install dependencies
106
74
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
110
89
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
113
96
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