Skip to content

chore(release): prepare 1.0.0-beta.9 #58

chore(release): prepare 1.0.0-beta.9

chore(release): prepare 1.0.0-beta.9 #58

Workflow file for this run

name: Web Integration Tests
on:
workflow_call:
workflow_dispatch:
pull_request:
branches:
- main
paths:
- packages/naked_ui/**
- packages/example/**
- tool/**
- pubspec.yaml
- pubspec.lock
- .github/workflows/integration-web.yml
merge_group:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-web
cancel-in-progress: true
jobs:
integration-tests-web:
name: Integration Tests (web)
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
flutter-version: '3.41.2'
cache: true
- name: Set up pinned Chrome and ChromeDriver
id: chrome
uses: browser-actions/setup-chrome@v2.1.2
with:
chrome-version: '150.0.7871.115'
install-chromedriver: true
install-dependencies: true
- name: Install workspace dependencies
run: flutter pub get
- name: Record target environment
run: |
flutter doctor -v
"${{ steps.chrome.outputs.chrome-path }}" --version
"${{ steps.chrome.outputs.chromedriver-path }}" --version
- name: Run integration tests on web
working-directory: packages/example
run: |
set -o pipefail
mkdir -p build
"${{ steps.chrome.outputs.chromedriver-path }}" --port=4444 &
driver_pid=$!
trap 'kill "$driver_pid" 2>/dev/null || true' EXIT
flutter drive \
--driver=test_driver/integration_test_behavior.dart \
--target=integration_test/all_tests.dart \
-d web-server \
--browser-name=chrome \
--browser-dimension=800x600@1 \
--chrome-binary="${{ steps.chrome.outputs.chrome-path }}" \
2>&1 | tee build/web-integration.log
- name: Verify web integration evidence
run: |
log=packages/example/build/web-integration.log
grep -F "All tests passed." "$log"
if grep -Eq 'TimeoutException|Some tests failed\.| \[E\]' "$log"; then
echo "The in-app test runner reported failures." >&2
exit 1
fi
- name: Upload web integration evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: integration-web-${{ github.sha }}
path: |
packages/example/build/web-integration.log
packages/example/build/integration_response_data.json
if-no-files-found: warn
retention-days: 14