Skip to content

Set CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse #173

Set CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse

Set CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse #173

Workflow file for this run

name: Build
on:
push:
branches: [ "main" ]
tags:
- "v*.*.*"
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
submodules: 'recursive'
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v2.4.2
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: 'aarch64-linux-android,armv7-linux-androideabi,x86_64-linux-android,i686-linux-android'
# See https://github.com/Bromeon/godot-rust/blob/master/.github/workflows/full-ci.yml
- name: "Find highest Android NDK version"
run: |
echo $ANDROID_SDK_ROOT
HIGHEST_NDK_VERSION=$(ls $ANDROID_SDK_ROOT/ndk | tail -n1)
echo "Highest Android NDK: $HIGHEST_NDK_VERSION"
EXPECTED_NDK_VERSION=26.1.10909125
echo "Expected Android NDK: $EXPECTED_NDK_VERSION"
[[ "$EXPECTED_NDK_VERSION" == "$HIGHEST_NDK_VERSION" ]];
echo "ANDROID_NDK_VERSION=$EXPECTED_NDK_VERSION" >> $GITHUB_ENV
- name: Build ruslin-data-uniffi
working-directory: ./ruslin-data-uniffi
run: |
./release.sh arm64-v8a
./release.sh armeabi-v7a
./release.sh x86_64
./release.sh x86
- name: Decode Keystore
env:
ENCODED_STRING: ${{ secrets.SIGNING_KEY }}
SIGNING_KEY_ALIAS: ${{ secrets.ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
SIGNING_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
run: |
TMP_KEYSTORE_FILE_PATH="${GITHUB_WORKSPACE}"/upload-keystore.jks
echo $ENCODED_STRING | base64 --decode > "${TMP_KEYSTORE_FILE_PATH}"
echo "storePassword=${SIGNING_STORE_PASSWORD}" >> "${GITHUB_WORKSPACE}"/keystore.properties
echo "keyPassword=${SIGNING_KEY_PASSWORD}" >> "${GITHUB_WORKSPACE}"/keystore.properties
echo "keyAlias=${SIGNING_KEY_ALIAS}" >> "${GITHUB_WORKSPACE}"/keystore.properties
echo "storeFile=${TMP_KEYSTORE_FILE_PATH}" >> "${GITHUB_WORKSPACE}"/keystore.properties
- name: Unable to strip the following libraries ?
run: |
./gradlew :app:stripReleaseDebugSymbols
./gradlew :app:stripReleaseDebugSymbols
- name: Build signed APKs
run: ./gradlew :app:assembleRelease
- name: Build signed Android App Bundle
run: ./gradlew :app:bundleRelease
- name: Prepare artifacts
run: bash ./scripts/prepare_artifacts.sh
- name: Upload signed APKs & Android App Bundle
uses: actions/upload-artifact@v3
with:
name: Signed APKs
path: |
app/build/outputs/apk/release/*.apk
app/build/outputs/bundle/release/*.aab
app/build/outputs/native-debug-symbols/release/*.zip
app/build/outputs/mapping/release/*.zip
- uses: ncipollo/release-action@v1
name: Create nightly release and upload artifacts
if: github.ref == 'refs/heads/main'
with:
name: nightly
commit: main
tag: nightly
artifacts: "app/build/outputs/apk/release/*.apk,app/build/outputs/bundle/release/*.aab,app/build/outputs/native-debug-symbols/release/*.zip,app/build/outputs/mapping/release/*.zip"
body: This is the nightly version of the app (autogenerated).
token: ${{ secrets.GITHUB_TOKEN }}
prerelease: true
allowUpdates: true
removeArtifacts: true
replacesArtifacts: true
- name: Prepare release
if: startsWith(github.ref, 'refs/tags/')
run: node ./scripts/prepare_release.js
- uses: ncipollo/release-action@v1
name: Create release and upload artifacts
if: startsWith(github.ref, 'refs/tags/')
with:
artifacts: "app/build/outputs/apk/release/*.apk,app/build/outputs/bundle/release/*.aab,app/build/outputs/native-debug-symbols/release/*.zip,app/build/outputs/mapping/release/*.zip"
token: ${{ secrets.GITHUB_TOKEN }}
generateReleaseNotes: true
allowUpdates: true
removeArtifacts: true
replacesArtifacts: true
prerelease: contains('refs/tags/*alpha*', github.ref) || contains('refs/tags/*beta*', github.ref) || contains('refs/tags/*rc*', github.ref)