Add CI workflow to build and test on PRs and pushes - #18
Merged
Merged
Conversation
release.yml only triggers on tag push, so nothing currently builds or runs the testsuite on pull requests or on ordinary commits to main/develop. This adds a separate workflow that does both, reusing release.yml's easel-clone/autoconf/configure/make recipe and adding a make check step that release.yml itself never runs either. Matrix covers ubuntu-latest (x86, SSE/AVX family) and macos-latest (ARM64, the only way to actually exercise impl_neon/), since BATH's configure auto-selects the SIMD implementation based on the build host's architecture. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
release.ymlonly triggers on tag push (on: push: tags: v*), so today nothing automatically builds or runs the testsuite on pull requests, or on ordinary commits/pushes tomain/develop. Even tagged releases never runmake check—release.ymlbuilds and packages binaries but doesn't verify they pass the testsuite.This adds a second workflow,
ci.yml, that:pull_requestandpush, both targetingmainanddeveloprelease.yml's working recipe for getting a buildable tree (clone the companion easel repo, checkout itsBATHbranch,autoconf,configure,make) — verified this recipe actually works from a genuinely fresh clone, not just copied from the existing filemake check, which neither existing workflow runsubuntu-latest(x86 — SSE/AVX family) andmacos-latest(ARM64 — the only way to actually exerciseimpl_neon/), sinceconfigureauto-selects the SIMD implementation based on the build host's own architecture. A single-OS run would leave NEON-specific bugs completely uncovered.Linted clean with
actionlint(caught and fixed one issue:actions/checkout@v3runs on a deprecated runner — bumped to v4;release.ymlstill has this same issue, out of scope here).This won't affect the currently-open #15 —
pull_request-triggered workflows only fire on specific events (opened/synchronize/reopened), so it won't retroactively run against it. It will run automatically the next time that branch gets a new commit, though, which gives us real CI signal on any future revision there for free.🤖 Generated with Claude Code