56 lines
1.5 KiB
YAML
56 lines
1.5 KiB
YAML
name: Onboarding Integration Test
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'packages/**'
|
|
- 'scripts/setup.sh'
|
|
- 'tests/integration/**'
|
|
- '.github/workflows/onboarding-test.yml'
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
onboarding-test:
|
|
name: Test Fresh Onboarding
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
|
|
|
|
- name: Build test image
|
|
working-directory: tests/integration
|
|
run: docker compose build
|
|
|
|
- name: Run onboarding test
|
|
id: test
|
|
working-directory: tests/integration
|
|
run: |
|
|
docker compose up --abort-on-container-exit --exit-code-from onboarding-test
|
|
|
|
- name: Extract metrics
|
|
if: always()
|
|
run: |
|
|
# Extract onboarding time from container logs
|
|
docker logs ao-onboarding-test 2>&1 | grep "Total onboarding time" || echo "Metrics not available"
|
|
|
|
- name: Cleanup
|
|
if: always()
|
|
working-directory: tests/integration
|
|
run: docker compose down -v
|
|
|
|
- name: Upload test logs
|
|
if: failure()
|
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
|
|
with:
|
|
name: onboarding-test-logs
|
|
path: |
|
|
tests/integration/*.log
|
|
retention-days: 7
|