Skip to content

Sync

Sync #634

Workflow file for this run

name: packages (all)
on:
push:
branches: [master]
paths-ignore:
- "docs/**"
- "website/**"
- "**.md"
pull_request:
branches: ['**']
paths-ignore:
- "docs/**"
- "website/**"
- "**.md"
jobs:
analyze:
name: analyze
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: "Install Tools"
run: |
./.github/workflows/scripts/install-tools.sh
- name: "Bootstrap Workspace"
run: melos bootstrap
- name: "Set env keys"
env:
STRIPE_PUBLISHABLE_KEY: ${{ secrets.STRIPE_PUBLISHABLE_KEY }}
run: |
./.github/workflows/scripts/env-files.sh
- name: "Run Analyze"
run: melos run analyze
- name: "Pub Check"
run: |
melos exec -c 1 --no-private --ignore="*example*" -- \
flutter pub publish --dry-run
test:
name: test
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: "Install Tools"
run: |
./.github/workflows/scripts/install-tools.sh
- name: "Bootstrap Workspace"
run: melos bootstrap
- name: "Set env keys"
env:
STRIPE_PUBLISHABLE_KEY: ${{ secrets.STRIPE_PUBLISHABLE_KEY }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
run: |
./.github/workflows/scripts/env-files.sh
- name: "Run unittest"
run: melos run unittest
ios_integration_test:
name: integration test (iOS)
needs: [analyze, test]
timeout-minutes: 60
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v2
with:
cache: true
- uses: actions/setup-node@v3
with:
node-version: 16
cache: 'yarn'
cache-dependency-path: example/server/yarn.lock
- name: Cache pods
uses: actions/cache@v2
with:
path: example/iOS/Pods
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-
- name: "Install Tools"
run: |
./.github/workflows/scripts/install-tools.sh
- name: "Bootstrap Workspace"
run: melos bootstrap
- name: "Set env keys"
env:
STRIPE_PUBLISHABLE_KEY: ${{ secrets.STRIPE_PUBLISHABLE_KEY }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
run: |
./.github/workflows/scripts/env-files.sh
- name: "Start dev server"
working-directory: example/server
run: yarn install && (yarn start:dev &)
- name: "Set IP address"
working-directory: example
run: |
echo "const kApiUrl='''$(ifconfig | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}')''';" > integration_test/ip.dart
cat integration_test/ip.dart
- name: "Start iOS Simulator"
run: |
xcrun simctl boot "iPhone 13 mini"
- name: "Run Flutter Driver tests on iOS"
working-directory: example
run: "flutter drive --driver test_driver/integration_test.dart --target=integration_test/run_all_tests.dart"
android_integration_test:
name: integration test (Android)
needs: [analyze, test, ios_integration_test]
timeout-minutes: 60
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v2
with:
cache: true
- uses: actions/setup-node@v3
with:
node-version: 16
cache: 'yarn'
cache-dependency-path: example/server/yarn.lock
- name: Set up Java version
uses: actions/setup-java@v1
with:
java-version: '11'
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: "Install Tools"
run: |
./.github/workflows/scripts/install-tools.sh
- name: "Bootstrap Workspace"
run: melos bootstrap
- name: "Set env keys"
env:
STRIPE_PUBLISHABLE_KEY: ${{ secrets.STRIPE_PUBLISHABLE_KEY }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
run: |
./.github/workflows/scripts/env-files.sh
- name: "Start dev server"
working-directory: example/server
run: yarn install && (yarn start:dev &)
- name: "Set IP address"
working-directory: example
run: |
echo "const kApiUrl='''$(ifconfig | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}')''';" > integration_test/ip.dart
cat integration_test/ip.dart
- name: "Run integration test Android"
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 29
working-directory: example
script: |
sleep 15;
flutter drive --driver test_driver/integration_test.dart --target=integration_test/run_all_tests.dart;
cd android && ./gradlew :app:connectedDebugAndroidTest;