Add integration tests to new simtools-prod image#1955
Conversation
There was a problem hiding this comment.
Pull request overview
This PR enables integration testing for the simtools-prod Docker image by making the CI-integrationtests.yml workflow reusable and calling it from the build-simtools-prod.yml workflow. The implementation tests only the no_opt (non-AVX optimized) image variant, simplifies the environment configuration process, and adds support for downloading QGSjet tables that are not included in production images.
Key Changes:
- Made CI-integrationtests.yml reusable via
workflow_calltrigger with configurable container image and model versions - Added integration test execution to build-simtools-prod.yml workflow that runs after image build completes
- Simplified and refactored environment variable setup in integration tests by sourcing .env_template directly
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 9 comments.
| File | Description |
|---|---|
| docs/changes/1955.feature.md | Changelog entry documenting the new integration test capability for production images |
| docker/Dockerfile-simtools-prod | Added bzip2 package to support decompression of QGSjet tables during testing |
| .github/workflows/build-simtools-prod.yml | Added job outputs for no_opt tag, enabled PR builds, and integrated test-simtools-prod job calling CI-integrationtests.yml |
| .github/workflows/CI-integrationtests.yml | Converted workflow to support workflow_call trigger, added conditional logic for prod vs dev containers, simplified environment setup, and added QGSjet download step for prod images |
tobiaskleiner
left a comment
There was a problem hiding this comment.
Thanks @GernotMaier, few minor comments, but all good otherwise.
| description: 'Model versions to test' | ||
| required: false | ||
| type: string | ||
| default: '["7.0.0","6.0.2","5.0.0","6.0.2,6.1.1"]' |
There was a problem hiding this comment.
missing quotes for the last two?
There was a problem hiding this comment.
You mean "6.0.2,6.1.1"? This needs to be given this way, otherwise it is not passed on correctly to the tool.
| fail-fast: false | ||
| matrix: | ||
| model_version: ['7.0.0', '6.0.2', '5.0.0', '6.0.2,6.1.1'] | ||
| model_version: ${{ fromJSON(inputs.model_versions || '["7.0.0","6.0.2","5.0.0","6.0.2,6.1.1"]') }} |
There was a problem hiding this comment.
can we define envs for these defaults at the beginning? Such as:
env:
DEFAULT_CONTAINER_IMAGE: ghcr.io/gammasim/simtools-dev:latest
DEFAULT_MODEL_VERSIONS: '["7.0.0","6.0.2","5.0.0","6.1.1"]'
There was a problem hiding this comment.
I just tried it - but env variables are not recognized that this step of the workflow. Otherwise this would be nice.
| python -m build | ||
|
|
||
| integration_tests: | ||
| runs-on: ubuntu-latest |
There was a problem hiding this comment.
Should we adress the warning above?
|
|
Thanks @tobiaskleiner for the review. I fixed the conflicts with main and will merge now. |





Add integration tests to new simtools production image.
no_optimage only (as there is no functionality to request a certain AVX CPU in the CI)Check this CI workflow for a typical build and test procedure.