Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
195 commits
Select commit Hold shift + click to select a range
37776ee
Update the bindings to use htcondor2
transientlunatic Oct 31, 2025
fd0b17f
Add tests to run in an htcondor container.
transientlunatic Oct 31, 2025
4fde3b3
Additional minor bug fixes
transientlunatic Oct 31, 2025
40350c0
Fix dependency installation
transientlunatic Oct 31, 2025
39e826e
Fix test suite discovery.
transientlunatic Oct 31, 2025
215aff9
Fix python executable
transientlunatic Oct 31, 2025
2c46bbc
Fix condor imports
transientlunatic Oct 31, 2025
f9ae233
Update the condor tests.
transientlunatic Oct 31, 2025
259e3e4
Add miniconda version
transientlunatic Oct 31, 2025
f94949d
More attempts to fix conda
transientlunatic Oct 31, 2025
b26e965
Fix syntax
transientlunatic Oct 31, 2025
967de9f
Fix python version
transientlunatic Oct 31, 2025
c4be9c3
Change mamba to conda
transientlunatic Oct 31, 2025
592b4db
Update channels in environment
transientlunatic Oct 31, 2025
c86d841
More updates
transientlunatic Oct 31, 2025
babe754
Remove sudo
transientlunatic Oct 31, 2025
e9d3dc8
Install pip into environment
transientlunatic Oct 31, 2025
ffa76a1
Improve conda running
transientlunatic Oct 31, 2025
fa7d31b
More work on the CI
transientlunatic Oct 31, 2025
5a2e48f
More engineering
transientlunatic Oct 31, 2025
9a23661
Fix bad syntax
transientlunatic Oct 31, 2025
549e860
Point to new location for the environment file.
transientlunatic Oct 31, 2025
2ce6bfa
Try changing the order of things
transientlunatic Oct 31, 2025
0b7c706
Hopefully getting there.
transientlunatic Oct 31, 2025
24f445e
Set default shell
transientlunatic Oct 31, 2025
ca5ceca
Switch to conda build
transientlunatic Oct 31, 2025
4c3dafd
One day this will all work
transientlunatic Oct 31, 2025
952adb7
One more try
transientlunatic Oct 31, 2025
cd3419e
Syntax fix
transientlunatic Oct 31, 2025
7fbc6bc
Update tests.
transientlunatic Oct 31, 2025
58ea3e9
Update to relative imports
transientlunatic Oct 31, 2025
92a6009
Will updating the pyproject help?
transientlunatic Oct 31, 2025
d2fae85
Update the fetch depth.
transientlunatic Oct 31, 2025
36aff42
Update to add a get-data step
transientlunatic Oct 31, 2025
f92f1a9
Fix path
transientlunatic Oct 31, 2025
6aa014e
Add asimov-gwdata as a dependency
transientlunatic Oct 31, 2025
ba77907
Fix the asimov command
transientlunatic Oct 31, 2025
f2c5563
Set default git branch to master
transientlunatic Oct 31, 2025
fe02a38
More git setup
transientlunatic Oct 31, 2025
a77f07a
Update the gitlab CI test process
transientlunatic Nov 6, 2025
2bfd5e4
Add a bayeswave job, comment out the get-data job for now
transientlunatic Nov 6, 2025
df51b43
Remove the `get-priors` dependency
transientlunatic Nov 6, 2025
e6ce2f5
Add bayeswaveutils install
transientlunatic Nov 6, 2025
cf4b0bb
Update the asimov project configuration
transientlunatic Nov 6, 2025
c33de8c
More debugging.
transientlunatic Nov 6, 2025
865ef2b
More updates
transientlunatic Nov 6, 2025
c07908f
More changes to the user handling
transientlunatic Nov 6, 2025
db507c1
Update the approach to changing user
transientlunatic Nov 6, 2025
7969611
Try two approaches to user change
transientlunatic Nov 6, 2025
505e3b2
Sigh
transientlunatic Nov 6, 2025
e391a8b
Merge pull request #4 from transientlunatic/update-htcondor-bindings
transientlunatic Dec 15, 2025
0b9dae5
Update the licence file to MIT.
transientlunatic Dec 16, 2025
9698ee6
Merge pull request #14 from etive-io/update-licence
transientlunatic Dec 16, 2025
ad67707
Update the tests
transientlunatic Dec 16, 2025
427a951
Update htcondor tests
transientlunatic Dec 16, 2025
6be8063
Enhance HTCondor workflow: streamline user permissions and improve co…
transientlunatic Dec 16, 2025
32ae164
Improve HTCondor workflow: enhance conda executable detection and str…
transientlunatic Dec 16, 2025
89897a0
Work on the bayeswave test.
transientlunatic Dec 16, 2025
5990b1c
View the asimov log to try and diagnose the issue with bayeswave
transientlunatic Dec 16, 2025
263787e
Increase the amount of the asimov log which is returned
transientlunatic Dec 16, 2025
b94f504
Add slurm tests.
transientlunatic Dec 16, 2025
60b745d
Try running the command directly to debug.
transientlunatic Dec 16, 2025
d334f7f
Remove the submit first
transientlunatic Dec 16, 2025
df0981c
Add get data step
transientlunatic Dec 16, 2025
81307d5
Update the get-data step
transientlunatic Dec 16, 2025
15daf95
More work on the tests
transientlunatic Dec 16, 2025
32d3667
Update caching
transientlunatic Dec 16, 2025
9673047
Update license field in pyproject.toml to reference LICENSE file
transientlunatic Dec 16, 2025
5e8ed2c
Temporarily install asimov-gwdata branch for HTCondor testing
transientlunatic Dec 16, 2025
cd9176d
Show hold reasons
transientlunatic Dec 16, 2025
910996c
Merge pull request #16 from etive-io/update-licence
transientlunatic Dec 17, 2025
613a73e
Add an ls to try and understand what's going wrong.
transientlunatic Dec 17, 2025
acc996c
Change the name of the frame we're waiting on
transientlunatic Dec 17, 2025
971c3fe
More fixes.
transientlunatic Dec 17, 2025
6889411
Wait for PSDs to be produced.
transientlunatic Dec 17, 2025
11a51a5
Reduce bayeswave requirements
transientlunatic Dec 17, 2025
ae5b777
Add a bilby step to the tests.
transientlunatic Dec 17, 2025
40f84d6
Temporarily remove the `needs` section to prevent lensingflow bug bre…
transientlunatic Dec 17, 2025
75c5d1e
Switch event blueprint
transientlunatic Dec 17, 2025
f64aa13
Re-add bayeswave to needs
transientlunatic Dec 17, 2025
a4808aa
Add a sleep before the submit step
transientlunatic Dec 17, 2025
bf545d6
Remove cache jobs
transientlunatic Dec 17, 2025
b627a2d
Remove the bayeswave job for now; we don't need the megaplot output t…
transientlunatic Dec 17, 2025
0ff1018
Merge pull request #15 from etive-io/ci-improvement
transientlunatic Dec 17, 2025
8be8400
Fix dictionary get
transientlunatic Dec 17, 2025
09e1ea3
Small CI fix.
transientlunatic Dec 17, 2025
fac8c3d
Another minor CI fix
transientlunatic Dec 17, 2025
095405a
Attempt to remove prioritisation code
transientlunatic Dec 17, 2025
10a1fbc
Update the bilby version
transientlunatic Dec 18, 2025
adbf76d
Fix the cosmology in the bilby yaml
transientlunatic Dec 18, 2025
1ca2a73
Increase the timeout for bilby
transientlunatic Dec 18, 2025
5887d06
Make the bilby run settings even more relaxed.
transientlunatic Dec 18, 2025
5f67c32
Update bilby kwargs
transientlunatic Dec 18, 2025
8bf0962
Fix the watched bilby file location
transientlunatic Dec 18, 2025
cc2080c
More attempts to fix the results watcher.
transientlunatic Dec 18, 2025
a15de1d
Remove terminal whitespace
transientlunatic Dec 18, 2025
c70ecb7
Merge pull request #17 from etive-io/fix-interest-dict
transientlunatic Dec 18, 2025
ff71225
Refactor package imports to use importlib for better compatibility
transientlunatic Dec 19, 2025
25b6a9c
Merge pull request #20 from etive-io/remove-pkg-resources
transientlunatic Dec 19, 2025
461bc21
Switch to actions
transientlunatic Dec 19, 2025
77dc294
Move checkout
transientlunatic Dec 19, 2025
7ef44e0
Updates to new workflow
transientlunatic Dec 19, 2025
9370b75
Revert mamba to conda for package installation in setup action
transientlunatic Dec 19, 2025
c7463a9
Fixes to the asimov command template.
transientlunatic Dec 19, 2025
d53805b
Refactor variable expansion for shell execution in run-asimov-command…
transientlunatic Dec 19, 2025
4df5c14
Refactor variable handling in run-asimov-command action for improved …
transientlunatic Dec 19, 2025
094cf1a
Ensure quoted arguments in COMMAND are respected by running through b…
transientlunatic Dec 19, 2025
88a19a8
Refactor command execution in run-asimov-command action to preserve q…
transientlunatic Dec 19, 2025
b09a782
Refactor variable handling in run-asimov-command action to improve qu…
transientlunatic Dec 19, 2025
7de0764
Refactor script execution in run-asimov-command action to improve arg…
transientlunatic Dec 19, 2025
43e84c3
Refactor script execution in run-asimov-command action to eliminate t…
transientlunatic Dec 19, 2025
c141cd2
Refactor run-asimov-command action to streamline variable export and …
transientlunatic Dec 19, 2025
f204326
Refactor run-asimov-command action to create a script for submituser …
transientlunatic Dec 19, 2025
d9dadfc
Refactor run-asimov-command action to improve script creation and cla…
transientlunatic Dec 19, 2025
707edce
Refactor run-asimov-command action to improve script creation and str…
transientlunatic Dec 19, 2025
5b5addd
Refactor run-asimov-command action to improve conda detection and str…
transientlunatic Dec 19, 2025
d66bd85
Refactor run-asimov-command action to enhance conda detection and str…
transientlunatic Dec 19, 2025
5080fbe
Refactor run-asimov-command action to enhance conda detection and imp…
transientlunatic Dec 19, 2025
bf14170
Update the action to improve handling of quotes.
transientlunatic Dec 20, 2025
9b95408
Refactor run-asimov-command action to improve conda path handling and…
transientlunatic Dec 20, 2025
0332102
Refactor run-asimov-command action to improve working directory handl…
transientlunatic Dec 20, 2025
a85cabe
Further workflow updates.
transientlunatic Dec 20, 2025
36fcc7a
Refactor run-asimov-command action to execute commands in the asimov …
transientlunatic Dec 20, 2025
0374887
Enhance conda command execution by avoiding condabin shim and adding …
transientlunatic Dec 20, 2025
a90c8ab
Add timeout input to run-asimov-command action and enhance cleanup st…
transientlunatic Dec 20, 2025
586a50a
Refactor run-asimov-command action for improved conda initialization …
transientlunatic Dec 20, 2025
4c77265
Enhance readability of conda environment and packages by dynamically …
transientlunatic Dec 20, 2025
7f83fda
Refactor run-asimov-command action to improve conda usage by ensuring…
transientlunatic Dec 20, 2025
739e2d3
Refactor run-asimov-command action to streamline conda initialization…
transientlunatic Dec 20, 2025
31499c6
Refactor run-asimov-command action to simplify variable export and im…
transientlunatic Dec 20, 2025
0a94715
Refactor run-asimov-command action to improve conda executable handli…
transientlunatic Dec 20, 2025
09f087a
Fix variable assignment syntax in run-asimov-command action for consi…
transientlunatic Dec 20, 2025
2e147e3
Attempt to radically simplify this.
transientlunatic Dec 20, 2025
140afd6
Hard-code the location of conda
transientlunatic Dec 20, 2025
f714200
More condaenv fixes
transientlunatic Dec 20, 2025
2dce255
Improve command safety by sanitizing input script in run-asimov-comma…
transientlunatic Dec 20, 2025
8743353
Apply suggestions from code review
transientlunatic Dec 20, 2025
23f2626
Workflow changes.
transientlunatic Dec 20, 2025
762af23
Merge branch 'workflow-to-actions' of github.com:transientlunatic/asi…
transientlunatic Dec 20, 2025
b0ba758
Switch to heredocs
transientlunatic Dec 20, 2025
ab88bc5
Refactor run-asimov-command action to improve command execution safet…
transientlunatic Dec 20, 2025
4a5c9e3
Update shell option in wait-for-files action for enhanced error handling
transientlunatic Dec 20, 2025
a13e4f9
More tidying of the file wait action
transientlunatic Dec 20, 2025
17adef0
Continue reworking the workflow
transientlunatic Dec 20, 2025
11e18ea
Temporarily fix the git issue.
transientlunatic Dec 20, 2025
8e45673
Further simplify watcher
transientlunatic Dec 20, 2025
d26c2c2
Final fixes to the workflow
transientlunatic Dec 20, 2025
b8b6894
Merge pull request #21 from etive-io/workflow-to-actions
transientlunatic Dec 20, 2025
276c1dd
Update result file paths in Bilby pipeline to use 'final_result' dire…
transientlunatic Dec 20, 2025
3a08405
Update results directory in Bilby pipeline to use 'final_result'
transientlunatic Dec 20, 2025
aa8db2c
Merge pull request #23 from etive-io/update-bilby-final
transientlunatic Dec 20, 2025
bc71e23
Normalize production structures in Event class and update apply_page …
transientlunatic Dec 20, 2025
b4ceda3
Update GitHub Actions workflow to support Python 3.10-3.14 and rename…
transientlunatic Dec 20, 2025
93b394b
Update workflow triggers to include v*-release and v*-preview branches
transientlunatic Dec 20, 2025
63ca867
More updates to the workflow.
transientlunatic Dec 20, 2025
070ea78
Add optional bilby install
transientlunatic Dec 20, 2025
b33f4d0
Fix situations where bilby_pipe can't be found in a dry run.
transientlunatic Dec 20, 2025
340231e
Add .gitignore file and update pyproject.toml to include bilby depend…
transientlunatic Dec 20, 2025
8a6934a
Clean up temporary test directory before running tests
transientlunatic Dec 20, 2025
cb2047d
Handle potential errors when cleaning up temporary test directory
transientlunatic Dec 20, 2025
2ec461f
Merge pull request #27 from etive-io/bug-hunt
transientlunatic Dec 20, 2025
dca1525
Refactor prior handling with pydantic validation and pipeline interfa…
Copilot Dec 23, 2025
dcfc59a
Add Python API for project creation and management (#39)
Copilot Dec 23, 2025
30094d4
Enhance HTML reports with graph-based workflow visualization, modal p…
Copilot Jan 2, 2026
6f0b3c6
Implement flexible dependency specification with property-based filte…
Copilot Jan 2, 2026
f5a0eb6
Update the PESummary interface (#29)
transientlunatic Jan 2, 2026
16490ec
Add review information display to HTML reports and fix review command…
Copilot Jan 2, 2026
e825601
Fix frames in workflow (#56)
transientlunatic Jan 3, 2026
997a0f3
Add 'UniformSourceFrame' prior to BilbyPriorInterface
transientlunatic Jan 3, 2026
0a8490a
Fix bilby priors (#58)
transientlunatic Jan 4, 2026
f8ace0d
Merge branch 'v0.7-preview' of github.com:transientlunatic/asimov int…
transientlunatic Jan 9, 2026
eaf556d
Remove calibration categories and fix hardcoded git branch assumption…
Copilot Jan 9, 2026
5b170ae
Convert PESummary to SubjectAnalysis with optional dependency support…
Copilot Jan 9, 2026
6cd6eea
Fix dependency resolution, graph visualization, and ledger persistenc…
Copilot Jan 12, 2026
e14a89f
Fix SubjectAnalysis dependency resolution bugs (#71)
transientlunatic Jan 20, 2026
2e15261
Refactor monitor loop to state machine pattern with plugin support, p…
Copilot Jan 20, 2026
1f3ae4d
Fix compatibility with older git versions by handling GitCommandError…
transientlunatic Jan 20, 2026
5f206a9
Add minimal testing pipelines for SimpleAnalysis, SubjectAnalysis, an…
Copilot Jan 22, 2026
6bd27d9
Add strategy expansion for creating multiple analyses from parameter …
Copilot Jan 22, 2026
4d22e38
Add LALInference end-to-end testing to HTCondor workflow with concurr…
Copilot Jan 22, 2026
7db9d38
Add GitHub Actions workflow for building and deploying documentation …
transientlunatic Jan 22, 2026
c99ce72
Make logging lazy and prevent log file creation for read-only command…
Copilot Jan 22, 2026
bb8f29c
Fix bilby tests (#61)
transientlunatic Jan 22, 2026
878ed27
Introduce a blueprint validator (#7)
transientlunatic Jan 22, 2026
090181e
Refactor file logging setup to ensure thread safety with a shared loc…
transientlunatic Jan 22, 2026
605f15d
Scheduler refresh (#3)
transientlunatic Jan 22, 2026
c6109a6
Allow additional plugin flexibility (#76)
transientlunatic Jan 22, 2026
e280e96
Update CHANGELOG for 0.7.0-alpha1 release with major features and imp…
transientlunatic Jan 22, 2026
b2cbe41
Update to push releases to pypi
transientlunatic Jan 22, 2026
aa8cff7
Fix init issue (#97)
transientlunatic Jan 26, 2026
2c92503
Enforce waveform minimum frequency location in v0.7 (#107)
Copilot Feb 25, 2026
526fc15
Fix the application of analyses (#103)
transientlunatic Feb 25, 2026
d6829f6
Update event apply (#115)
transientlunatic Feb 25, 2026
30bac0a
Fix ledger io (#112)
transientlunatic Feb 25, 2026
e040fa0
Add CBCFlow integration tests and update apply_via_plugin to use curr…
transientlunatic Feb 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/actions/create-submit-user/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: 'Create Submit User'
description: 'Create submituser account with sudo privileges'
runs:
using: "composite"
steps:
- name: Create submit user
shell: bash
run: |
id -u submituser >/dev/null 2>&1 || useradd -m -s /bin/bash submituser
{
echo 'Defaults:submituser !requiretty'
echo 'submituser ALL=(ALL) NOPASSWD:ALL'
} > /etc/sudoers.d/submituser
chmod 0440 /etc/sudoers.d/submituser
chown -R submituser:submituser "$GITHUB_WORKSPACE"
20 changes: 20 additions & 0 deletions .github/actions/run-asimov-command/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: 'Run Asimov Command'
description: 'Execute asimov command as submituser'
inputs:
script:
description: 'Full script to run inside the asimov env (include the asimov CLI if needed)'
required: true


runs:
using: "composite"
steps:
- name: Run asimov command
shell: bash -el {0}
run: |
su - submituser <<SUBMITUSER
set -euo pipefail
cd "$GITHUB_WORKSPACE"
CONDA_EXE=/__w/asimov/asimov/3/envs/asimov/bin/conda
$CONDA_EXE run -n asimov ${{ inputs.script }}
SUBMITUSER
60 changes: 60 additions & 0 deletions .github/actions/setup-asimov-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: 'Setup Asimov Environment'
description: 'Install Asimov and dependencies with conda'
inputs:
python-version:
description: 'Python version to use'
default: '3.10'
required: false
extra-packages:
description: 'Additional pip packages to install'
default: ''
required: false
runs:
using: "composite"
steps:
- name: Cache conda packages and pip
uses: actions/cache@v4
with:
path: |
/usr/share/miniconda/pkgs
~/.cache/pip
key: conda-${{ runner.os }}-${{ hashFiles('conda/environment.yaml', 'pyproject.toml') }}
restore-keys: |
conda-${{ runner.os }}-

- name: Set up conda environment
uses: conda-incubator/setup-miniconda@v2
with:
miniconda-version: "latest"
auto-activate-base: false
python-version: ${{ inputs.python-version }}
activate-environment: asimov
channels: conda-forge
conda-remove-defaults: "true"
use-mamba: true

- name: Cache asimov conda env
id: cache-env
uses: actions/cache@v4
with:
path: /usr/share/miniconda/envs/asimov
key: conda-env-asimov-${{ runner.os }}-py${{ inputs.python-version }}-${{ hashFiles('conda/environment.yaml', 'pyproject.toml', 'setup.py', 'setup.cfg') }}-v2
restore-keys: |
conda-env-asimov-${{ runner.os }}-py${{ inputs.python-version }}-

- name: Install dependencies & asimov
if: steps.cache-env.outputs.cache-hit != 'true'
shell: bash -el {0}
run: |
conda install -y -n asimov --file conda/environment.yaml
conda install -y -n asimov conda-build
pip install .
if [ -n "${{ inputs.extra-packages }}" ]; then
pip install ${{ inputs.extra-packages }}
fi

- name: Install extra packages (cache hit)
if: steps.cache-env.outputs.cache-hit == 'true' && inputs.extra-packages != ''
shell: bash -el {0}
run: |
pip install ${{ inputs.extra-packages }}
11 changes: 11 additions & 0 deletions .github/actions/setup-htcondor/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: 'Setup HTCondor'
description: 'Start and verify HTCondor service'
runs:
using: "composite"
steps:
- name: Start HTCondor
shell: bash
run: |
condor_master &
sleep 10
condor_status
104 changes: 104 additions & 0 deletions .github/actions/wait-for-files/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: 'Wait for Files'
description: 'Wait for specific files to appear with timeout'
inputs:
patterns:
description: 'File patterns to wait for (one per line or space-separated)'
required: true
directory:
description: 'Directory to search in (relative to working directory)'
required: true
timeout:
description: 'Timeout in seconds'
default: '600'
required: false
interval:
description: 'Check interval in seconds'
default: '30'
required: false
working-directory:
description: 'Working directory relative to GITHUB_WORKSPACE'
default: '.'
required: false
require-all:
description: 'Require all patterns to match (true) or just one (false)'
default: 'true'
required: false
show-condor-q:
description: 'Show condor_q output during wait'
default: 'true'
required: false
runs:
using: "composite"
steps:
- name: Wait for files
shell: bash -el {0}
run: |
set -euo pipefail
# Resolve inputs to concrete values in the outer shell
WORKDIR="$GITHUB_WORKSPACE/${{ inputs.working-directory }}"
DIRECTORY="${{ inputs.directory }}"
TIMEOUT="${{ inputs.timeout }}"
INTERVAL="${{ inputs.interval }}"
REQUIRE_ALL="${{ inputs.require-all }}"
SHOW_Q="${{ inputs.show-condor-q }}"
PATTERNS_INPUT='${{ inputs.patterns }}'

cd "$WORKDIR" || { echo "No such directory: $WORKDIR" >&2; exit 1; }
cat *.err || true
cat *.out || true
cat *.log || true

# Normalize patterns into one-per-line (split on spaces and newlines)
PATTERN_LINES=$(printf '%s\n' "$PATTERNS_INPUT" | tr ' \t' '\n')

# Pre-count patterns (ignore empty/comment lines)
PATTERN_COUNT=0
while IFS= read -r pattern; do
[[ -z "${pattern//[[:space:]]/}" ]] && continue
[[ "$pattern" =~ ^[[:space:]]*# ]] && continue
PATTERN_COUNT=$((PATTERN_COUNT + 1))
done <<< "$PATTERN_LINES"

ELAPSED=0
echo "Waiting for files in $DIRECTORY; patterns: $PATTERN_COUNT; timeout: $TIMEOUT; interval: $INTERVAL"

while [ "$ELAPSED" -lt "$TIMEOUT" ]; do
# Show condor queue as submituser if requested
if [ "$SHOW_Q" = "true" ]; then
su - submituser -s /bin/bash -c 'condor_q' || true
su - submituser -s /bin/bash -c 'condor_q -hold' || true
fi

FOUND_COUNT=0
while IFS= read -r pattern; do
[[ -z "${pattern//[[:space:]]/}" ]] && continue
[[ "$pattern" =~ ^[[:space:]]*# ]] && continue
COUNT=0
for f in "$DIRECTORY"/$pattern; do
[ -e "$f" ] && COUNT=$((COUNT + 1))
done
[ "$COUNT" -gt 0 ] && FOUND_COUNT=$((FOUND_COUNT + 1))
done <<< "$PATTERN_LINES"

if [ "$REQUIRE_ALL" = "true" ]; then
if [ "$FOUND_COUNT" -eq "$PATTERN_COUNT" ] && [ "$PATTERN_COUNT" -gt 0 ]; then
echo "All file patterns found!"
ls -lh "$DIRECTORY"/ || true
exit 0
fi
else
if [ "$FOUND_COUNT" -gt 0 ]; then
echo "Files found! ($FOUND_COUNT/$PATTERN_COUNT)"
ls -lh "$DIRECTORY"/ || true
exit 0
fi
fi

echo "Elapsed: ${ELAPSED}s / ${TIMEOUT}s - Files not yet present ($FOUND_COUNT/$PATTERN_COUNT patterns matched), waiting..."
sleep "$INTERVAL"
ELAPSED=$((ELAPSED + INTERVAL))
done

echo "Timeout waiting for files in $DIRECTORY"
ls -R "$DIRECTORY"/ || true
exit 1
53 changes: 53 additions & 0 deletions .github/workflows/cbcflow-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: CBCFlow Integration Tests

# These tests check the integration between asimov and cbcflow.
# They are allowed to fail (continue-on-error: true) because:
# - cbcflow is an optional external dependency
# - some failures reveal known issues to be fixed incrementally
#
# Run on the same branches as the main test suite so failures are visible.

on:
push:
branches: [ master, v*-release, v*-preview ]
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+'
pull_request:
branches: [ master, v*-release, v*-preview ]

jobs:
cbcflow-integration:
name: CBCFlow integration (Python 3.11)
runs-on: ubuntu-latest
continue-on-error: true

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install asimov
run: |
python -m pip install --upgrade pip
pip install .
pip install ".[bilby]"

- name: Install cbcflow
run: pip install cbcflow

- name: Set up git identity
run: |
git config --global user.email "test@asimov.test"
git config --global user.name "Asimov Test"
git config --global init.defaultBranch main

- name: Run CBCFlow integration tests
run: python -m unittest tests.test_cbcflow_integration -v
77 changes: 77 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Build and Deploy Documentation

on:
push:
branches:
- master
- main
pull_request:
branches:
- master
- main

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Needed for sphinx-multiversion to see all branches/tags

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[docs]"

- name: Build documentation with sphinx-multiversion
run: |
cd docs
make multi

- name: Create index redirect to master
run: |
mkdir -p docs/build/html
cat > docs/build/html/index.html << 'EOF'
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Asimov Documentation</title>
<meta http-equiv="refresh" content="0; url=./master/index.html" />
</head>
<body>
<p><a href="./master/index.html">Click here to go to the documentation.</a></p>
</body>
</html>
EOF

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/build/html

deploy:
if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main')
needs: build
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Loading
Loading