name: Flutter CI # This workflow is triggered on pushes to the repository. on: workflow_dispatch: # Enable manual run push: # Sequence of patterns matched against refs/tags tags: - "v*" # Push events to matching v*, i.e. v4.2.0 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.3.8" # 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_auth_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-auth.apk env: SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks" SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} # Build Play store aab. - name: Build run: flutter build appbundle --release --flavor playstore && mv build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab build/app/outputs/flutter-apk/ente-auth.aab env: SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_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-auth.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-auth.apk - uses: actions/upload-artifact@v2 with: name: release-checksum path: build/app/outputs/flutter-apk/sha256sum # Create a Github release - uses: ncipollo/release-action@v1 with: artifacts: "build/app/outputs/flutter-apk/ente-auth.apk,build/app/outputs/flutter-apk/sha256sum" token: ${{ secrets.GITHUB_TOKEN }} # Upload to Play store - uses: ente-io/upload-google-play@v1 with: serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }} packageName: io.ente.auth releaseFiles: build/app/outputs/flutter-apk/ente-auth.aab track: internal