mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-26 22:35:18 +02:00
85 lines
2.9 KiB
YAML
85 lines
2.9 KiB
YAML
name: 'Test: E2E Coverage Weekly'
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '0 2 * * 1' # Every Monday at 2 AM
|
|
workflow_dispatch: # Allow manual triggering
|
|
|
|
env:
|
|
NODE_OPTIONS: --max-old-space-size=16384
|
|
PLAYWRIGHT_WORKERS: 4
|
|
PLAYWRIGHT_BROWSERS_PATH: packages/testing/playwright/.playwright-browsers
|
|
|
|
jobs:
|
|
coverage:
|
|
runs-on: blacksmith-8vcpu-ubuntu-2204
|
|
name: Coverage Tests
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Setup Environment
|
|
uses: ./.github/actions/setup-nodejs
|
|
env:
|
|
INCLUDE_TEST_CONTROLLER: 'true'
|
|
|
|
- name: Build Docker Image with Coverage
|
|
run: pnpm build:docker:coverage
|
|
env:
|
|
INCLUDE_TEST_CONTROLLER: 'true'
|
|
|
|
- name: Install Browsers
|
|
run: pnpm turbo run install-browsers --filter=n8n-playwright
|
|
|
|
- name: Run Container Coverage Tests
|
|
id: coverage-tests
|
|
run: |
|
|
pnpm --filter n8n-playwright test:container:sqlite \
|
|
--workers=${{ env.PLAYWRIGHT_WORKERS }}
|
|
env:
|
|
BUILD_WITH_COVERAGE: 'true'
|
|
CURRENTS_RECORD_KEY: ${{ secrets.CURRENTS_RECORD_KEY }}
|
|
CURRENTS_PROJECT_ID: 'LRxcNt'
|
|
QA_METRICS_WEBHOOK_URL: ${{ secrets.QA_METRICS_WEBHOOK_URL }}
|
|
QA_METRICS_WEBHOOK_USER: ${{ secrets.QA_METRICS_WEBHOOK_USER }}
|
|
QA_METRICS_WEBHOOK_PASSWORD: ${{ secrets.QA_METRICS_WEBHOOK_PASSWORD }}
|
|
|
|
- name: Generate Coverage Report
|
|
if: always() && steps.coverage-tests.outcome != 'skipped'
|
|
run: pnpm --filter n8n-playwright coverage:report
|
|
|
|
- name: Upload Coverage Report Artifact
|
|
if: always()
|
|
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
|
with:
|
|
name: coverage-report
|
|
path: packages/testing/playwright/coverage/
|
|
retention-days: 14
|
|
|
|
- name: Upload E2E Coverage to Codecov
|
|
if: always()
|
|
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
files: packages/testing/playwright/coverage/lcov.info
|
|
flags: frontend-e2e
|
|
name: playwright-e2e
|
|
fail_ci_if_error: false
|
|
|
|
- name: Analyse Coverage Gaps
|
|
if: always() && steps.coverage-tests.outcome != 'skipped'
|
|
env:
|
|
CODECOV_API_TOKEN: ${{ secrets.CODECOV_API_TOKEN }}
|
|
run: |
|
|
node packages/testing/playwright/scripts/coverage-analysis.mjs \
|
|
--md --top=15 --out-json=coverage-gaps.json >> "$GITHUB_STEP_SUMMARY"
|
|
|
|
- name: Upload Coverage Gap Report
|
|
if: always() && steps.coverage-tests.outcome != 'skipped'
|
|
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
|
with:
|
|
name: coverage-gap-report
|
|
path: coverage-gaps.json
|
|
retention-days: 21
|