chore(deps): update gradle to v9 #263
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| name: CI/CD | |
| on: | |
| push: | |
| branches: | |
| - "main" | |
| pull_request: | |
| types: | |
| - opened | |
| - synchronize | |
| merge_group: | |
| schedule: | |
| - cron: "0 14 * * 1" # every monday at 9 in the morning CST | |
| workflow_dispatch: | |
| env: | |
| CI: true | |
| FLUTTER_CHANNEL: stable | |
| permissions: {} | |
| jobs: | |
| setup: | |
| name: Setup | |
| timeout-minutes: 5 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: 📚 Git checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| submodules: recursive | |
| clean: true | |
| persist-credentials: false | |
| set-safe-directory: true | |
| fetch-depth: 1 | |
| - name: 🐦 Set up Flutter | |
| id: flutter | |
| uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0 | |
| with: | |
| channel: ${{ env.FLUTTER_CHANNEL }} | |
| flutter-version-file: pubspec.yaml | |
| cache: true | |
| - name: 🌐 Disable analytics | |
| run: flutter --disable-analytics | |
| - name: ⚙️ Cache generated files | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| with: | |
| path: | | |
| .dart_tool/ | |
| lib/gen/*.gen.dart | |
| lib/**/*.g.dart | |
| lib/**/*.freezed.dart | |
| lib/app/*.gr.dart | |
| lib/app/*.gm.dart | |
| lib/l10n/app_localizations.dart | |
| lib/l10n/app_localizations_*.dart | |
| key: generated-${{ steps.flutter.outputs.CHANNEL }}-${{ runner.os }}-${{ hashFiles('**/build.yaml') }}-${{ hashFiles('lib/**.dart') }} | |
| restore-keys: generated-${{ steps.flutter.outputs.CHANNEL }}-${{ runner.os }}- | |
| - name: 🗄️ Environment | |
| run: echo "${DOT_ENV}" > .env | |
| env: | |
| DOT_ENV: | | |
| PROJECT_ID=${{ secrets.PROJECT_ID }} | |
| API_ENDPOINT=${{ secrets.API_ENDPOINT }} | |
| DATABASE_ID=${{ secrets.DATABASE_ID }} | |
| COLLECTION_ID=${{ secrets.COLLECTION_ID }} | |
| - name: 📦 Install dependencies | |
| run: flutter pub get --enforce-lockfile | |
| - name: 🔌 Generate files | |
| run: | | |
| flutter gen-l10n | |
| dart run build_runner build --delete-conflicting-outputs --low-resources-mode | |
| build: | |
| name: Build | |
| needs: ["setup"] | |
| timeout-minutes: ${{ (matrix.target == 'web') && 5 || 10 }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| target: | |
| - web | |
| - appbundle | |
| # - ios | |
| # - macos | |
| # - windows | |
| include: | |
| - target: web | |
| os: ubuntu-latest | |
| flutter-flags: --release --wasm | |
| - target: appbundle | |
| os: ubuntu-latest | |
| # This is the least optimized, but is significantly faster in CI. | |
| # Android releases should be built locally on a beefy machine. | |
| flutter-flags: --debug --no-tree-shake-icons --no-shrink | |
| # - target: ios | |
| # os: macos-latest | |
| # flutter-flags: --debug --no-tree-shake-icons | |
| # - target: macos | |
| # os: macos-latest | |
| # flutter-flags: --debug --no-tree-shake-icons | |
| # - target: windows | |
| # os: windows-latest | |
| # flutter-flags: --debug --no-tree-shake-icons | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: 📚 Git checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| submodules: recursive | |
| clean: true | |
| persist-credentials: false | |
| set-safe-directory: true | |
| fetch-depth: 1 | |
| - name: 🐦 Set up Flutter | |
| id: flutter | |
| uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0 | |
| with: | |
| channel: ${{ env.FLUTTER_CHANNEL }} | |
| flutter-version-file: pubspec.yaml | |
| cache: true | |
| - name: ☕ Setup Java | |
| if: ${{ matrix.target == 'appbundle' }} | |
| uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 | |
| with: | |
| distribution: "jetbrains" | |
| java-version: "17" | |
| cache: "gradle" | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: 🌐 Disable analytics | |
| run: flutter --disable-analytics | |
| - name: ⚙️ Cache generated files | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| with: | |
| path: | | |
| .dart_tool/ | |
| lib/gen/*.gen.dart | |
| lib/**/*.g.dart | |
| lib/**/*.freezed.dart | |
| lib/app/*.gr.dart | |
| lib/app/*.gm.dart | |
| lib/l10n/app_localizations.dart | |
| lib/l10n/app_localizations_*.dart | |
| key: generated-${{ steps.flutter.outputs.CHANNEL }}-${{ runner.os }}-${{ hashFiles('**/build.yaml') }}-${{ hashFiles('lib/**.dart') }} | |
| restore-keys: generated-${{ steps.flutter.outputs.CHANNEL }}-${{ runner.os }}- | |
| - name: 📦 Install dependencies | |
| run: flutter pub get --enforce-lockfile | |
| - name: 🔧 Build | |
| run: | | |
| flutter build ${{ matrix.target }} --no-pub ${{ matrix.flutter-flags }} | |
| - name: ⚙️ Upload build | |
| if: ${{ matrix.target == 'web' }} | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
| with: | |
| name: build-${{ matrix.target }} | |
| path: "./build/${{ matrix.target }}/" | |
| if-no-files-found: error | |
| lint: | |
| name: Linting | |
| needs: ["setup"] | |
| timeout-minutes: 5 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: 📚 Git checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| submodules: recursive | |
| clean: true | |
| persist-credentials: false | |
| set-safe-directory: true | |
| fetch-depth: 1 | |
| - name: 🐦 Set up Flutter | |
| id: flutter | |
| uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0 | |
| with: | |
| channel: ${{ env.FLUTTER_CHANNEL }} | |
| flutter-version-file: pubspec.yaml | |
| cache: true | |
| - name: 🌐 Disable analytics | |
| run: flutter --disable-analytics | |
| - name: ⚙️ Cache generated files | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| with: | |
| path: | | |
| .dart_tool/ | |
| lib/gen/*.gen.dart | |
| lib/**/*.g.dart | |
| lib/**/*.freezed.dart | |
| lib/app/*.gr.dart | |
| lib/app/*.gm.dart | |
| lib/l10n/app_localizations.dart | |
| lib/l10n/app_localizations_*.dart | |
| key: generated-${{ steps.flutter.outputs.CHANNEL }}-${{ runner.os }}-${{ hashFiles('**/build.yaml') }}-${{ hashFiles('lib/**.dart') }} | |
| restore-keys: generated-${{ steps.flutter.outputs.CHANNEL }}-${{ runner.os }}- | |
| - name: 📦 Install dependencies | |
| run: flutter pub get --enforce-lockfile | |
| - name: 🕵️ Analyze project source | |
| run: flutter analyze --fatal-infos | |
| - name: 🕵️ Run Custom Lint Rules | |
| run: dart run custom_lint --fatal-infos | |
| test: | |
| name: Testing | |
| needs: ["setup"] | |
| timeout-minutes: 7 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - name: 📚 Git checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| submodules: recursive | |
| clean: true | |
| persist-credentials: false | |
| set-safe-directory: true | |
| fetch-depth: 1 | |
| - name: 🐦 Set up Flutter | |
| id: flutter | |
| uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0 | |
| with: | |
| channel: ${{ env.FLUTTER_CHANNEL }} | |
| flutter-version-file: pubspec.yaml | |
| cache: true | |
| - name: 🌐 Disable analytics | |
| run: flutter --disable-analytics | |
| - name: ⚙️ Cache generated files | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| with: | |
| path: | | |
| .dart_tool/ | |
| lib/gen/*.gen.dart | |
| lib/**/*.g.dart | |
| lib/**/*.freezed.dart | |
| lib/app/*.gr.dart | |
| lib/app/*.gm.dart | |
| lib/l10n/app_localizations.dart | |
| lib/l10n/app_localizations_*.dart | |
| key: generated-${{ steps.flutter.outputs.CHANNEL }}-${{ runner.os }}-${{ hashFiles('**/build.yaml') }}-${{ hashFiles('lib/**.dart') }} | |
| restore-keys: generated-${{ steps.flutter.outputs.CHANNEL }}-${{ runner.os }}- | |
| - name: 📦 Install dependencies | |
| run: flutter pub get --enforce-lockfile | |
| - name: 🧪 Run tests | |
| run: dart run very_good_cli:very_good test --coverage --test-randomize-ordering-seed random | |
| continue-on-error: true | |
| - name: 📊 Upload code coverage | |
| if: ${{ !cancelled() }} | |
| uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1 | |
| with: | |
| use_oidc: true | |
| files: coverage/lcov.info | |
| fail_ci_if_error: true | |
| verbose: true | |
| format: | |
| name: Formatting | |
| timeout-minutes: 2 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: 📚 Git checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| submodules: recursive | |
| clean: true | |
| persist-credentials: false | |
| set-safe-directory: true | |
| fetch-depth: 1 | |
| - name: 🐦 Set up Flutter | |
| id: flutter | |
| uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0 | |
| with: | |
| channel: ${{ env.FLUTTER_CHANNEL }} | |
| flutter-version-file: pubspec.yaml | |
| cache: true | |
| - name: 🌐 Disable analytics | |
| run: flutter --disable-analytics | |
| - name: 📦 Install dependencies | |
| run: flutter pub get --enforce-lockfile | |
| - name: ✨ Verify formatting | |
| run: dart format . --output=none --set-exit-if-changed | |
| spell-check: | |
| name: Check Spelling | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: 📚 Git Checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| submodules: recursive | |
| clean: true | |
| persist-credentials: false | |
| set-safe-directory: true | |
| - name: 🪄 Spell Check Repo | |
| uses: crate-ci/typos@83157de2df0fa7c7ae20f73f9dbed44c41f2bb64 # v1.38.0 | |
| link-check: | |
| name: Check Links | |
| timeout-minutes: 2 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: 📚 Git checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| submodules: recursive | |
| clean: true | |
| persist-credentials: false | |
| set-safe-directory: true | |
| - name: ⚙️ Restore lychee cache | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| with: | |
| path: .lycheecache | |
| key: cache-lychee-${{ github.sha }} | |
| restore-keys: cache-lychee- | |
| - name: 🪄 Link check | |
| uses: lycheeverse/lychee-action@885c65f3dc543b57c898c8099f4e08c8afd178a2 # v2.6.1 | |
| with: | |
| args: --cache --max-cache-age 1d . | |
| token: ${{ github.token }} | |
| markdownlint: | |
| name: Lint Markdown | |
| timeout-minutes: 4 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: 📚 Git checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| submodules: recursive | |
| clean: true | |
| persist-credentials: false | |
| set-safe-directory: true | |
| fetch-depth: 1 | |
| - name: 🕵️ Lint Markdown | |
| uses: DavidAnson/markdownlint-cli2-action@992badcdf24e3b8eb7e87ff9287fe931bcb00c6e # v20.0.0 | |
| id: markdownlint | |
| with: | |
| fix: true | |
| # Surprisingly, the default is to only lint the project root. | |
| globs: | | |
| **/*.md | |
| zizmor: | |
| name: Run zizmor | |
| timeout-minutes: 1 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| security-events: write | |
| actions: read | |
| steps: | |
| - name: 📚 Git Checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| submodules: recursive | |
| clean: true | |
| persist-credentials: false | |
| set-safe-directory: true | |
| - name: 🌈 Run zizmor | |
| uses: zizmorcore/zizmor-action@e673c3917a1aef3c65c972347ed84ccd013ecda4 # v0.2.0 | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |