mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-07-19 15:22:53 +02:00
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
* 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
84 lines
2.5 KiB
YAML
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
|