diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..493fb9d51 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,70 @@ +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.0.0' + + # 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 }} + + - 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/checksum + + # 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 }}