Skip to content

feat(battery_plus): Add Swift Package Manager support #443

feat(battery_plus): Add Swift Package Manager support

feat(battery_plus): Add Swift Package Manager support #443

Workflow file for this run

# Build Battery Plus Example
name: battery_plus
concurrency:
group: battery_plus_${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
defaults:
run:
shell: bash
on:
pull_request:
paths:
- "packages/battery_plus/**"
- ".github/workflows/battery_plus.yaml"
- "!**.md"
- "!**.gitignore"
env:
PLUGIN_SCOPE: "*battery_plus*"
PLUGIN_EXAMPLE_SCOPE: "*battery_plus_example*"
jobs:
analyze:
name: "Dart Analyzer"
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: |
./.github/workflows/scripts/install-tools.sh
- name: "Bootstrap Workspace"
run: melos bootstrap
- name: "Run Dart Analyze"
uses: invertase/github-action-dart-analyzer@v3
with:
fatal-infos: false
fatal-warnings: true
annotate: true
working-directory: ./packages/battery_plus
android_example_build:
runs-on: macos-14
timeout-minutes: 30
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Build Example"
run: ./.github/workflows/scripts/build-examples.sh android ./lib/main.dart
android_integration_test:
# Use non M1 machine till https://github.com/ReactiveCircus/android-emulator-runner/issues/350 is resolved
runs-on: macos-13
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
android-api-level: [ 22, 26, 31, 34 ]
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Bootstrap Workspace"
run: melos bootstrap --scope="$PLUGIN_SCOPE"
- name: "Android Integration Test"
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.android-api-level }}
cores: 3
target: google_apis
arch: x86_64
force-avd-creation: false
profile: Nexus 5X
script: ./.github/workflows/scripts/integration-test.sh android battery_plus_example
ios_example_build:
runs-on: macos-14
timeout-minutes: 30
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Build Example"
run: ./.github/workflows/scripts/build-examples.sh ios ./lib/main.dart
ios_integration_test:
runs-on: macos-14
timeout-minutes: 30
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Bootstrap Workspace"
run: melos bootstrap --scope="$PLUGIN_SCOPE"
- name: "Start Simulator"
uses: futureware-tech/simulator-action@v3
with:
model: "iPhone 15"
- name: "Run Integration Test"
run: ./.github/workflows/scripts/integration-test.sh ios battery_plus_example
macos_example_build:
runs-on: macos-14
timeout-minutes: 30
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Build Example"
run: ./.github/workflows/scripts/build-examples.sh macos ./lib/main.dart
macos_integration_test:
if: false # Disabled as battery_plus APIs don't complete in github actions macos VMs.
runs-on: macos-14
timeout-minutes: 30
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Bootstrap Workspace"
run: melos bootstrap --scope="$PLUGIN_SCOPE"
- name: "Run Integration Test"
run: ./.github/workflows/scripts/integration-test.sh macos battery_plus_example
linux_example_build:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Install UPower"
run: sudo apt install upower
- name: "Build Example"
run: ./.github/workflows/scripts/build-examples.sh linux ./lib/main.dart
linux_integration_test:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Install UPower"
run: sudo apt install upower
- name: "Bootstrap Workspace"
run: melos bootstrap --scope="$PLUGIN_SCOPE"
- name: "Run Integration Test"
run: ./.github/workflows/scripts/integration-test.sh linux battery_plus_example
windows_example_build:
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Build Example"
run: ./.github/workflows/scripts/build-examples.sh windows ./lib/main.dart
windows_integration_test:
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Bootstrap Workspace"
run: melos.bat bootstrap --scope="$PLUGIN_SCOPE"
- name: "Run Integration Test"
run: ./.github/workflows/scripts/integration-test.sh windows battery_plus_example
web_example_build:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Install Flutter"
run: ./.github/workflows/scripts/install-flutter.sh stable
- name: "Install Tools"
run: ./.github/workflows/scripts/install-tools.sh
- name: "Build Example"
run: ./.github/workflows/scripts/build-examples.sh web ./lib/main.dart