Skip to content

ci(deps): update zeshuaro/github-actions-workflows digest to a7f44cd … #2276

ci(deps): update zeshuaro/github-actions-workflows digest to a7f44cd …

ci(deps): update zeshuaro/github-actions-workflows digest to a7f44cd … #2276

name: GitHub Actions
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
cancel-in-progress: true
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
- name: Get project Flutter version 🏷️
id: fvm-config
uses: kuhnroyal/[email protected]
- name: Setup Flutter 💻
uses: subosito/[email protected]
id: setup-flutter
with:
flutter-version: ${{ steps.fvm-config.outputs.FLUTTER_VERSION }}
cache: true
cache-key: ${{ runner.os }}-flutter-${{ steps.fvm-config.outputs.FLUTTER_VERSION }}-${{ hashFiles('**/pubspec.lock') }}
- name: Cache Pub 💾
uses: actions/cache@v3
with:
path: |
${{ env.PUB_CACHE }}
**/.dart_tool
key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}
restore-keys: |
${{ runner.os }}-pub-
- name: Run tests 🧪
run: |
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
flutter test --coverage --concurrency=12
flutter pub run remove_from_coverage -f coverage/lcov.info -r '\.g\.dart$' -r 'extensions\.dart'
- name: Upload coverage report 📡
uses: codecov/[email protected]
with:
files: ./coverage/lcov.info
flags: appainter
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
- name: Get project Flutter version 🏷️
id: fvm-config
uses: kuhnroyal/[email protected]
- name: Setup Flutter 💻
uses: subosito/[email protected]
with:
flutter-version: ${{ steps.fvm-config.outputs.FLUTTER_VERSION }}
cache: true
cache-key: ${{ runner.os }}-flutter-${{ steps.fvm-config.outputs.FLUTTER_VERSION }}-${{ hashFiles('**/pubspec.lock') }}
- name: Cache Pub 💾
uses: actions/cache@v3
with:
path: |
${{ env.PUB_CACHE }}
**/.dart_tool
key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}
restore-keys: |
${{ runner.os }}-pub-
- name: Run linting 🧪
run: |
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
dart format --output=none --set-exit-if-changed .
flutter analyze
build-deploy-web:
name: Build web app and deploy
runs-on: ubuntu-latest
concurrency:
group: deploy-web
cancel-in-progress: true
needs: [lint, test]
if: ${{ github.ref == 'refs/heads/main' }}
steps:
- name: Checkout 🛎️
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
with:
fetch-depth: 0
ref: main
token: ${{ secrets.PAT }}
- name: Get project Flutter version 🏷️
id: fvm-config
uses: kuhnroyal/[email protected]
- name: Setup Flutter 💻
uses: subosito/[email protected]
with:
flutter-version: ${{ steps.fvm-config.outputs.FLUTTER_VERSION }}
cache: true
cache-key: ${{ runner.os }}-flutter-${{ steps.fvm-config.outputs.FLUTTER_VERSION }}-${{ hashFiles('**/pubspec.lock') }}
- name: Cache Pub 💾
uses: actions/cache@v3
with:
path: |
${{ env.PUB_CACHE }}
**/.dart_tool
key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}
restore-keys: |
${{ runner.os }}-pub-
- name: Build web app 🏗
id: build-web
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
run: |
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
# Bump version build number
flutter pub run cider bump build
echo "version=v$(flutter pub run cider version)" >> $GITHUB_OUTPUT
# Build web app
flutter build web --source-maps --no-tree-shake-icons --dart-define=FLUTTER_WEB_USE_SKIA=true
# Upload source map to Sentry
flutter packages pub run sentry_dart_plugin
- name: Commit new version 🆕
uses: stefanzweifel/[email protected]
env:
version: ${{ steps.build-web.outputs.version }}
with:
commit_message: "chore(release-web): ${{ env.version }} [skip ci]"
file_pattern: pubspec.yaml
push_options: --force
- name: Deploy 🚀
uses: JamesIves/[email protected]
with:
branch: gh-pages
folder: build/web