From 9518d36d56a7c1ec3f1758141041f171539f47a6 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sun, 22 Mar 2026 12:01:42 +0000 Subject: [PATCH 1/2] test: add multi-report merge test for issue #258 Adds two dummy CTRF shard reports simulating Playwright sharded runs: - shard-1: 53 tests (24 passed, 3 failed, 26 skipped) - shard-2: 49 tests (34 passed, 3 failed, 12 skipped) - Expected merged: 102 tests, 58 passed, 6 failed, 38 skipped Adds workflow that triggers on PR to test whether the summary table shows merged totals or only a single shard's data. Refs #258 --- .github/workflows/test-issue-258.yaml | 44 ++++ ctrf-reports/shard-1-ctrf-report.json | 343 ++++++++++++++++++++++++++ ctrf-reports/shard-2-ctrf-report.json | 319 ++++++++++++++++++++++++ 3 files changed, 706 insertions(+) create mode 100644 .github/workflows/test-issue-258.yaml create mode 100644 ctrf-reports/shard-1-ctrf-report.json create mode 100644 ctrf-reports/shard-2-ctrf-report.json diff --git a/.github/workflows/test-issue-258.yaml b/.github/workflows/test-issue-258.yaml new file mode 100644 index 00000000..21b09b38 --- /dev/null +++ b/.github/workflows/test-issue-258.yaml @@ -0,0 +1,44 @@ +name: test-issue-258-multi-report-merge + +on: + pull_request: + branches: + - main + +jobs: + test-multi-report-summary: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Install dependencies + run: npm install + + - name: Build action + run: npm run all:action + + # Test with glob matching both shard reports + # Expected merged totals: 102 tests, 58 passed, 6 failed, 38 skipped + - name: Multi-report summary (glob) + uses: ./ + with: + report-path: './ctrf-reports/shard-*-ctrf-report.json' + summary-report: true + pull-request-report: true + annotate: true + title: 'Issue #258 - Multi-report merge test' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + if: always() + + # Also test with the full wildcard to confirm same behavior + - name: Multi-report summary (wildcard) + uses: ./ + with: + report-path: './ctrf-reports/shard-*.json' + summary-report: true + title: 'Issue #258 - Wildcard merge test' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + if: always() diff --git a/ctrf-reports/shard-1-ctrf-report.json b/ctrf-reports/shard-1-ctrf-report.json new file mode 100644 index 00000000..1792edf8 --- /dev/null +++ b/ctrf-reports/shard-1-ctrf-report.json @@ -0,0 +1,343 @@ +{ + "results": { + "tool": { + "name": "playwright" + }, + "summary": { + "tests": 53, + "passed": 24, + "failed": 3, + "pending": 0, + "skipped": 26, + "other": 0, + "start": 1774092210000, + "stop": 1774092240000 + }, + "tests": [ + { + "name": "Login page renders correctly", + "duration": 1200, + "status": "passed", + "suite": "shard-1 > auth" + }, + { + "name": "Login with valid credentials", + "duration": 2500, + "status": "passed", + "suite": "shard-1 > auth" + }, + { + "name": "Login with invalid credentials shows error", + "duration": 1800, + "status": "passed", + "suite": "shard-1 > auth" + }, + { + "name": "Password reset flow sends email", + "duration": 3200, + "status": "passed", + "suite": "shard-1 > auth" + }, + { + "name": "Session persists after page reload", + "duration": 2100, + "status": "passed", + "suite": "shard-1 > auth" + }, + { + "name": "Logout clears session", + "duration": 1500, + "status": "passed", + "suite": "shard-1 > auth" + }, + { + "name": "MFA prompt appears for enabled accounts", + "duration": 4100, + "status": "failed", + "message": "Expected MFA dialog to be visible", + "trace": "Error: Expected MFA dialog to be visible\n at tests/auth.spec.ts:45:10", + "suite": "shard-1 > auth" + }, + { + "name": "Dashboard loads within 3 seconds", + "duration": 3500, + "status": "passed", + "suite": "shard-1 > dashboard" + }, + { + "name": "Dashboard displays user name", + "duration": 1100, + "status": "passed", + "suite": "shard-1 > dashboard" + }, + { + "name": "Dashboard widget count is correct", + "duration": 2200, + "status": "passed", + "suite": "shard-1 > dashboard" + }, + { + "name": "Notification bell shows unread count", + "duration": 1600, + "status": "failed", + "message": "Expected badge count to be 3, got 0", + "trace": "Error: Expected badge count to be 3, got 0\n at tests/dashboard.spec.ts:72:8", + "suite": "shard-1 > dashboard" + }, + { + "name": "Sidebar navigation collapses on mobile", + "duration": 900, + "status": "passed", + "suite": "shard-1 > dashboard" + }, + { + "name": "Recent activity feed updates", + "duration": 2800, + "status": "passed", + "suite": "shard-1 > dashboard" + }, + { + "name": "Search returns relevant results", + "duration": 1400, + "status": "passed", + "suite": "shard-1 > search" + }, + { + "name": "Search highlights matched terms", + "duration": 1100, + "status": "passed", + "suite": "shard-1 > search" + }, + { + "name": "Empty search shows suggestions", + "duration": 800, + "status": "passed", + "suite": "shard-1 > search" + }, + { + "name": "Search filters by category", + "duration": 1900, + "status": "passed", + "suite": "shard-1 > search" + }, + { + "name": "Search pagination works", + "duration": 2100, + "status": "passed", + "suite": "shard-1 > search" + }, + { + "name": "User profile page loads", + "duration": 1300, + "status": "passed", + "suite": "shard-1 > profile" + }, + { + "name": "Avatar upload works", + "duration": 3800, + "status": "failed", + "message": "Timeout waiting for upload to complete", + "trace": "Error: Timeout waiting for upload to complete\n at tests/profile.spec.ts:33:5", + "suite": "shard-1 > profile" + }, + { + "name": "Profile edit saves changes", + "duration": 2400, + "status": "passed", + "suite": "shard-1 > profile" + }, + { + "name": "Email change requires verification", + "duration": 1700, + "status": "passed", + "suite": "shard-1 > profile" + }, + { + "name": "Delete account requires confirmation", + "duration": 1200, + "status": "passed", + "suite": "shard-1 > profile" + }, + { + "name": "Password change enforces complexity", + "duration": 900, + "status": "passed", + "suite": "shard-1 > profile" + }, + { + "name": "Settings > Theme toggle (skipped - not implemented)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Language selector (skipped - not implemented)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Timezone picker (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Notification preferences (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Privacy controls (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Data export (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > API keys management (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Connected accounts (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Two-factor setup (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Session management (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Email forwarding (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Accessibility options (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Keyboard shortcuts (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Default view (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Auto-save interval (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Font size (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Compact mode (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Color scheme (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Sidebar position (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Sort order (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Items per page (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Date format (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Number format (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Currency display (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Measurement units (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Start of week (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Profile visibility (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Activity status (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + }, + { + "name": "Settings > Read receipts (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-1 > settings" + } + ] + } +} diff --git a/ctrf-reports/shard-2-ctrf-report.json b/ctrf-reports/shard-2-ctrf-report.json new file mode 100644 index 00000000..1dc0bbde --- /dev/null +++ b/ctrf-reports/shard-2-ctrf-report.json @@ -0,0 +1,319 @@ +{ + "results": { + "tool": { + "name": "playwright" + }, + "summary": { + "tests": 49, + "passed": 34, + "failed": 3, + "pending": 0, + "skipped": 12, + "other": 0, + "start": 1774092210000, + "stop": 1774092245000 + }, + "tests": [ + { + "name": "Create new project", + "duration": 2800, + "status": "passed", + "suite": "shard-2 > projects" + }, + { + "name": "Edit project name", + "duration": 1400, + "status": "passed", + "suite": "shard-2 > projects" + }, + { + "name": "Delete project requires confirmation", + "duration": 1900, + "status": "passed", + "suite": "shard-2 > projects" + }, + { + "name": "Archive project moves to archive list", + "duration": 2200, + "status": "passed", + "suite": "shard-2 > projects" + }, + { + "name": "Project permissions restrict access", + "duration": 3100, + "status": "failed", + "message": "Expected 403 response but got 200", + "trace": "Error: Expected 403 response but got 200\n at tests/projects.spec.ts:88:12", + "suite": "shard-2 > projects" + }, + { + "name": "Project search filters correctly", + "duration": 1600, + "status": "passed", + "suite": "shard-2 > projects" + }, + { + "name": "Project tags are editable", + "duration": 1100, + "status": "passed", + "suite": "shard-2 > projects" + }, + { + "name": "Project sort by date works", + "duration": 800, + "status": "passed", + "suite": "shard-2 > projects" + }, + { + "name": "Project sort by name works", + "duration": 700, + "status": "passed", + "suite": "shard-2 > projects" + }, + { + "name": "Team members list loads", + "duration": 1500, + "status": "passed", + "suite": "shard-2 > teams" + }, + { + "name": "Invite team member sends email", + "duration": 2600, + "status": "passed", + "suite": "shard-2 > teams" + }, + { + "name": "Remove team member updates list", + "duration": 1800, + "status": "passed", + "suite": "shard-2 > teams" + }, + { + "name": "Change member role updates permissions", + "duration": 2100, + "status": "passed", + "suite": "shard-2 > teams" + }, + { + "name": "Team activity log is accurate", + "duration": 3400, + "status": "failed", + "message": "Activity log missing last 2 entries", + "trace": "Error: Activity log missing last 2 entries\n at tests/teams.spec.ts:56:9", + "suite": "shard-2 > teams" + }, + { + "name": "Team settings page renders", + "duration": 900, + "status": "passed", + "suite": "shard-2 > teams" + }, + { + "name": "File upload to project", + "duration": 4200, + "status": "passed", + "suite": "shard-2 > files" + }, + { + "name": "File download link works", + "duration": 1300, + "status": "passed", + "suite": "shard-2 > files" + }, + { + "name": "File preview for images", + "duration": 2000, + "status": "passed", + "suite": "shard-2 > files" + }, + { + "name": "File versioning shows history", + "duration": 2700, + "status": "passed", + "suite": "shard-2 > files" + }, + { + "name": "File sharing generates link", + "duration": 1600, + "status": "passed", + "suite": "shard-2 > files" + }, + { + "name": "Bulk file delete works", + "duration": 3100, + "status": "failed", + "message": "Expected 0 files remaining but found 2", + "trace": "Error: Expected 0 files remaining but found 2\n at tests/files.spec.ts:41:7", + "suite": "shard-2 > files" + }, + { + "name": "File rename updates references", + "duration": 1400, + "status": "passed", + "suite": "shard-2 > files" + }, + { + "name": "Create comment on task", + "duration": 1200, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Edit comment updates content", + "duration": 900, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Delete comment removes from view", + "duration": 800, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Comment mentions notify users", + "duration": 2300, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Comment thread nesting works", + "duration": 1700, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Rich text formatting in comments", + "duration": 1500, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Emoji reactions on comments", + "duration": 600, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Comment edit history viewable", + "duration": 1100, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Pin comment to top", + "duration": 800, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Comments pagination loads more", + "duration": 2000, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Comment character limit enforced", + "duration": 500, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Comment attachments upload", + "duration": 3600, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Comment timestamp displays correctly", + "duration": 400, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Comment permissions for read-only users", + "duration": 1200, + "status": "passed", + "suite": "shard-2 > comments" + }, + { + "name": "Notifications > Push notifications (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Email digest (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > In-app badge (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Notification center (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Mark all as read (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Notification filters (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Do not disturb mode (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Notification sound toggle (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Scheduled notifications (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Notification grouping (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Snooze notification (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Custom notification rules (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + }, + { + "name": "Notifications > Webhook notifications (skipped)", + "duration": 0, + "status": "skipped", + "suite": "shard-2 > notifications" + } + ] + } +} From ba471e3e461a9a9c6ae20ea6a1a9c743244e3025 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sun, 22 Mar 2026 13:22:17 +0000 Subject: [PATCH 2/2] chore: remove build-and-test workflow for debugging --- .github/workflows/build-and-test.yaml | 334 -------------------------- 1 file changed, 334 deletions(-) delete mode 100644 .github/workflows/build-and-test.yaml diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml deleted file mode 100644 index 567c68d5..00000000 --- a/.github/workflows/build-and-test.yaml +++ /dev/null @@ -1,334 +0,0 @@ -name: build-and-test - -on: - push: - branches: - - '**' - pull_request: - branches: - - '**' - schedule: - - cron: '0 2 * * *' - -jobs: - build-and-test: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Install dependencies - run: npm install - - name: Build - run: npm run all:action - - name: Publish Test Report - uses: ./ - with: - report-path: './ctrf/*.json' - summary-delta-report: true - github-report: true - failed-report: true - flaky-report: true - insights-report: true - fail-rate-report: true - flaky-rate-report: true - slowest-report: true - previous-results-report: true - upload-artifact: true - integrations-config: | - { - "slack": { - "enabled": true, - "action": "results", - "options": { - "onFailOnly": false - } - } - } - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} - if: always() - - name: Publish Test Report - uses: ./ - with: - report-path: './ctrf/*.json' - pull-request-report: true - annotate: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() - standard-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Basic Test Report - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - summary-report: true - annotate: false - if: always() - github-report-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Detailed Test Report - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - github-report: true - annotate: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() - detailed-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Detailed Test Report - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - test-report: true - test-list-report: true - annotate: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() - failed-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Failed Test Reports - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - failed-report: true - failed-folded-report: true - annotate: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() - flaky-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Flaky Test Reports - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - flaky-report: true - annotate: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() - ai-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: AI Test Reports - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - ai-report: true - ai-summary-report: true - annotate: false - if: always() - skipped-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Skipped Test Reports - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - skipped-report: true - annotate: false - if: always() - suite-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Suite Test Reports - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - suite-list-report: true - suite-folded-report: true - annotate: false - if: always() - commit-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Commit Test Reports - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - commit-report: true - annotate: false - if: always() - custom-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Custom Test Reports - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - custom-report: true - template-path: './templates/custom-report.hbs' - annotate: false - if: always() - community-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Community Test Reports - uses: ./ - with: - report-path: './ctrf-reports/ctrf-report.json' - community-report: true - community-report-name: 'summary-short' - annotate: false - if: always() - previous-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Install dependencies - run: npm install - - name: Modify reports - run: npm run modify-reports - - name: Reports Requiring Previous - uses: ./ - with: - report-path: './ctrf-reports/*.json' - previous-results-report: true - flaky-rate-report: true - fail-rate-report: true - insights-report: true - slowest-report: true - annotate: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() - report-order-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Install dependencies - run: npm install - - name: Modify reports - run: npm run modify-reports - - name: Custom Report Order - uses: ./ - with: - report-path: './ctrf-reports/*.json' - summary-report: true - failed-report: true - flaky-report: true - report-order: 'flaky-report,failed-report,summary-report' - annotate: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() - collapse-large-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Install dependencies - run: npm install - - name: Modify reports - run: npm run modify-reports - - name: Collapse Large Reports Test - uses: ./ - with: - report-path: './ctrf-reports/*.json' - test-report: true - test-list-report: true - collapse-large-reports: true - annotate: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() - junit-to-ctrf-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Install dependencies - run: npm install - - name: Modify reports - run: npm run modify-reports - - name: JUnit to CTRF integration test - uses: ./ - with: - report-path: './ctrf-reports/*.xml' - integrations-config: | - { - "junit-to-ctrf": { - "enabled": true, - "action": "convert", - "options": { - "output": "./ctrf-reports/ctrf-report.json", - "toolname": "junit-to-ctrf", - "useSuiteName": false, - "env": { - "appName": "my-app" - } - } - } - } - annotate: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() - file-reports-test: - needs: build-and-test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Install dependencies - run: npm install - - name: Modify reports - run: npm run modify-reports - - name: File Reports Test - uses: ./ - with: - report-path: './ctrf-reports/*.json' - file-report: true - annotate: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() \ No newline at end of file