Update Library manual #4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update Library manual | |
on: | |
workflow_dispatch: | |
jobs: | |
update_framework: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout CEL Repository | |
uses: actions/checkout@v4 | |
with: | |
path: android | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
working-directory: android | |
- name: Checkout CEL Rust Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: superwall/superscript | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: rust | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v2 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
- name: Extract Version Number from Cargo.toml | |
id: extract_version | |
run: | | |
version=$(grep '^version =' rust/Cargo.toml | sed -E 's/version = "(.*)"/\1/') | |
echo "VERSION_NUMBER=$version" >> $GITHUB_ENV | |
- name: Cache Rust toolchain | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo | |
~/.rustup | |
key: ${{ runner.os }}-rust-toolchain-${{ hashFiles('**/rust-toolchain') }} | |
- name: Cache Cargo registry | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} | |
- name: Cache Cargo build | |
uses: actions/cache@v3 | |
with: | |
path: rust/target | |
key: ${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo-build- | |
- name: Install Rust (if not cached) | |
run: | | |
if [ ! -x "$(command -v rustup)" ]; then | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
fi | |
source $HOME/.cargo/env | |
shell: bash | |
- name: Install cross | |
run: cargo install cross --git https://github.com/cross-rs/cross | |
- name: Build Android Framework | |
run: | | |
chmod +x ./build_android.sh | |
./build_android.sh | |
working-directory: rust | |
- name: Replace binaries | |
run: | | |
rm -rf android/supercel/src/main/jniLibs/ | |
mv rust/target/android/jniLibs android/supercel/src/main/jniLibs/ | |
- name: Replace Kotlin File | |
run: | | |
rm -rf android/supercel/src/main/java/com/superwall/supercel/Cel.kt | |
mv rust/target/android/java/uniffi/cel/com/superwall/supercel/cel.kt android/supercel/src/main/java/com/superwall/supercel/CEL.kt | |
- name: Remove lines containing RequiresApi | |
run: | | |
sed -i '/RequiresApi/d' ./android/supercel/src/main/java/com/superwall/supercel/CEL.kt | |
- name: Build and publish | |
env: | |
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }} | |
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_KEY_PW}} | |
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SECRING }} | |
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }} | |
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PW }} | |
run: ./gradlew publish | |
working-directory: android |