Fix soft keyboard staying open even if CardFormField / CardField no longer visible #1010
This file contains hidden or 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: 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-15 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - uses: subosito/flutter-action@v2 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 16 | |
| cache: 'yarn' | |
| cache-dependency-path: example/server/yarn.lock | |
| - uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: latest-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: "Start dev server" | |
| working-directory: example/server | |
| run: yarn install && (yarn start:dev &) | |
| - name: "Wait for server to be ready" | |
| run: | | |
| echo "Waiting for server to start..." | |
| for i in {1..30}; do | |
| if curl -s http://localhost:4242 > /dev/null 2>&1; then | |
| echo "Server is ready!" | |
| break | |
| fi | |
| echo "Attempt $i: Server not ready yet, waiting..." | |
| sleep 2 | |
| done | |
| - 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 16" | |
| - 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] | |
| timeout-minutes: 60 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: subosito/flutter-action@v2 | |
| # https://github.com/ReactiveCircus/android-emulator-runner?tab=readme-ov-file#running-hardware-accelerated-emulators-on-linux-runners | |
| - name: Enable KVM group perms | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| - 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: '17' | |
| - 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: "Wait for server to be ready" | |
| run: | | |
| echo "Waiting for server to start..." | |
| for i in {1..30}; do | |
| if curl -s http://localhost:4242 > /dev/null 2>&1; then | |
| echo "Server is ready!" | |
| break | |
| fi | |
| echo "Attempt $i: Server not ready yet, waiting..." | |
| sleep 2 | |
| done | |
| - 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: 34 | |
| arch: x86_64 | |
| emulator-boot-timeout: 1800 | |
| force-avd-creation: false | |
| emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim | |
| disable-animations: true | |
| 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; |