name: Build Android on: push: branches: - main jobs: build: name: Build APK runs-on: ubuntu-latest defaults: run: working-directory: ./materialious steps: - name: Checkout source uses: actions/checkout@v3 - name: Setup java uses: actions/setup-java@v3 with: distribution: 'adopt' java-version: '17' - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: 18 - name: Install app dependencies run: npm install - name: Build Svelte app run: npm run build - name: Capacitor sync run: npx cap sync - name: Build APK run: cd android && ./gradlew assembleRelease - name: Sign APK run: | echo "${{ secrets.RELEASE_KEYSTORE }}" > android/release.jks.base64 base64 -d android/release.jks.base64 > android/release.decrypted.jks jarsigner -keystore android/release.decrypted.jks -storepass "${{ secrets.RELEASE_KEYSTORE_PASSWORD }}" -signedjar ./android/app/build/outputs/apk/release/app-release-signed.apk ./android/app/build/outputs/apk/release/app-release-unsigned.apk release - name: Upload APK to release uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: ./materialious/android/app/build/outputs/apk/release/app-release-signed.apk overwrite: true file_glob: true