name: Build Android on: push: branches: - 'main' paths-ignore: - '**/README.md' permissions: contents: write jobs: android-build: runs-on: ubuntu-latest defaults: run: working-directory: ./materialious/android steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 18 - name: Install modules run: cd ../ && npm install - name: Build package run: cd ../ && npm run build - name: Sync package run: cd ../ && npx cap sync - name: Setup JDK uses: actions/setup-java@v3 with: distribution: 'zulu' java-version: '17' cache: 'gradle' - name: Build App run: | bash gradlew assembleRelease bash gradlew bundleRelease - name: Move files run: | mv app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/app-release.apk mv app/build/outputs/bundle/release/app-release.aab app/build/outputs/app-release.aab - name: Sign App id: sign_app uses: ilharp/sign-android-release@v1.0.4 with: releaseDir: ./materialious/android/app/build/outputs/ signingKey: ${{ secrets.ANDROID_SIGNING_KEY }} keyAlias: ${{ secrets.ANDROID_KEY_ALIAS }} keyStorePassword: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} keyPassword: ${{ secrets.ANDROID_KEY_PASSWORD }} - name: Make release dir run: mkdir app/release - name: Move files to release run: | mv app/build/outputs/app-release-signed.aab app/release/app-release-signed.aab mv app/build/outputs/app-release-signed.apk app/release/app-release-signed.apk - name: get-npm-version id: package-version uses: martinbeentjes/npm-get-version-action@v1.3.1 with: path: ./materialious - name: Upload APKs to release uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: ./materialious/android/app/release/* tag: ${{ steps.package-version.outputs.current-version}} overwrite: true file_glob: true