Skip to content

build(deps): bump flutter_gen_runner, analysis_options and appwrite in /packages/app #217

build(deps): bump flutter_gen_runner, analysis_options and appwrite in /packages/app

build(deps): bump flutter_gen_runner, analysis_options and appwrite in /packages/app #217

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
permissions:
contents: read
jobs:
setup:
name: Setup
needs: []
timeout-minutes: 5
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: 📚 Git checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
- name: 🐦 Set up Flutter
id: flutter
uses: subosito/flutter-action@f2c4f6686ca8e8d6e6d0f28410eeef506ed66aff # v2.18.0
with:
flutter-version-file: pubspec.yaml
cache: true
- name: 🌐 Disable analytics
run: flutter --disable-analytics
- name: ⚙️ Cache generated files
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
with:
path: |
.dart_tool/
lib/gen/*.gen.dart
lib/src/features/**/*.g.dart
lib/src/features/**/*.freezed.dart
lib/src/utils/*.g.dart
lib/src/utils/*.freezed.dart
lib/src/app/*.gr.dart
lib/src/app/*.gm.dart
lib/src/l10n/app_localizations.dart
lib/src/l10n/app_localizations_*.dart
key: ${{ runner.os }}-${{ steps.flutter.outputs.CHANNEL }}-dart-${{ hashFiles('**/build.yaml') }}
- name: 📦 Install dependencies
uses: bluefireteam/melos-action@b7f0b37c25d61616d8eda5d1b0fcf4b17e4e3b09 # v3
with:
run-bootstrap: true
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
steps:
- name: 📚 Git checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
- name: 🐦 Set up Flutter
id: flutter
uses: subosito/flutter-action@f2c4f6686ca8e8d6e6d0f28410eeef506ed66aff # v2.18.0
with:
flutter-version-file: pubspec.yaml
cache: true
- name: ☕ Setup Java
uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0
with:
distribution: "adopt"
java-version: "17"
- name: 🌐 Disable analytics
run: flutter --disable-analytics
- name: ⚙️ Cache generated files
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
with:
path: |
.dart_tool/
lib/gen/*.gen.dart
lib/src/features/**/*.g.dart
lib/src/features/**/*.freezed.dart
lib/src/utils/*.g.dart
lib/src/utils/*.freezed.dart
lib/src/app/*.gr.dart
lib/src/app/*.gm.dart
lib/src/l10n/app_localizations.dart
lib/src/l10n/app_localizations_*.dart
key: ${{ runner.os }}-${{ steps.flutter.outputs.CHANNEL }}-dart-${{ hashFiles('**/build.yaml') }}
- name: 📦 Install dependencies
uses: bluefireteam/melos-action@b7f0b37c25d61616d8eda5d1b0fcf4b17e4e3b09 # v3
with:
run-bootstrap: true
- name: 🔧 Build
run: |
flutter build ${{ matrix.target }} ${{ matrix.flutter-flags }}
working-directory: packages/app/
- name: ⚙️ Upload build
if: matrix.target == 'web'
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
with:
name: app-${{ matrix.target }}-build
path: "./packages/app/build/"
if-no-files-found: error
lint:
name: Linting
needs: ["setup"]
timeout-minutes: 5
runs-on: ubuntu-latest
steps:
- name: 📚 Git checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
- name: 🐦 Set up Flutter
id: flutter
uses: subosito/flutter-action@f2c4f6686ca8e8d6e6d0f28410eeef506ed66aff # v2.18.0
with:
flutter-version-file: pubspec.yaml
cache: true
- name: 🌐 Disable analytics
run: flutter --disable-analytics
- name: ⚙️ Cache generated files
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
with:
path: |
.dart_tool/
lib/gen/*.gen.dart
lib/src/features/**/*.g.dart
lib/src/features/**/*.freezed.dart
lib/src/utils/*.g.dart
lib/src/utils/*.freezed.dart
lib/src/app/*.gr.dart
lib/src/app/*.gm.dart
lib/src/l10n/app_localizations.dart
lib/src/l10n/app_localizations_*.dart
key: ${{ runner.os }}-${{ steps.flutter.outputs.CHANNEL }}-dart-${{ hashFiles('**/build.yaml') }}
- name: 📦 Install dependencies
uses: bluefireteam/melos-action@b7f0b37c25d61616d8eda5d1b0fcf4b17e4e3b09 # v3
with:
run-bootstrap: true
- name: 🕵️ Analyze project source
run: melos analyze --fatal-infos
- name: Clean Flutter generated files
# Works around invertase/dart_custom_lint#268
run: melos run clean
- name: 🕵️ Run Custom Lint Rules
run: melos run custom_lint
test:
name: Testing
needs: ["setup"]
timeout-minutes: 7
runs-on: ubuntu-latest
steps:
- name: 📚 Git checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
- name: 🐦 Set up Flutter
id: flutter
uses: subosito/flutter-action@f2c4f6686ca8e8d6e6d0f28410eeef506ed66aff # v2.18.0
with:
flutter-version-file: pubspec.yaml
cache: true
- name: 🌐 Disable analytics
run: flutter --disable-analytics
- name: ⚙️ Cache generated files
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
with:
path: |
.dart_tool/
lib/gen/*.gen.dart
lib/src/features/**/*.g.dart
lib/src/features/**/*.freezed.dart
lib/src/utils/*.g.dart
lib/src/utils/*.freezed.dart
lib/src/app/*.gr.dart
lib/src/app/*.gm.dart
lib/src/l10n/app_localizations.dart
lib/src/l10n/app_localizations_*.dart
key: ${{ runner.os }}-${{ steps.flutter.outputs.CHANNEL }}-dart-${{ hashFiles('**/build.yaml') }}
restore-keys: |
${{ runner.os }}-${{ steps.flutter.outputs.CHANNEL }}-dart-
${{ runner.os }}-
- name: 📦 Install dependencies
uses: bluefireteam/melos-action@b7f0b37c25d61616d8eda5d1b0fcf4b17e4e3b09 # v3
with:
run-bootstrap: true
- name: 🧪 Run tests
run: melos run test
- name: 📊 Upload code coverage
uses: codecov/codecov-action@1e68e06f1dbfde0e4cefc87efeba9e4643565303 # v5.1.2
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: packages/*/coverage/lcov.info
fail_ci_if_error: true
verbose: true
format:
name: Formatting
needs: ["setup"]
timeout-minutes: 3
runs-on: ubuntu-latest
steps:
- name: 📚 Git checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
- name: 🐦 Set up Flutter
id: flutter
uses: subosito/flutter-action@f2c4f6686ca8e8d6e6d0f28410eeef506ed66aff # v2.18.0
with:
flutter-version-file: pubspec.yaml
cache: true
- name: 🌐 Disable analytics
run: flutter --disable-analytics
- name: ✨ Verify formatting
run: melos format --output=none --set-exit-if-changed
spell-check:
name: Check Spelling
needs: []
runs-on: ubuntu-latest
steps:
- name: 📚 Git Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
- name: 🪄 Spell Check
uses: streetsidesoftware/cspell-action@ef95dc49d631fc2a9e9ea089ae2b2127b7c4588e # v6.10.0
with:
files: |
**/*.md
**/*.dart
**/*.yaml
**/*.toml
**/*.json
incremental_files_only: false
link-check:
name: Check Links
needs: []
timeout-minutes: 2
runs-on: ubuntu-latest
steps:
- name: 🪄 Link check
uses: gaurav-nelson/github-action-markdown-link-check@d53a906aa6b22b8979d33bc86170567e619495ec # 1.0.15
with:
use-quiet-mode: "yes"
use-verbose-mode: "yes"
base-branch: "main"
markdownlint:
name: Lint Markdown
needs: []
timeout-minutes: 4
runs-on: ubuntu-latest
steps:
- name: 📚 Git Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
clean: true
persist-credentials: false
set-safe-directory: true
- name: 🕵️ Markdown linting
uses: DavidAnson/markdownlint-cli2-action@a23dae216ce3fee4db69da41fed90d2a4af801cf # v19.0.0
id: markdownlint
with:
fix: true
# Surprisingly, the default is to only lint the project root.
globs: |
**/*.md