diff --git a/.github/workflows/commit.yml b/.github/workflows/commit.yml new file mode 100644 index 00000000..f6370d60 --- /dev/null +++ b/.github/workflows/commit.yml @@ -0,0 +1,59 @@ +name: Check + +on: + push: + workflow_call: + inputs: + external_call: + description: 'To distinguish workflow_call from regular push' + type: boolean + required: false + default: true + +jobs: + setup_env: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + # Setup the Java environment. + - uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: ${{vars.JAVA_VERSION}} + cache: 'gradle' + + # Setup the Flutter environment. + - uses: subosito/flutter-action@v2 + with: + channel: ${{vars.FLUTTER_CHANNEL}} + cache: true + + # No dart analytics. + - run: dart --disable-analytics + + # No flutter analytics. + - run: flutter config --disable-analytics + + # Get flutter dependencies. + - run: flutter pub get + + analyze: + runs-on: ubuntu-latest + needs: [setup_env] + + steps: + # Check for any formatting issues in the code. + - run: dart format --set-exit-if-changed . + + # Statically analyze the Dart code for any errors. + - run: dart analyze . + +# test: +# runs-on: ubuntu-latest +# needs: [analyze] +# +# steps: +# # Run widget tests for our flutter project. +# - run: flutter test \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4e38b914..ef976568 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,13 +2,13 @@ name: Build on: release: - types: [created] + types: + - created push: - branches: [master] + branches: + - develop env: - JAVA_VERSION: "17.x" - FLUTTER_CHANNEL: "stable" PROPERTIES_PATH: "./android/key.properties" jobs: @@ -16,20 +16,8 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - # Setup Java environment in order to build the Android app. - - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: ${{env.JAVA_VERSION}} - cache: 'gradle' - - # Setup the flutter environment. - - uses: subosito/flutter-action@v2 - with: - channel: ${{env.FLUTTER_CHANNEL}} - cache: true + # Call Commit workflow to setup workspace + - uses: ./.github/workflows/commit.yml # Generate keystore - uses: timheuer/base64-to-file@v1.2 @@ -49,24 +37,6 @@ jobs: - run: | sed -i 's/^\(version: [0-9\.]\{1,\}\(-[a-z]\{1,\}\)\{0,1\}\)$/\1+${{ github.run_number }}/m' pubspec.yaml - # No dart analytics. - - run: dart --disable-analytics - - # No flutter analytics. - - run: flutter config --no-analytics - - # Get flutter dependencies. - - run: flutter pub get - - # Check for any formatting issues in the code. - - run: dart format --set-exit-if-changed . - - # Statically analyze the Dart code for any errors. - - run: dart analyze . - - # Run widget tests for our flutter project. - # - run: flutter test - # Build apk. - run: flutter build apk --obfuscate --split-debug-info=build/app/outputs/symbols/apk --release --split-per-abi @@ -108,6 +78,7 @@ jobs: upload-to-github: runs-on: ubuntu-latest needs: [build] + if: startsWith(github.ref, 'refs/tags/') steps: - uses: actions/download-artifact@v4 @@ -124,7 +95,6 @@ jobs: path: ./artifacts - uses: softprops/action-gh-release@v1 - if: startsWith(github.ref, 'refs/tags/') with: files: | ./artifacts/app-arm64-v8a-release.apk @@ -148,6 +118,7 @@ jobs: with: name: mapping.txt path: ./artifacts + # not a release --> push to internal - uses: r0adkll/upload-google-play@v1 if: ${{ !startsWith(github.ref, 'refs/tags/') }} with: @@ -158,6 +129,7 @@ jobs: mappingFile: ./artifacts/mapping.txt track: internal status: completed + # prerelease --> push to beta - uses: r0adkll/upload-google-play@v1 if: ${{ startsWith(github.ref, 'refs/tags/') && github.event.release.prerelease }} with: @@ -168,6 +140,7 @@ jobs: mappingFile: ./artifacts/mapping.txt track: beta status: completed + # release --> push to production - uses: r0adkll/upload-google-play@v1 if: ${{ startsWith(github.ref, 'refs/tags/') && !github.event.release.prerelease }} with: