这是indexloc提供的服务,不要输入任何密码
Skip to content

feat(bloc_lint): add avoid_build_context_extensions #1613

feat(bloc_lint): add avoid_build_context_extensions

feat(bloc_lint): add avoid_build_context_extensions #1613

Workflow file for this run

name: build
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
push:
branches: [master]
permissions:
contents: read
pages: write
id-token: write
jobs:
semantic_pull_request:
name: ✅ Semantic Pull Request
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/semantic_pull_request.yml@v1
changes:
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
outputs:
needs_angular_dart_example_checks: ${{ steps.needs_angular_dart_example_checks.outputs.changes }}
needs_bloc_tools_e2e_checks: ${{ steps.needs_bloc_tools_e2e_checks.outputs.changes }}
needs_dart_package_checks: ${{ steps.needs_dart_package_checks.outputs.changes }}
needs_bloc_tools_compile_checks: ${{ steps.needs_bloc_tools_compile_checks.outputs.changes }}
needs_flutter_package_checks: ${{ steps.needs_flutter_package_checks.outputs.changes }}
needs_flutter_example_checks: ${{ steps.needs_flutter_example_checks.outputs.changes }}
needs_docs_checks: ${{ steps.needs_docs_checks.outputs.changes }}
name: 👀 Detect Changes
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
name: Angular Dart Package Detection
id: needs_angular_dart_example_checks
with:
filters: |
angular_counter:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/angular_dart_package/action.yaml
- examples/angular_counter/**
github_search/angular_github_search:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/dart_package/action.yaml
- examples/github_search/angular_github_search/**
- uses: dorny/paths-filter@v3
name: Bloc Tools E2E Detection
id: needs_bloc_tools_e2e_checks
with:
filters: |
bloc_tools:
- ./.github/workflows/main.yaml
- packages/bloc_tools/**
- uses: dorny/paths-filter@v3
name: Dart Package Detection
id: needs_dart_package_checks
with:
filters: |
angular_bloc:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/dart_package/action.yaml
- packages/angular_bloc/**
bloc_concurrency:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/dart_package/action.yaml
- packages/bloc_concurrency/**
bloc_lint:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/dart_package/action.yaml
- packages/bloc_lint/**
bloc_test:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/dart_package/action.yaml
- packages/bloc_test/**
bloc_tools:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/dart_package/action.yaml
- packages/bloc_tools/**
bloc:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/dart_package/action.yaml
- packages/bloc/**
- uses: dorny/paths-filter@v3
name: Bloc Tools Compile Detection
id: needs_bloc_tools_compile_checks
with:
filters: |
bloc_tools:
- ./.github/actions/dart_compile/action.yaml
- ./.github/workflows/main.yaml
- packages/bloc_tools/**
- uses: dorny/paths-filter@v3
name: Flutter Package Detection
id: needs_flutter_package_checks
with:
filters: |
flutter_bloc:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- packages/flutter_bloc/**
replay_bloc:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- packages/replay_bloc/**
hydrated_bloc:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- packages/hydrated_bloc/**
- uses: dorny/paths-filter@v3
name: Example Detection
id: needs_flutter_example_checks
with:
filters: |
flutter_bloc_with_stream:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_bloc_with_stream/**
flutter_complex_list:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_complex_list/**
flutter_counter:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_counter/**
flutter_dynamic_form:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_dynamic_form/**
flutter_firebase_login:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_firebase_login/**
flutter_form_validation:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_form_validation/**
flutter_infinite_list:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_infinite_list/**
flutter_login:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_login/**
flutter_shopping_cart:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_shopping_cart/**
flutter_timer:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_timer/**
flutter_todos:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_todos/**
flutter_weather:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_weather/**
flutter_wizard:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/flutter_wizard/**
github_search/flutter_github_search:
- ./.github/codecov.yml
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- examples/github_search/flutter_github_search/**
- uses: dorny/paths-filter@v3
name: Docs Detection
id: needs_docs_checks
with:
filters: |
- ./.github/workflows/main.yaml
- ./.github/actions/astro_site/action.yaml
- examples/**
- docs/**
bloc_tools_e2e_checks:
needs: changes
if: ${{ needs.changes.outputs.needs_bloc_tools_e2e_checks != '[]' }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
package: ${{ fromJSON(needs.changes.outputs.needs_bloc_tools_e2e_checks) }}
runs-on: ${{ matrix.os }}
name: 🧪 ${{ matrix.package }} (${{ matrix.os }})
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
- name: 🐦 Setup Flutter
uses: subosito/flutter-action@v2
with:
cache: true
- name: ⚙️ Setup Bloc Tools
run: dart pub global activate --source path ./packages/bloc_tools
- name: 📦 Install Dependencies
working-directory: packages/${{ matrix.package }}/e2e
run: flutter pub get
- name: 🧪 E2E
working-directory: packages/${{ matrix.package }}/e2e
run: dart run main.dart
dart_package_checks:
needs: changes
if: ${{ needs.changes.outputs.needs_dart_package_checks != '[]' }}
strategy:
fail-fast: false
matrix:
package: ${{ fromJSON(needs.changes.outputs.needs_dart_package_checks) }}
runs-on: ubuntu-latest
name: 🎯 ${{ matrix.package }}
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
- name: 🎯 Build ${{ matrix.package }}
uses: ./.github/actions/dart_package
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
working_directory: packages/${{ matrix.package }}
min_coverage: 100
bloc_tools_compile_checks:
needs: changes
if: ${{ needs.changes.outputs.needs_bloc_tools_compile_checks != '[]' }}
strategy:
fail-fast: false
matrix:
config:
[
{ "runs-on": "ubuntu-latest", "os": "linux", "arch": "x64" },
{ "runs-on": "ubuntu-latest", "os": "linux", "arch": "arm64" },
{ "runs-on": "macos-13", "os": "macos", "arch": "x64" },
{ "runs-on": "macos-latest", "os": "macos", "arch": "arm64" },
{ "runs-on": "windows-latest", "os": "windows", "arch": "x64" },
]
runs-on: ${{ matrix.config.runs-on }}
name: ⚙️ Compile Bloc Tools
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
- name: ⚙️ Compile Bloc Tools for ${{ matrix.config.os }} ${{ matrix.config.arch }}
uses: ./.github/actions/dart_compile
with:
entrypoint: bin/bloc.dart
working_directory: packages/bloc_tools
name: bloc_${{ matrix.config.os }}_${{ matrix.config.arch }}
os: ${{ matrix.config.os }}
arch: ${{ matrix.config.arch }}
flutter_package_checks:
needs: changes
if: ${{ needs.changes.outputs.needs_flutter_package_checks != '[]' }}
strategy:
fail-fast: false
matrix:
package: ${{ fromJSON(needs.changes.outputs.needs_flutter_package_checks) }}
runs-on: ubuntu-latest
name: 🐦 ${{ matrix.package }}
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
- name: 🎯 Build ${{ matrix.package }}
uses: ./.github/actions/flutter_package
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
working_directory: packages/${{ matrix.package }}
min_coverage: 100
angular_dart_example_checks:
needs: changes
if: ${{ needs.changes.outputs.needs_angular_dart_example_checks != '[]' }}
strategy:
fail-fast: false
matrix:
example: ${{ fromJSON(needs.changes.outputs.needs_angular_dart_example_checks) }}
runs-on: ubuntu-latest
name: 🛡️ ${{ matrix.example }}
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
- name: 🎯 Build ${{ matrix.example }}
uses: ./.github/actions/angular_dart_package
with:
analyze_directories: lib
working_directory: examples/${{ matrix.example }}
flutter_example_checks:
needs: changes
if: ${{ needs.changes.outputs.needs_flutter_example_checks != '[]' }}
strategy:
fail-fast: false
matrix:
example: ${{ fromJSON(needs.changes.outputs.needs_flutter_example_checks) }}
runs-on: ubuntu-latest
name: 🧑‍🎓 ${{ matrix.example }}
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
- name: 🎯 Build ${{ matrix.example }}
uses: ./.github/actions/flutter_package
with:
analyze_directories: lib
collect_coverage: false
collect_score: false
working_directory: examples/${{ matrix.example }}
docs_checks:
needs: changes
if: ${{ needs.changes.outputs.needs_docs_checks != '[]' }}
runs-on: ubuntu-latest
name: 📖 docs
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
- name: 📦 Build Docs
uses: ./.github/actions/astro_site
with:
working_directory: ./docs
deploy:
needs: docs_checks
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: 🚀 Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
build:
needs:
[
angular_dart_example_checks,
bloc_tools_compile_checks,
bloc_tools_e2e_checks,
dart_package_checks,
docs_checks,
flutter_example_checks,
flutter_package_checks,
semantic_pull_request,
]
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- name: ⛔️ exit(1) on failure
if: ${{ contains(join(needs.*.result, ','), 'failure') }}
run: exit 1