test(fdc): add more tests to FDC #10512
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: all_plugins | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
paths-ignore: | |
- 'docs/**' | |
- 'website/**' | |
- '**.md' | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- 'docs/**' | |
- 'website/**' | |
- '**.md' | |
jobs: | |
analyze: | |
timeout-minutes: 45 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 | |
- uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 | |
with: | |
channel: 'stable' | |
cache: true | |
- uses: bluefireteam/melos-action@c7dcb921b23cc520cace360b95d02b37bf09cdaa | |
with: | |
melos-version: '5.3.0' | |
- name: 'Run Analyze' | |
run: melos analyze-ci | |
# Separated from "analyse" action as pubspec_override file is not being taken into account when running `flutter pub publish --dry-run` | |
# This will fail on CI until this is fixed: https://github.com/invertase/melos/issues/467 | |
# You need to switch to Flutter 3.3.0, and run this test manually to check it works and update PR to confirm its success | |
pub_dry_run: | |
timeout-minutes: 30 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 | |
- uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 | |
with: | |
channel: 'stable' | |
cache: true | |
- uses: bluefireteam/melos-action@c7dcb921b23cc520cace360b95d02b37bf09cdaa | |
with: | |
melos-version: '5.3.0' | |
- name: 'Pub Check' | |
run: | | |
melos exec -c 1 --no-private --ignore="*example*" -- \ | |
dart pub publish --dry-run | |
pub_get_check: | |
timeout-minutes: 30 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 | |
- uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 | |
with: | |
channel: 'stable' | |
cache: true | |
- uses: bluefireteam/melos-action@c7dcb921b23cc520cace360b95d02b37bf09cdaa | |
with: | |
melos-version: '5.3.0' | |
- name: 'Flutter Pub Get' | |
run: | | |
melos exec -c 1 --scope="*example*" -- \ | |
"flutter pub get" | |
format: | |
# switch back to ubuntu-latest when swiftformat is working again | |
runs-on: macos-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 | |
- uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 | |
with: | |
channel: 'stable' | |
cache: true | |
- uses: bluefireteam/melos-action@c7dcb921b23cc520cace360b95d02b37bf09cdaa | |
with: | |
melos-version: '5.3.0' | |
- uses: Homebrew/actions/setup-homebrew@master | |
- name: 'Install Tools' | |
run: | | |
alias python=python3 | |
flutter pub global activate flutter_plugin_tools | |
brew install swiftformat | |
brew install clang-format | |
brew link --overwrite --force clang-format | |
- name: 'Formatter version' | |
run: | | |
clang-format --version | |
swiftformat --version | |
- name: 'Dart, Java and Objective-C ' | |
run: | | |
flutter pub global run flutter_plugin_tools format | |
./.github/workflows/scripts/validate-formatting.sh | |
- name: 'Swift' | |
if: ${{ success() || failure() }} | |
run: | | |
swiftformat . | |
./.github/workflows/scripts/validate-formatting.sh | |
build_examples_dart: | |
timeout-minutes: 30 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 | |
- uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 | |
with: | |
channel: 'stable' | |
cache: true | |
- uses: bluefireteam/melos-action@c7dcb921b23cc520cace360b95d02b37bf09cdaa | |
with: | |
melos-version: '5.3.0' | |
- name: 'Build Examples' | |
run: | | |
melos exec -c 1 --scope="*example*" --dir-exists="web" -- \ | |
"flutter build web" | |
swift-integration: | |
runs-on: macos-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 | |
- uses: subosito/flutter-action@2783a3f08e1baf891508463f8c6653c258246225 | |
with: | |
# TODO - enabling swift is on `master` channel at the moment. Update when it's on `stable` | |
channel: 'master' | |
- uses: bluefireteam/melos-action@c7dcb921b23cc520cace360b95d02b37bf09cdaa | |
with: | |
melos-version: '5.3.0' | |
- name: 'Swift Integration Setup' | |
run: flutter config --enable-swift-package-manager | |
- name: 'Build Apps with Swift Package Manager' | |
run: ./.github/workflows/scripts/swift-integration.sh | |
test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 | |
- uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 | |
with: | |
channel: 'stable' | |
cache: true | |
- uses: bluefireteam/melos-action@c7dcb921b23cc520cace360b95d02b37bf09cdaa | |
with: | |
melos-version: '5.3.0' | |
- name: 'Flutter Test' | |
run: melos run test --no-select | |
- name: 'Flutter Test - Web' | |
run: melos run test:web --no-select | |
check-files-license-headers: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 | |
- uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 | |
with: | |
go-version: '^1.13.1' | |
# Go is used by addlicense command (addlicense is used in melos run | |
# check-license-header) | |
- run: go install github.com/google/addlicense@latest | |
- name: Install Dart | |
uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 | |
- name: Install Melos | |
uses: bluefireteam/melos-action@c7dcb921b23cc520cace360b95d02b37bf09cdaa | |
with: | |
# Running `melos bootstrap` is not needed because we use Melos just | |
# for the `check-license-header` script. | |
run-bootstrap: false | |
melos-version: '5.3.0' | |
- name: Check license header | |
run: melos run check-license-header |