1+ name : Release Android
2+
3+ on :
4+ workflow_dispatch :
5+ inputs :
6+ tag :
7+ description : ' Tag to release (e.g., v0.1.0)'
8+ required : true
9+ prerelease :
10+ description : ' Mark as pre-release'
11+ type : boolean
12+ default : false
13+
14+ permissions :
15+ contents : write
16+
17+ env :
18+ CARGO_TERM_COLOR : always
19+
20+ jobs :
21+ build-android :
22+ name : Build Android (Termux)
23+ runs-on : ubuntu-latest
24+ steps :
25+ - name : Checkout
26+ uses : actions/checkout@v4
27+
28+ - name : Install Rust
29+ uses : dtolnay/rust-toolchain@stable
30+ with :
31+ targets : aarch64-linux-android
32+
33+ - name : Setup Android NDK linker
34+ run : |
35+ NDK_BIN="$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin"
36+ echo "CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=$NDK_BIN/aarch64-linux-android24-clang" >> $GITHUB_ENV
37+ echo "AR_aarch64_linux_android=$NDK_BIN/llvm-ar" >> $GITHUB_ENV
38+
39+ - name : Build
40+ run : cargo build --release --target aarch64-linux-android
41+ env :
42+ RTK_TELEMETRY_URL : ${{ vars.RTK_TELEMETRY_URL }}
43+ RTK_TELEMETRY_TOKEN : ${{ secrets.RTK_TELEMETRY_TOKEN }}
44+
45+ - name : Package
46+ run : |
47+ cd target/aarch64-linux-android/release
48+ tar -czvf ../../../rtk-aarch64-linux-android.tar.gz rtk
49+ cd ../../..
50+
51+ - name : Upload artifact
52+ uses : actions/upload-artifact@v4
53+ with :
54+ name : rtk-aarch64-linux-android
55+ path : rtk-aarch64-linux-android.tar.gz
56+
57+ release :
58+ name : Create Release
59+ needs : [build-android]
60+ runs-on : ubuntu-latest
61+ steps :
62+ - name : Download artifacts
63+ uses : actions/download-artifact@v4
64+ with :
65+ path : artifacts
66+
67+ - name : Flatten artifacts
68+ run : |
69+ mkdir -p release
70+ find artifacts -type f -name "*.tar.gz" -exec cp {} release/ \;
71+
72+ - name : Create checksums
73+ run : |
74+ cd release
75+ sha256sum * > checksums.txt
76+
77+ - name : Upload Release Assets
78+ uses : softprops/action-gh-release@v2
79+ with :
80+ tag_name : ${{ inputs.tag }}
81+ files : release/*
82+ prerelease : ${{ inputs.prerelease }}
83+ env :
84+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments