@@ -17,10 +17,19 @@ jobs:
1717 include :
1818 - target : x86_64-unknown-linux-musl
1919 os : ubuntu-latest
20- artifact : batdoc-linux-x86_64.zst
20+ arch : x86_64
21+ platform : linux
22+ cross : false
23+ - target : aarch64-unknown-linux-musl
24+ os : ubuntu-latest
25+ arch : aarch64
26+ platform : linux
27+ cross : true
2128 - target : aarch64-apple-darwin
2229 os : macos-latest
23- artifact : batdoc-darwin-aarch64.zst
30+ arch : aarch64
31+ platform : darwin
32+ cross : false
2433
2534 runs-on : ${{ matrix.os }}
2635
@@ -35,21 +44,48 @@ jobs:
3544 with :
3645 key : ${{ matrix.target }}
3746
38- - name : Install musl tools
47+ - name : Install musl tools (x86_64)
3948 if : matrix.target == 'x86_64-unknown-linux-musl'
4049 run : sudo apt-get update && sudo apt-get install -y musl-tools
4150
51+ - name : Install cross-compilation tools (aarch64-linux)
52+ if : matrix.target == 'aarch64-unknown-linux-musl'
53+ run : |
54+ sudo apt-get update && sudo apt-get install -y musl-tools
55+ wget -qO- https://musl.cc/aarch64-linux-musl-cross.tgz | sudo tar xz -C /opt
56+ echo "/opt/aarch64-linux-musl-cross/bin" >> "$GITHUB_PATH"
57+
58+ - name : Set version from tag
59+ run : echo "VERSION=${GITHUB_REF_NAME#v}" >> "$GITHUB_ENV"
60+
4261 - name : Build
62+ env :
63+ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER : aarch64-linux-musl-gcc
4364 run : cargo build --release --target ${{ matrix.target }}
4465
45- - name : Compress binary
46- run : zstd -19 target/${{ matrix.target }}/release/batdoc -o ${{ matrix.artifact }}
66+ - name : Compress binary (zstd)
67+ run : zstd -19 target/${{ matrix.target }}/release/batdoc -o batdoc-${{ matrix.platform }}-${{ matrix.arch }}.zst
68+
69+ - name : Create tar.gz archive
70+ if : matrix.platform == 'linux'
71+ run : |
72+ mkdir -p batdoc_${{ env.VERSION }}_${{ matrix.arch }}
73+ cp target/${{ matrix.target }}/release/batdoc batdoc_${{ env.VERSION }}_${{ matrix.arch }}/
74+ cp LICENSE README.md batdoc_${{ env.VERSION }}_${{ matrix.arch }}/
75+ tar czf batdoc_${{ env.VERSION }}_${{ matrix.arch }}.tar.gz batdoc_${{ env.VERSION }}_${{ matrix.arch }}/
76+
77+ - name : Upload zstd artifact
78+ uses : actions/upload-artifact@v4
79+ with :
80+ name : batdoc-${{ matrix.platform }}-${{ matrix.arch }}.zst
81+ path : batdoc-${{ matrix.platform }}-${{ matrix.arch }}.zst
4782
48- - name : Upload artifact
83+ - name : Upload tar.gz artifact
84+ if : matrix.platform == 'linux'
4985 uses : actions/upload-artifact@v4
5086 with :
51- name : ${{ matrix.artifact }}
52- path : ${{ matrix.artifact }}
87+ name : batdoc_ ${{ env.VERSION }}_${{ matrix.arch }}.tar.gz
88+ path : batdoc_ ${{ env.VERSION }}_${{ matrix.arch }}.tar.gz
5389
5490 packages :
5591 runs-on : ubuntu-latest
@@ -93,7 +129,10 @@ jobs:
93129 generate_release_notes : true
94130 files : |
95131 batdoc-linux-x86_64.zst
132+ batdoc-linux-aarch64.zst
96133 batdoc-darwin-aarch64.zst
134+ batdoc_*_x86_64.tar.gz
135+ batdoc_*_aarch64.tar.gz
97136 *.deb
98137 *.rpm
99138 *.apk
0 commit comments