11name : Build & publish release
22
33concurrency :
4- group : " build "
4+ group : " release "
55 cancel-in-progress : true
66
77on :
88 workflow_dispatch :
99 push :
10- branches :
11- - release
10+ branches : [ 'release' ]
1211
1312# Required actions secrets:
1413# SONATYPE_USERNAME: sonatype staging repo user token username
2019jobs :
2120 build :
2221 timeout-minutes : 10
23- runs-on : ubuntu-20.04
22+ runs-on : ubuntu-latest
2423 steps :
2524 - name : Checkout
26- uses : actions/checkout@master
25+ uses : actions/checkout@v4
2726 with :
2827 ref : release
29- path : " src"
30-
31- - name : Setup JDK 11
32- uses : actions/setup-java@v2
33- with :
34- java-version : 11
35- distribution : zulu
36- cache : gradle
37-
38- - name : Setup Android SDK
39- uses : android-actions/setup-android@v2
40-
41- - uses : actions/cache@v2
42- with :
43- path : |
44- ~/.cargo/bin/
45- ~/.cargo/registry/index/
46- ~/.cargo/registry/cache/
47- ~/.cargo/git/db/
48- $GITHUB_WORKSPACE/jni/target/
49- $GITHUB_WORKSPACE/zip/target/
50- key : ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
51-
52- - name : Setup Rust toolchain
53- uses : actions-rs/toolchain@v1
54- with :
55- toolchain : nightly
56- profile : minimal
57- default : true
58-
59- - name : Setup Rust Environment
60- run : |
61- rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android
62- cargo ndk --version || cargo install cargo-ndk
6328
6429 - name : Test version
6530 id : version
6631 run : |
67- cd $GITHUB_WORKSPACE/src
6832 version=$(cat lib/build.gradle.kts | grep -E '^version = "' | cut -d \" -f 2)
6933 if git show-ref --tags --quiet --verify -- "refs/tags/$version" >/dev/null; then
7034 echo "Git tag $version already exists, failing to publish";
@@ -73,27 +37,47 @@ jobs:
7337 echo "::set-output name=release_tag::$version"
7438 fi
7539
76- - name : Build and Maven publish
40+ - name : Setup JDK 21
41+ uses : actions/setup-java@v4
42+ with :
43+ java-version : 21
44+ distribution : zulu
45+
46+ - name : Setup Android SDK
47+ uses : android-actions/setup-android@v3
48+
49+ - name : Setup Rust toolchain
50+ run : |
51+ rustup toolchain add --profile=minimal nightly
52+ rustup default nightly
53+ rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android
54+ cargo ndk --version || cargo install cargo-ndk
55+
56+ - name : Build and Publish to Maven
7757 env :
7858 SONATYPE_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
7959 SONATYPE_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
8060 SIGNING_KEY : ${{ secrets.SIGNING_KEY }}
8161 SIGNING_KEY_ID : ${{ secrets.SIGNING_KEY_ID }}
8262 SIGNING_PASSWORD : ${{ secrets.SIGNING_PASSWORD }}
8363 run : |
84- cd $GITHUB_WORKSPACE/src
8564 chmod +x gradlew
86- ./gradlew lib:publish --no-daemon
65+ ./gradlew :lib:publishToMavenLocal :lib:publish --no-daemon --stacktrace
66+
67+ - name : Upload artifacts
68+ uses : actions/upload-artifact@v4
69+ with :
70+ name : libziprs
71+ path : ~/.m2/repository/**
8772
8873 - name : Prepare Release
8974 run : |
90- mkdir -p $GITHUB_WORKSPACE/builds
91- mv -T $GITHUB_WORKSPACE/src/lib/build/outputs/aar/lib-release.aar $GITHUB_WORKSPACE/builds/libziprs-release.aar
75+ (cd && zip /tmp/libziprs.zip -r '**')
9276
9377 - name : Create Release
94- uses : softprops/action-gh-release@v1
78+ uses : softprops/action-gh-release@v2
9579 with :
9680 tag_name : ${{ steps.version.outputs.release_tag }}
9781 generate_release_notes : true
9882 fail_on_unmatched_files : true
99- files : builds/ libziprs-release.aar
83+ files : /tmp/ libziprs.zip
0 commit comments