Refactor testing #47
Workflow file for this run
This file contains 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: Quality checks 👌🧪 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
paths-ignore: | |
- '**/*.md' | |
workflow_call: | |
workflow_dispatch: | |
jobs: | |
ci: | |
name: Dart CI Checks | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
work_dir: [ openapi-generator, openapi-generator-annotations ] | |
defaults: | |
run: | |
working-directory: ${{ matrix.work_dir }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Start Docker compose containers | |
if: ${{ matrix.work_dir == 'openapi-generator' }} | |
run: docker-compose -f "docker-compose.yaml" up -d --build | |
- name: Setup Dart | |
uses: dart-lang/[email protected] | |
with: | |
sdk: stable | |
- name: Install Dependencies | |
run: dart pub get | |
- name: Validate formatting | |
run: dart format ./ --set-exit-if-changed | |
- name: Generate Mocks | |
if: ${{ matrix.work_dir == 'openapi-generator' }} | |
run: dart run build_runner build --delete-conflicting-outputs | |
- name: Run analyzer | |
run: dart analyze --fatal-warnings | |
- name: Run tests | |
run: dart run test --coverage="coverage" | |
- name: Install coverage tools | |
run: dart pub global activate coverage | |
- name: format coverage | |
run: $HOME/.pub-cache/bin/format_coverage --lcov --in=coverage --out=./coverage.lcov --package=. --report-on=lib | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
env: | |
files: ./coverage.lcov | |
verbose: true | |
flags: ${{ matrix.work_dir }} | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
- name: Stop Docker Container | |
if: ${{ matrix.work_dir == 'openapi-generator' && always() }} | |
run: docker-compose -f "docker-compose.yaml" down | |
build: | |
name: Build example project 🛠️ | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
defaults: | |
run: | |
working-directory: example | |
steps: | |
- name: Checkout ⬇️ | |
uses: actions/checkout@v3 | |
- name: Build Example Project 🛠 | |
uses: subosito/flutter-action@v2 | |
with: | |
cache: true | |
channel: 'stable' | |
- run: flutter pub get | |
- run: flutter pub run build_runner build --delete-conflicting-outputs | |
- run: flutter build apk | |
# - name: Upload artifact (Client) ⬆️💻 | |
# uses: actions/[email protected] | |
# with: | |
# name: example | |
# path: | | |
# example/build/web | |
pr_context: | |
name: Save PR context as artifact | |
if: ${{ always() && !cancelled() && github.event_name == 'pull_request' }} | |
runs-on: ubuntu-latest | |
needs: | |
# - dependency-review | |
- build | |
- ci | |
steps: | |
- name: Save PR context | |
env: | |
PR_NUMBER: ${{ github.event.number }} | |
PR_SHA: ${{ github.sha }} | |
run: | | |
echo $PR_NUMBER > PR_number | |
echo $PR_SHA > PR_sha | |
- name: Upload PR number as artifact | |
uses: actions/[email protected] | |
with: | |
name: PR_context | |
path: | | |
PR_number | |
PR_sha | |
conventional_commits: | |
name: Conventional commits check 💬 | |
if: ${{ github.event_name == 'pull_request' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout ⬇️ | |
uses: actions/[email protected] | |
- name: Check if all commits comply with the specification | |
uses: webiny/[email protected] |