summaryrefslogtreecommitdiff
path: root/.github/workflows/coverage.yml
diff options
context:
space:
mode:
authorCrash Over Burn2026-04-15 00:54:46 +0000
committerCrashOverBurn2026-04-15 00:54:46 +0000
commit2de700733370b22797ff71667f68c119951c3194 (patch)
tree7d782bf319532a76aba0e8ca72eb9a9c930426df /.github/workflows/coverage.yml
parent6e398ebdf0b0bf656a34ed4dd3b92963d684a888 (diff)
downloadnixtaml-2de700733370b22797ff71667f68c119951c3194.tar
nixtaml-2de700733370b22797ff71667f68c119951c3194.tar.gz
nixtaml-2de700733370b22797ff71667f68c119951c3194.tar.bz2
nixtaml-2de700733370b22797ff71667f68c119951c3194.tar.lz
nixtaml-2de700733370b22797ff71667f68c119951c3194.tar.xz
nixtaml-2de700733370b22797ff71667f68c119951c3194.tar.zst
nixtaml-2de700733370b22797ff71667f68c119951c3194.zip
Add bisect_ppx test coverage infrastructure with CI workflow and test suites
Integrate bisect_ppx for code coverage across the test suite: - Add bisect_ppx instrumentation to lib/dune and test/dune - Add bisect_ppx dependency to dune-project, nixtamal.opam, and nix/package/nixtamal.nix - Create bisect.yml configuration for HTML and text coverage reports - Add .github/workflows/coverage.yml for CI-based coverage reporting - Fix flake.nix devShell to include checkInputs for full development environment - Add coverage checks to flake.nix checks output New test suites for recently ported features: - test/test_upgrade.ml: Tests for schema upgrade command (backup, dry-run, version validation) - test/test_fossil.ml: Tests for Fossil VCS codec and lockfile roundtrips - test/test_lockfile.ml: Tests for lockfile auto-creation and serialization - test/test_main.ml: Register all new test suites Documentation updates: - AGENTS.md: Add contact info (website, XMPP MUC), note llm/ folder is gitignored - README.asciidoc: Add website link, mention Fossil VCS, schema versioning, upgrade command - .gitignore: Add _build/ and _coverage/ directories Covers testing for previously ported features: schema upgrade, Fossil VCS support, and lockfile auto-creation.
Diffstat (limited to '.github/workflows/coverage.yml')
-rw-r--r--.github/workflows/coverage.yml35
1 files changed, 35 insertions, 0 deletions
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
new file mode 100644
index 0000000..ee358f0
--- /dev/null
+++ b/.github/workflows/coverage.yml
@@ -0,0 +1,35 @@
+name: coverage
+
+on:
+ push:
+ pull_request:
+
+jobs:
+ test-with-coverage:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Install Nix
+ uses: cachix/install-nix-action@v31
+
+ - name: Run tests with bisect_ppx
+ run: |
+ nix develop --option builders '' --command sh -c 'BISECT_ENABLE=YES dune runtest --instrument-with bisect_ppx --force'
+
+ - name: Generate coverage reports
+ run: |
+ nix develop --option builders '' --command sh -c 'bisect-ppx-report summary --coverage-path _build/default/test > coverage-summary.txt'
+ nix develop --option builders '' --command sh -c 'bisect-ppx-report html --coverage-path _build/default/test --tree -o _coverage'
+
+ - name: Upload coverage artifacts
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-report
+ path: |
+ coverage-summary.txt
+ coverage/
+ _coverage/
+ if-no-files-found: warn