Add a complete StrykerJS CI workflow and publish reports
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- github-actions, javascript, node.js
- Domain
- ci-cd, frontend, testing-qa
Research direction
First resolve prerequisite #8811, then inspect the existing GitHub Actions workflows, LibreSign's Node version, mutation-test npm script, Stryker configuration, and Vitest setup. Add a main/manual workflow that runs the full mutation test without a score gate, preserves supported reports as artifacts, and exposes operational failures and a summary in the log; verify the listed Done criteria.
Written by the indexing model from the issue text.
Description
Goal
Run the complete LibreSign frontend mutation suite in GitHub Actions and preserve useful mutation reports for maintainers.
This workflow provides the authoritative CI execution surface for complete StrykerJS runs and baseline measurement.
It is not the normal pull-request merge gate.
Prerequisite
The basic Stryker/Vitest integration in #8811 must work reliably.
Execution model
Provide a complete StrykerJS run from GitHub Actions.
Initially support:
- manual workflow dispatch;
- another non-PR cadence only when it is useful for maintaining a trustworthy complete baseline.
Do not require the complete StrykerJS suite on every normal pull request.
Normal pull-request mutation protection belongs to the later change-aware workflow.
Runtime
Use the Node version declared by LibreSign rather than hardcoding a divergent project runtime.
Install dependencies with:
npm ci
and invoke the project's mutation-test script.
Keep workflow logic declarative. Do not move application-specific mutation behavior into GitHub Actions when it belongs in Stryker configuration or project scripts.
Reporting
Preserve an HTML and/or machine-readable mutation report where supported.
Make useful reports available as CI artifacts.
The job log must still contain enough information to diagnose the run without requiring artifact download.
Record at minimum:
- total runtime;
- generated mutants;
- killed mutants;
- surviving mutants;
- no-coverage mutants;
- timeout/error mutants;
- mutation score;
- StrykerJS version;
- Node version;
- LibreSign commit SHA.
Failure behavior
The workflow must fail for operational failures such as:
- Stryker cannot start;
- Vitest cannot run;
- configuration is invalid;
- the mutation process crashes.
Do not hide failures behind unconditional success handling.
Do not introduce an arbitrary blocking mutation-score threshold in this issue.
Done when
- A complete StrykerJS run can execute from GitHub Actions.
- Complete-run reports are inspectable after CI finishes.
- Operational failures remain visible.
- The workflow records enough metadata to reproduce and compare runs.
- The complete run is not required on every normal pull request.
- No arbitrary merge-blocking score is introduced.
References
- Parent epic: #8810
- Dominant language
- PHP
- Stars
- 818
- Forks
- 146
- Avg merge
- 7h 8m
- Merged PRs (30d)
- 549
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from LibreSign/libresign
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
LibreSign/libresign#8284 · 5 comments ·
Maintainers usually reply within 1 day
-
backend enhancement php
Difficulty 4/5 3-5 days Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
backend enhancement php
Difficulty 5/5 Over a week Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
backend php
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Maintainers usually reply within 1 day
-
frontend javascript
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Maintainers usually reply within 1 day
All issues in LibreSign/libresign
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Awaiting Triage
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
WordPress/two-factor#1008 ·
Maintainers usually reply within 1 day
-
sync-en
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day