Skip to content

feat(storage): Swift Package Manager support #10770

feat(storage): Swift Package Manager support

feat(storage): Swift Package Manager support #10770

Workflow file for this run

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: 30
env:
FLUTTER_DEPENDENCIES: "cloud_firestore firebase_remote_config cloud_functions firebase_database firebase_auth"
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'
- name: Setup firebase_core example app to test Swift integration
# run this before running melos boostrap to ensure the example app is set up
run: |
cd packages/firebase_core/firebase_core/example
flutter pub add $FLUTTER_DEPENDENCIES
cd ../../../..
- 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: dart ./.github/workflows/scripts/swift-integration.dart $FLUTTER_DEPENDENCIES
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