name: Upload Release APK on: push: branches: [ master ] tags: - 'v*.*.*' jobs: check: runs-on: ubuntu-latest outputs: match: ${{ steps.check-tag.outputs.match }} steps: - id: check-tag run: | if [[ "${{ github.event.ref }}" =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+.*$ ]]; then echo ::set-output name=match::true fi build: needs: check if: needs.check.outputs.match == 'true' name: Upload Release APK runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - uses: textbook/git-checkout-submodule-action@master - run: cp jni/deltachat-core-rust/rust-toolchain . - uses: actions-rs/toolchain@v1 - uses: Swatinem/rust-cache@v1 with: working-directory: jni/deltachat-core-rust - uses: actions/setup-java@v1.4.3 with: java-version: 11 - uses: android-actions/setup-android@v2 - uses: nttld/setup-ndk@v1 id: setup-ndk with: ndk-version: r21d - name: Compile core env: ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }} run: | export PATH="${PATH}:${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/:${ANDROID_NDK_ROOT}" ./scripts/install-toolchains.sh && ./ndk-make.sh - name: Build APK run: ./gradlew --no-daemon assembleGplayRelease - name: Sign APK uses: r0adkll/sign-android-release@v1 # ID used to access action output id: sign_app with: releaseDirectory: build/outputs/apk/gplay/release signingKeyBase64: ${{ secrets.SIGNING_KEY }} alias: ${{ secrets.ALIAS }} keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} keyPassword: ${{ secrets.KEY_PASSWORD }} - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ env.RELEASE_VERSION }} draft: false prerelease: false - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ${{steps.sign_app.outputs.signedReleaseFile}} asset_name: ${{ env.RELEASE_VERSION }}.apk asset_content_type: application/zip