diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..579d7f1d2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,58 @@ +name: Manual Build + +on: + workflow_dispatch: # Enable manual run only + +jobs: + build: + # This job will run on ubuntu virtual machine + runs-on: ubuntu-latest + steps: + + # Setup Java environment in order to build the Android app. + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 + with: + distribution: 'adopt' + java-version: '11' + + # Setup the flutter environment. + - uses: subosito/flutter-action@v2 + with: + channel: 'stable' + flutter-version: '3.13.4' + + # Fetch sub modules + - run: git submodule update --init --recursive + + # Get flutter dependencies. + - run: flutter pub get + + - name: Setup keys + uses: timheuer/base64-to-file@v1 + with: + fileName: 'keystore/ente_photos_key.jks' + encodedString: ${{ secrets.SIGNING_KEY }} + + # Build independent apk. + - name: Build + run: flutter build apk --release --flavor independent && mv build/app/outputs/flutter-apk/app-independent-release.apk build/app/outputs/flutter-apk/ente.apk + env: + SIGNING_KEY_PATH: '/home/runner/work/_temp/keystore/ente_photos_key.jks' + SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} + SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} + SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} + + - name: Checksum + run: sha256sum build/app/outputs/flutter-apk/ente.apk > build/app/outputs/flutter-apk/sha256sum + + # Upload generated apk to the artifacts. + - uses: actions/upload-artifact@v2 + with: + name: release-apk + path: build/app/outputs/flutter-apk/ente.apk + + - uses: actions/upload-artifact@v2 + with: + name: release-checksum + path: build/app/outputs/flutter-apk/checksum