Skip to content

Conversation

@GernotMaier
Copy link
Contributor

@GernotMaier GernotMaier commented Dec 17, 2025

Add a workflow for the building of simtools production images based in CORSIKA / sim_telarray from gitlab.

Simplified the package naming:

  • CORSIKA image is now called e.g. ghcr.io/gammasim/corsika7:0.26.0-78010-avx512f
  • sim_telarray image is now called e.g. ghcr.io/gammasim/sim_telarray:0.26.0-<sim_telarray version>
  • simtools-dev image is now called e.g. ghcr.io/gammasim/simtools-dev:latest (save to use the latest tag here)
  • simtools-prod image is now called e.g. ghcr.io/gammasim/simtools-prod:0.26.0-corsika<corsika version>-<avx flag>-simtel<sim_telarray version>

The addition of integration tests after the building step for the production images is provided in PR #1955.

The legacy building scripts have been renamed including now legacy in their file name.

Additional fixes / changes:

  • a bit of a cleanup / sync of variable names across the different workflows (e.g. not using sometimes avx_flag and sometimes avx_instruction. Tried to sync as much possible in the workflows to simplify maintenance.
  • bug fix in setting version for corsika configuration when cloning the repo from gitlab
  • change naming and tagging of sim-telarray images: the sim_telarray version now appears in the image tag, and not in the package name.

@GernotMaier GernotMaier self-assigned this Dec 17, 2025
@GernotMaier GernotMaier linked an issue Dec 17, 2025 that may be closed by this pull request
@GernotMaier GernotMaier marked this pull request as ready for review December 18, 2025 08:41
Copilot AI review requested due to automatic review settings December 18, 2025 08:41
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new workflow for building simtools production images and simplifies the naming scheme across all Docker images. The key changes include standardizing variable names (from avx_instruction to avx_flag), fixing a bug in CORSIKA configuration version handling, and updating image naming to be more consistent and traceable.

  • Adds new build-simtools-prod.yml workflow for production image builds
  • Standardizes variable naming across workflows and Dockerfiles (avx_flag instead of avx_instruction)
  • Fixes bug where CORSIKA configuration was using wrong variable for git branch selection
  • Simplifies Docker image naming scheme and tagging structure

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
docs/changes/1954.feature.md Documents new production image building workflow
docs/changes/1954.api.md Documents API changes for Docker image naming
docker/Dockerfile-simtools-prod Updates production Dockerfile with standardized variable names and dependency changes
docker/Dockerfile-simtools-legacy Standardizes variable naming (SIMTOOLS_BRANCH/SIMTOOLS_REPO)
docker/Dockerfile-simtools-dev Updates to use new image naming scheme and removes unused SIMTOOLS_REQUIREMENT arg
docker/Dockerfile-simtel_array Adds CTA_PROD6 define to EXTRA_DEFINES
docker/Dockerfile-corsika7 Fixes bug using correct CORSIKA_CONFIG_VERSION variable
.github/workflows/build-simtools-prod.yml New workflow for building production images with multiple AVX variants
.github/workflows/build-simtools-legacy.yml Standardizes variable names and marks as legacy
.github/workflows/build-simtools-dev.yml Simplifies workflow and standardizes variable names
.github/workflows/build-sim_telarray.yml Updates tagging scheme and removes production matrix
.github/workflows/build-corsika7.yml Standardizes variable names and adds CORSIKA_CONFIG_VERSION build arg
.github/workflows/build-corsika-simtel-legacy.yml Standardizes variable names and marks as legacy

@orelgueta
Copy link
Contributor

Before I start the actual review and forget this question, why is the simtools version included in the CORSIKA/sim_telarray images?

ghcr.io/gammasim/corsika7:0.26.0-78010-avx512f
ghcr.io/gammasim/sim_telarray:0.26.0-<sim_telarray version>

Is it because you expect the compilation process to be heavily dependent on the simtools version?

Copy link
Contributor

@orelgueta orelgueta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor questions, nothing critical. Thanks!

@GernotMaier
Copy link
Contributor Author

Before I start the actual review and forget this question, why is the simtools version included in the CORSIKA/sim_telarray images?

ghcr.io/gammasim/corsika7:0.26.0-78010-avx512f ghcr.io/gammasim/sim_telarray:0.26.0-<sim_telarray version>

Is it because you expect the compilation process to be heavily dependent on the simtools version?

Exactly - docker files, etc and build scripts are simtools dependent.

@ctao-sonarqube
Copy link

ctao-sonarqube bot commented Jan 5, 2026

Quality Gate passed Quality Gate passed

Issues
0 New issues
0 Fixed issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarQube

@GernotMaier GernotMaier merged commit 85a4435 into main Jan 5, 2026
41 checks passed
@GernotMaier GernotMaier deleted the image-building-prod branch January 5, 2026 10:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docker files and workflow for simtools production images

3 participants