40
40
arch : win-x64
41
41
- os : ubuntu-latest
42
42
arch : linux-x64
43
+ - os : ubuntu-latest
44
+ arch : linux-aarch64
43
45
- os : macos-latest
44
46
arch : macos-arm64
45
47
- os : macos-12
@@ -48,23 +50,41 @@ jobs:
48
50
49
51
steps :
50
52
- uses : actions/checkout@v4
53
+ - name : Configure target
54
+ run : |
55
+ if [[ "${{ matrix.config.arch }}" == "linux-aarch64" ]]; then
56
+ rustup target add aarch64-unknown-linux-gnu
57
+ sudo apt-get install gcc-aarch64-linux-gnu
58
+ echo TARGET="--target aarch64-unknown-linux-gnu" >> $GITHUB_ENV
59
+ echo RUSTFLAGS="-C linker=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
60
+ else
61
+ echo TARGET="" >> $GITHUB_ENV
62
+ fi
63
+ shell : bash
64
+
51
65
- name : Build
52
- run : cargo build --release
66
+ run : cargo build --release ${{ env.TARGET }}
67
+
53
68
- name : Run tests
54
- run : cargo test
69
+ if : matrix.config.arch != 'linux-aarch64'
70
+ run : cargo test --release ${{ env.TARGET }}
71
+
55
72
- name : Run help
56
- run : cargo run -- --help
73
+ if : matrix.config.arch != 'linux-aarch64'
74
+ run : cargo run --release ${{ env.TARGET }} -- --help
57
75
58
76
- name : Prepare artifacts
59
77
run : |
60
- if [[ "${{ runner.os }}" == "Windows" ]]; then
61
- WCHISP_EXE="wchisp.exe"
78
+ if [[ "${{ matrix.config.arch }}" == "win-x64" ]]; then
79
+ WCHISP_EXE="target/release/wchisp.exe"
80
+ elif [[ "${{ matrix.config.arch }}" == "linux-aarch64" ]]; then
81
+ WCHISP_EXE="target/aarch64-unknown-linux-gnu/release/wchisp"
62
82
else
63
- WCHISP_EXE="wchisp"
83
+ WCHISP_EXE="target/release/ wchisp"
64
84
fi
65
85
66
86
mkdir wchisp-${{ matrix.config.arch }}
67
- cp target/release/ $WCHISP_EXE wchisp-${{ matrix.config.arch }}
87
+ cp $WCHISP_EXE wchisp-${{ matrix.config.arch }}
68
88
cp README.md wchisp-${{ matrix.config.arch }}
69
89
shell : bash
70
90
- uses : actions/upload-artifact@v4
0 commit comments