Files
akbasic/.gitea/workflows/mutation.yaml
Logikoma 11e4e96daf
All checks were successful
akbasic CI Build / cmake_build (push) Successful in 3m22s
akbasic CI Build / sanitizers (push) Successful in 4m36s
akbasic CI Build / coverage (push) Successful in 4m10s
akbasic CI Build / akgl_build (push) Successful in 8m31s
akbasic CI Build / mutation_test (push) Successful in 22m4s
Schedule mutation testing outside push CI
Move the full mutation suite into a dedicated daily 02:00 EST workflow so merge and release checks do not consume CI agents for hours.
2026-08-06 08:51:35 -04:00

49 lines
1.5 KiB
YAML

name: akbasic Mutation Testing
run-name: ${{ gitea.actor }} akbasic mutation test
# Mutation testing is intentionally isolated from push and merge checks. The
# complete src/ tree takes hours and must not consume the shared CI capacity
# during normal development.
on:
# Gitea schedules use UTC. 07:00 UTC is 02:00 EST (the requested fixed
# Eastern Standard Time slot).
schedule:
- cron: '0 7 * * *'
workflow_dispatch:
jobs:
full_mutation:
runs-on: ubuntu-latest
timeout-minutes: 720
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
submodules: true
- name: dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y cmake gcc python3 moreutils
- name: mutation testing (full tree)
run: |
python3 scripts/mutation_test.py \
--junit mutation-junit.xml \
--threshold 65
- name: publish mutation results
if: always()
uses: mikepenz/action-junit-report@v4
with:
report_paths: 'mutation-junit.xml'
annotate_only: true
detailed_summary: true
include_passed: true
fail_on_failure: 'false'
- name: upload mutation report
if: always()
uses: actions/upload-artifact@v4
with:
name: mutation-report
path: mutation-junit.xml
if-no-files-found: warn
- run: echo "🍏 This job's status is ${{ job.status }}."