name: Build Android on: [pull_request, push] jobs: build: runs-on: ubuntu-latest-android steps: - name: Checkout the code uses: actions/checkout@v2 - name: Prepare signing run: | touch keystore.properties echo "storePassword=${{ secrets.STOREPASSWORD }}" >> keystore.properties echo "keyPassword=${{ secrets.KEYPASSWORD }}" >> keystore.properties echo "keyAlias=key0" >> keystore.properties echo "storeFile=../AndroidKey" >> keystore.properties - name: Generate versionCode run: | touch version.properties let timestamp=$(date +%s)/10 echo "versionCode=$timestamp" >> version.properties - name: Test the app run: ./gradlew test - name: Build apk run: ./gradlew assembleRelease - name: Build abb run: ./gradlew bundleRelease - uses: actions/upload-artifact@v3 with: name: app-release.apk retention-days: 10 path: app/build/outputs/apk/release/app-release.apk - uses: actions/upload-artifact@v3 with: name: app-release.aab retention-days: 10 path: app/build/outputs/bundle/release/app-release.aab - name: Deploy latest to Nextcloud run: | curl -k -u "${{ secrets.NEXTCLOUD_USERNAME }}:${{ secrets.NEXTCLOUD_PASSWORD }}" -T "app/build/outputs/apk/release/app-release.apk" "${{ secrets.NEXTCLOUD_BASE_URL }}/TichuCounter/latest/app-release.apk" curl -k -u "${{ secrets.NEXTCLOUD_USERNAME }}:${{ secrets.NEXTCLOUD_PASSWORD }}" -T "app/build/outputs/bundle/release/app-release.aab" "${{ secrets.NEXTCLOUD_BASE_URL }}/TichuCounter/latest/app-release.aab" - name: Deploy tagged build to Nextcloud run: | curl -k -u "${{ secrets.NEXTCLOUD_USERNAME }}:${{ secrets.NEXTCLOUD_PASSWORD }}" -T "app/build/outputs/apk/release/app-release.apk" "${{ secrets.NEXTCLOUD_BASE_URL }}/TichuCounter/tagged/app-release-${GITHUB_REF_NAME##*/}.apk" curl -k -u "${{ secrets.NEXTCLOUD_USERNAME }}:${{ secrets.NEXTCLOUD_PASSWORD }}" -T "app/build/outputs/bundle/release/app-release.aab" "${{ secrets.NEXTCLOUD_BASE_URL }}/TichuCounter/tagged/app-release-${GITHUB_REF_NAME##*/}.aab" - uses: https://github.com/ravsamhq/notify-slack-action@v2 if: always() with: status: ${{ job.status }} # required env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required