Skip to content

BREAKING: Replace overcomplicated CI with simple tag-based releases #1

BREAKING: Replace overcomplicated CI with simple tag-based releases

BREAKING: Replace overcomplicated CI with simple tag-based releases #1

Workflow file for this run

name: Simple Release
on:
push:
tags:
- 'v*'
env:
CARGO_TERM_COLOR: always
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
steps:
- uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-linux-android
- name: Install cargo-ndk
run: cargo install cargo-ndk
- name: Install Android NDK
run: |
echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "ndk;26.1.10909125"
echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/26.1.10909125" >> $GITHUB_ENV
echo "ANDROID_NDK_ROOT=$ANDROID_HOME/ndk/26.1.10909125" >> $GITHUB_ENV
- name: Extract version from tag
id: version
run: |
VERSION=${GITHUB_REF#refs/tags/v}
echo "version=$VERSION" >> $GITHUB_OUTPUT
# Update build.gradle to match tag
sed -i "s/version = '[^']*'/version = '$VERSION'/" build.gradle
- name: Run tests
run: cargo test --verbose
- name: Build
run: ./gradlew buildRustJNI assembleRelease
env:
AWS_LC_SYS_NO_ASM_aarch64_linux_android: 1
AWS_LC_SYS_NO_ASM: 1
- name: Publish to GitHub Packages
run: ./gradlew publishReleasePublicationToGitHubPackagesRepository
env:
USERNAME: ${{ github.actor }}
TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: build/outputs/aar/*.aar
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}