Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s
Save JUnit Test Report to TMS Action
GitHub Action to save JUnit test reports to Zephyr Scale Test Management System.
Usage
- name: Save JUnit test report to Zephyr
uses: ./.github/actions/save-junit-report-tms
with:
report-path: ./test-reports/report.xml
zephyr-api-key: ${{ secrets.ZEPHYR_API_KEY }}
build-image: ${{ env.BUILD_IMAGE }}
zephyr-folder-id: '27504432' # Optional, defaults to 27504432
jira-project-key: 'MM' # Optional, defaults to MM
Inputs
| Input | Description | Required | Default |
|---|---|---|---|
report-path |
Path to the XML test report file (from artifact) | Yes | - |
zephyr-api-key |
Zephyr Scale API key | Yes | - |
build-image |
Docker build image used for testing | Yes | - |
zephyr-folder-id |
Zephyr Scale folder ID | No | 27504432 |
jira-project-key |
Jira project key | No | MM |
Outputs
| Output | Description |
|---|---|
test-cycle |
The created test cycle key in Zephyr Scale |
test-keys-execution-count |
Total number of test executions (including duplicates) |
test-keys-unique-count |
Number of unique test keys successfully saved to Zephyr |
junit-total-tests |
Total number of tests in the JUnit XML report |
junit-total-passed |
Number of passed tests in the JUnit XML report |
junit-total-failed |
Number of failed tests in the JUnit XML report |
junit-pass-rate |
Pass rate percentage from the JUnit XML report |
junit-duration-seconds |
Total test duration in seconds from the JUnit XML report |
Local Development
- Copy
.env.exampleto.envand fill in your values - Run
npm installto install dependencies - Run
npm run pretterto format code - Run
npm testto run unit tests - Run
npm run local-actionto test locally - Run
npm run buildto build for production
Submitting Code Changes
IMPORTANT: When submitting code changes, you must run the following checks locally as there are no CI jobs for this action:
- Run
npm run prettierto format your code - Run
npm testto ensure all tests pass - Run
npm run buildto compile your changes - Include the updated
dist/folder in your commit
GitHub Actions runs the compiled code from the dist/ folder, not the source TypeScript files. If you don't include the built files, your changes won't be reflected in the action.
Report Format
The action expects a JUnit XML format report with test case names containing Zephyr test keys in the format {PROJECT_KEY}-T{NUMBER} (e.g., MM-T1234, FOO-T5678).
The test key pattern is automatically determined by the jira-project-key input (defaults to MM).
Example:
<testsuites tests="10" failures="2" errors="0" time="45.2">
<testsuite name="mmctl tests" tests="10" failures="2" time="45.2" timestamp="2024-01-01T00:00:00Z">
<testcase name="MM-T1234 - Test user creation" time="2.5"/>
<testcase name="MM-T1235 - Test user login" time="3.2">
<failure message="Login failed"/>
</testcase>
</testsuite>
</testsuites>