Shared GitHub composite actions for CI across the asimov
plugin ecosystem (asimov-pesummary, asimov-cogwheel, asimov-pycbc, and friends).
These actions were extracted after the same HTCondor CI scaffolding was copy-pasted into several pipeline plugin repos and started drifting out of sync. Anything specific to a single pipeline (e.g. installing that pipeline's own conda environment) stays in that repo; only the generic, pipeline-agnostic steps live here.
- create-submit-user — creates the
submituseraccount (with passwordless sudo) that asimov/HTCondor jobs run as in CI. - setup-htcondor — configures and starts a local HTCondor instance suitable for CI, with a raised advertised memory so default job memory requests match the CI runner.
- run-asimov-command — runs a script as
submituserinside theasimovconda environment. - wait-for-files — polls a directory for one or more file patterns to appear, with a timeout, used to wait for asimov/HTCondor jobs to produce their output.
Reference an action from a consuming workflow with owner/repo/path@ref:
- name: Setup HTCondor
uses: etive-io/actions/setup-htcondor@v1
- name: Run asimov command
uses: etive-io/actions/run-asimov-command@v1
with:
script: asimov init "My Project"Tagged releases follow vN (e.g. v1). The vN tag is a moving pointer, updated to the
latest compatible commit — matching the convention used by actions like actions/checkout.
Breaking changes to an action's inputs/outputs bump to a new major tag (v2, ...) rather than
changing v1 in place. Consumers should pin to a major tag (@v1), not @main, so this repo
can be changed without silently breaking every consumer on the next push.