Files
slsDetectorPackage/.github/workflows/run_tests.yaml
T
maliakal_dandGitHub 06770da4b3
Build on RHEL8 docker image / build (push) Successful in 6m11s
Build on RHEL9 docker image / build (push) Successful in 6m26s
Build and Deploy on local RHEL9 / build (push) Successful in 2m9s
Build and Deploy on local RHEL8 / build (push) Successful in 5m2s
Run Simulator Tests on local RHEL9 / build (push) Successful in 18m38s
Run Simulator Tests on local RHEL8 / build (push) Successful in 22m8s
Dev/fix workflow cmake cache (#1484)
* Validate restored apt packages in CI before CMake configuration

Add checks for cached apt dependencies to catch incomplete installations. A temporary Ubuntu mirror/package index mismatch caused apt installation to fail, but the failure was not detected before CMake ran.

* continue on error uncommented to see that it actually restores the previous step. The previous commit was to check the error message on failure to install the packages

* repair didnt run earlier.. checking on condition from custom message

* Remove redundant HDF5 verification step from CI. And fix broken repairs half configured dependenceies before reinstalling requested packages

* fix the simulator tests workflow for the same reason as previous commit (not failing for actual failure to restore installation from cache)

* removed redundant checks for repair as we are not repairing anymore

* use a different cache (changing version)

* changing ubuntu back to 22 instead of 24 (latest) because of 'E: Failed to fetch mirror+file:/etc/apt/apt-mirrors.txt/pool/main/c/curl/libcurl4-openssl-dev_8.5.0-2ubuntu10.9_amd64.deb 404 Not Found'

* cache at specific version

* version typo

* go back to original version number  (was changed earlier to create a new cache everytime)

* added the other yaml

* minor, but recreating new caches with v1.0 version
2026-07-07 15:17:16 +02:00

84 lines
2.5 KiB
YAML

name: Run Simulator Tests
on:
push:
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Debug
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.12
cache: 'pip'
- run: pip install pytest numpy colorama pyzmq
# using a stable action version instead of latest to create/restore cache for now
- uses: awalsh128/cache-apt-pkgs-action@v1.6.1
with:
packages: libhdf5-dev libfmt-dev
version: 1.0
# verify packages restored from cache are installed.
# This catches incomplete apt installs after cache restore.
- name: Verify apt packages
id: verify_packages
run: |
failed=""
for pkg in \
libhdf5-dev \
libfmt-dev
do
if ! dpkg -s "$pkg" >/dev/null 2>&1; then
echo "Missing: $pkg"
failed="$failed $pkg"
fi
done
if [ -n "$failed" ]; then
echo "Missing packages after cache restore: $failed. Try deleting the cache and rerunning the workflow."
exit 1
else
echo "All apt packages are installed"
fi
- name: Configure CMake
run: |
cmake -B ${{github.workspace}}/build \
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \
-DSLS_USE_TESTS=ON \
-DSLS_USE_SIMULATOR=ON \
-DSLS_USE_PYTHON=ON \
-DSLS_USE_HDF5=ON
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build -j4 --config ${{env.BUILD_TYPE}}
- name: Simulator unit tests
working-directory: ${{github.workspace}}/build/bin
run: |
python test_simulators.py --no-log-file --quiet --tests "[detectorintegration]~[disable_check_data_file]"
#remove --quiet to see more prints from simulator, receiver and tests
python test_frame_synchronizer.py
- name: Python unit tests with simulators
working-directory: ${{github.workspace}}/build/bin
run: |
python -m pytest -m detectorintegration ${{github.workspace}}/python/tests --detector-integration
python -m pytest ${{github.workspace}}/python/tests
- name: C++ unit tests
working-directory: ${{github.workspace}}/build
run: ctest -C ${{env.BUILD_TYPE}} -j1 --rerun-failed --output-on-failure