Skip to content

Add tensor co-location qualification to modal CI #38

Add tensor co-location qualification to modal CI

Add tensor co-location qualification to modal CI #38

name: Cosmology modal known-truth qualification
on:
push:
branches:
- dark-sector-stability-architecture
paths:
- 'dark_sector_architecture/qualification/modal_tensor.py'
- 'dark_sector_architecture/qualification/test_modal_tensor_known_truth.py'
- 'dark_sector_architecture/qualification/run_modal_known_truth_suite.py'
- 'dark_sector_architecture/qualification/weak_field_tensors.py'
- 'dark_sector_architecture/qualification/test_weak_field_tensors.py'
- 'dark_sector_architecture/qualification/run_weak_field_known_truth_suite.py'
- 'dark_sector_architecture/qualification/latfield_hdf5.py'
- 'dark_sector_architecture/qualification/test_latfield_hdf5.py'
- 'dark_sector_architecture/qualification/extract_gevolution_modal_pilot.py'
- 'dark_sector_architecture/qualification/test_extract_gevolution_modal_pilot.py'
- 'dark_sector_architecture/qualification/modal_convergence.py'
- 'dark_sector_architecture/qualification/test_modal_convergence.py'
- 'dark_sector_architecture/qualification/run_modal_extraction_convergence.py'
- 'dark_sector_architecture/qualification/test_modal_extraction_convergence.py'
- 'dark_sector_architecture/qualification/fourier_resolution.py'
- 'dark_sector_architecture/qualification/test_fourier_resolution.py'
- 'dark_sector_architecture/qualification/run_qr2_resolution_pair.py'
- 'dark_sector_architecture/qualification/test_qr2_resolution_pair.py'
- 'dark_sector_architecture/qualification/run_scalar_weyl_slip_probe.py'
- 'dark_sector_architecture/qualification/test_scalar_weyl_slip_probe.py'
- 'dark_sector_architecture/qualification/run_fixed_band_convergence.py'
- 'dark_sector_architecture/qualification/test_fixed_band_convergence.py'
- 'dark_sector_architecture/qualification/electric_weyl.py'
- 'dark_sector_architecture/qualification/test_electric_weyl.py'
- 'dark_sector_architecture/qualification/run_electric_weyl_known_truth_suite.py'
- 'dark_sector_architecture/qualification/temporal_derivatives.py'
- 'dark_sector_architecture/qualification/test_temporal_derivatives.py'
- 'dark_sector_architecture/qualification/run_temporal_derivative_known_truth_suite.py'
- 'dark_sector_architecture/qualification/run_electric_weyl_temporal_pilot.py'
- 'dark_sector_architecture/qualification/latfield2_native_operators.py'
- 'dark_sector_architecture/qualification/test_latfield2_native_operators.py'
- 'dark_sector_architecture/qualification/modal_relational.py'
- 'dark_sector_architecture/qualification/test_modal_relational.py'
- 'dark_sector_architecture/qualification/run_modal_relational_known_truth_suite.py'
- 'dark_sector_architecture/qualification/gevolution_velocity_operators.py'
- 'dark_sector_architecture/qualification/test_gevolution_velocity_operators.py'
- 'dark_sector_architecture/qualification/run_gevolution_velocity_operator_known_truth_suite.py'
- 'dark_sector_architecture/qualification/gevolution_particle_lineage.py'
- 'dark_sector_architecture/qualification/tensor_colocation.py'
- 'dark_sector_architecture/qualification/test_tensor_colocation.py'
- 'dark_sector_architecture/qualification/run_tensor_colocation_known_truth_suite.py'
- 'dark_sector_architecture/qualification/test_gevolution_particle_lineage.py'
- 'dark_sector_architecture/qualification/run_latfield2_native_operator_known_truth_suite.py'
- 'dark_sector_architecture/qualification/test_electric_weyl_temporal_pilot.py'
- '.github/workflows/cosmology-modal-known-truth.yml'
workflow_dispatch:
permissions:
contents: write
jobs:
modal-known-truth:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
ref: dark-sector-stability-architecture
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install qualification dependencies
run: |
python -m pip install --upgrade pip
python -m pip install numpy pytest h5py
- name: Run complete known-truth and integration tests
run: |
python -m pytest -q \
dark_sector_architecture/qualification/test_modal_tensor_known_truth.py \
dark_sector_architecture/qualification/test_weak_field_tensors.py \
dark_sector_architecture/qualification/test_latfield_hdf5.py \
dark_sector_architecture/qualification/test_extract_gevolution_modal_pilot.py \
dark_sector_architecture/qualification/test_modal_convergence.py \
dark_sector_architecture/qualification/test_modal_extraction_convergence.py \
dark_sector_architecture/qualification/test_fourier_resolution.py \
dark_sector_architecture/qualification/test_qr2_resolution_pair.py \
dark_sector_architecture/qualification/test_scalar_weyl_slip_probe.py \
dark_sector_architecture/qualification/test_fixed_band_convergence.py \
dark_sector_architecture/qualification/test_electric_weyl.py \
dark_sector_architecture/qualification/test_temporal_derivatives.py \
dark_sector_architecture/qualification/test_electric_weyl_temporal_pilot.py \
dark_sector_architecture/qualification/test_latfield2_native_operators.py \
dark_sector_architecture/qualification/test_modal_relational.py \
dark_sector_architecture/qualification/test_gevolution_velocity_operators.py \
dark_sector_architecture/qualification/test_gevolution_particle_lineage.py \
dark_sector_architecture/qualification/test_tensor_colocation.py
- name: Generate machine-readable qualification reports
run: |
python dark_sector_architecture/qualification/run_modal_known_truth_suite.py \
--output dark_sector_architecture/qualification/results/modal_known_truth_report.json
python dark_sector_architecture/qualification/run_weak_field_known_truth_suite.py \
--output dark_sector_architecture/qualification/results/weak_field_known_truth_report.json
python dark_sector_architecture/qualification/run_electric_weyl_known_truth_suite.py \
--output dark_sector_architecture/qualification/results/electric_weyl_known_truth_report.json
python dark_sector_architecture/qualification/run_temporal_derivative_known_truth_suite.py \
--output dark_sector_architecture/qualification/results/temporal_derivative_known_truth_report.json
python dark_sector_architecture/qualification/run_latfield2_native_operator_known_truth_suite.py \
--output dark_sector_architecture/qualification/results/latfield2_native_operator_known_truth_report.json
python dark_sector_architecture/qualification/run_modal_relational_known_truth_suite.py \
--output dark_sector_architecture/qualification/results/modal_relational_known_truth_report.json
python dark_sector_architecture/qualification/run_gevolution_velocity_operator_known_truth_suite.py \
--output dark_sector_architecture/qualification/results/gevolution_velocity_operator_known_truth_report.json
python dark_sector_architecture/qualification/run_tensor_colocation_known_truth_suite.py \
--output dark_sector_architecture/qualification/results/tensor_colocation_known_truth_report.json
- name: Upload qualification reports
uses: actions/upload-artifact@v4
with:
name: cosmology-modal-known-truth-reports
path: |
dark_sector_architecture/qualification/results/modal_known_truth_report.json
dark_sector_architecture/qualification/results/weak_field_known_truth_report.json
dark_sector_architecture/qualification/results/electric_weyl_known_truth_report.json
dark_sector_architecture/qualification/results/temporal_derivative_known_truth_report.json
dark_sector_architecture/qualification/results/latfield2_native_operator_known_truth_report.json
dark_sector_architecture/qualification/results/modal_relational_known_truth_report.json
dark_sector_architecture/qualification/results/gevolution_velocity_operator_known_truth_report.json \
dark_sector_architecture/qualification/results/tensor_colocation_known_truth_report.json
dark_sector_architecture/qualification/results/tensor_colocation_known_truth_report.json
if-no-files-found: error
- name: Persist qualification reports to branch
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add \
dark_sector_architecture/qualification/results/modal_known_truth_report.json \
dark_sector_architecture/qualification/results/weak_field_known_truth_report.json \
dark_sector_architecture/qualification/results/electric_weyl_known_truth_report.json \
dark_sector_architecture/qualification/results/temporal_derivative_known_truth_report.json \
dark_sector_architecture/qualification/results/latfield2_native_operator_known_truth_report.json \
dark_sector_architecture/qualification/results/modal_relational_known_truth_report.json \
dark_sector_architecture/qualification/results/gevolution_velocity_operator_known_truth_report.json
if git diff --cached --quiet; then
echo "Qualification reports unchanged."
exit 0
fi
git commit -m "Refresh modal qualification reports"
git fetch origin dark-sector-stability-architecture
git rebase origin/dark-sector-stability-architecture
git push origin HEAD:dark-sector-stability-architecture