Skip to content

chore(deps): update dependency flutter to v3.41.7 #400

chore(deps): update dependency flutter to v3.41.7

chore(deps): update dependency flutter to v3.41.7 #400

Workflow file for this run

---
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
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@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
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@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.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@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
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@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
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@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
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@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
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@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
- name: 🪄 Spell Check Repo
uses: crate-ci/typos@2d0ce569feab1f8752f1dde43cc2f2aa53236e06 # v1.40.0
link-check:
name: Check Links
timeout-minutes: 2
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: 📚 Git checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
- name: ⚙️ Restore lychee cache
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
with:
path: .lycheecache
key: cache-lychee-${{ github.sha }}
restore-keys: cache-lychee-
- name: 🪄 Link check
uses: lycheeverse/lychee-action@a8c4c7cb88f0c7386610c35eb25108e448569cb0 # v2.7.0
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
fetch-depth: 1
- name: 🕵️ Lint Markdown
uses: DavidAnson/markdownlint-cli2-action@07035fd053f7be764496c0f8d8f9f41f98305101 # v22.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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
- name: 🌈 Run zizmor
uses: zizmorcore/zizmor-action@e639db99335bc9038abc0e066dfcd72e23d26fb4 # v0.3.0
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}