Skip to content

Adding Dockerfile, devcontainer, CI - #52

Merged
JamesOHeaDLS merged 18 commits into
masterfrom
dockerfile
Jun 29, 2026
Merged

Adding Dockerfile, devcontainer, CI#52
JamesOHeaDLS merged 18 commits into
masterfrom
dockerfile

Conversation

@JamesOHeaDLS

Copy link
Copy Markdown
Collaborator

This PR brings in a Dockerfile, devcontainer, and CI to allow a runtime package to be produced which can be deployed on a beamline's k8s node. It also brings this repo's build and packaging setup in line with other detector repos such as eiger-detector and jungfrau-detector.

Summary of changes:

  • Created Dockerfile and added devcontainer.yml
  • Added container.yml workflow to produce developer and runtime packages
  • Few tweaks to the top level cmake to bump the version, follow the ordering convention, and correct a typo
  • Made some updates to the codebase to fix failing CI tests:
    • Updated versions of versioneer and odin-control
    • Replaced deprecated Python 2 SafeConfigParser with Python 3 ConfigParser
    • Specified socket addresses for the FR and FP in excalibur.json, and enabled the test block

@JamesOHeaDLS JamesOHeaDLS self-assigned this May 22, 2026
@JamesOHeaDLS
JamesOHeaDLS requested review from Ohisemega and ajgdls May 22, 2026 08:06
@JamesOHeaDLS
JamesOHeaDLS marked this pull request as ready for review June 2, 2026 10:41
@ajgdls

ajgdls commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

@JamesOHeaDLS I ran this module up as a devcontainer in vscode. I could not >cmake: delete build and reconfigure, it has not been set up to understand where odin-data has been installed.

Is this expected behaviour ?

- Previoulsy vscode/settings.json contained this config but wasn't tracked by git
- Bumped minimum cmake version for presets compatibility
- Added top-level CMakeLists.txt to stop vscode asking which CMakeLists file to use
@JamesOHeaDLS

Copy link
Copy Markdown
Collaborator Author

Thanks @ajgdls No that's not expected behaviour. That was hidden from me as I had a .vscode/settings.json file which contained all the cmake config, but that file is not tracked by git!

I have now added a CMakePresets.json file to capture that info. Now when you rebuild it may ask you which preset to use. Select the only presented option 'dev'.

Comment thread CMakeLists.txt Outdated
Comment thread CMakePresets.json Outdated
@ajgdls

ajgdls commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Two really minor changes. It now builds correctly as a devcontainer on my system.

@ajgdls

ajgdls commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

@JamesOHeaDLS do you know why the C++ CI failed?

@JamesOHeaDLS

Copy link
Copy Markdown
Collaborator Author

@ajgdls - No, I've been looking into it this morning.

The CI from the previous commit worked fine. As there have been no real code changes, I'm thinking its some kind of race condition.

It does state it tried to terminate the same frameReceiver process (5827) twice.

22364 [0x7f9ca2812dc0] DEBUG Test.App null - Launching /home/runner/work/excalibur-detector/excalibur-detector/prefix/bin/frameTests --log_level=all -- (5850)
23365 [0x7f9ca2812dc0] DEBUG Test.App null - Terminating /home/runner/work/excalibur-detector/excalibur-detector/prefix/bin/frameReceiver(5827)
23365 [0x7f9ca2812dc0] DEBUG Test.App null - Terminating /home/runner/work/excalibur-detector/excalibur-detector/prefix/bin/frameProcessor(5831)
23365 [0x7f9ca2812dc0] DEBUG Test.App null - Terminating /home/runner/work/excalibur-detector/excalibur-detector/prefix/bin/frameTests --log_level=all -- (0)
23365 [0x7f9ca2812dc0] DEBUG Test.App null - Terminating /home/runner/work/excalibur-detector/excalibur-detector/prefix/bin/frameReceiver(5827)
Error: The operation was canceled.

I don't get any error running the test in podman. Didn't we see something similar with odin-data?

@ajgdls

ajgdls commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Yeah I think we have been seeing multiple failures of this type. It would definitely appear to be related to multiple instances of the C++ CI kicking off at the same time and some sort of resource conflict.

@Ohisemega

Copy link
Copy Markdown
Collaborator

Yeah I think we have been seeing multiple failures of this type. It would definitely appear to be related to multiple instances of the C++ CI kicking off at the same time and some sort of resource conflict.

Do we intend to fix the CI issue in this PR @JamesOHeaDLS
cc: @ajgdls

@Ohisemega Ohisemega left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looks good here.

@JamesOHeaDLS

Copy link
Copy Markdown
Collaborator Author

Hello, @ajgdls and @Ohisemega

I have looked into the CI failure a bit more this morning. Re-running the failed job (with no code changes) is successful. For this reason I won't fix this CI issue in this PR, and will make the merge with the code as it stands.

However, I have raised an issue against odin-data (odin-detector/odin-data#524) which I believe may address the intermittent CI failure, or at least improve the code base.

@JamesOHeaDLS
JamesOHeaDLS merged commit 099951f into master Jun 29, 2026
6 of 7 checks passed
@JamesOHeaDLS
JamesOHeaDLS deleted the dockerfile branch June 29, 2026 10:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants