Skip to content

Comments

Add a pixi toml url to the build parameter arguments (ported from #839)#841

Open
knmcguire wants to merge 19 commits intomasterfrom
knmcguire/windows-ci-parameters
Open

Add a pixi toml url to the build parameter arguments (ported from #839)#841
knmcguire wants to merge 19 commits intomasterfrom
knmcguire/windows-ci-parameters

Conversation

@knmcguire
Copy link
Collaborator

See the description of #839

Ported to be a branch in ROS/ci so that we could more easily deploy it on a test ci job to test it out according to @claraberendsen

@knmcguire
Copy link
Collaborator Author

The idea is that we will try to deploy this particular branch on one of the test_ci jobs just to try it out since there is no CI to this PR. So we can wait with merging this PR after we have looked and settled that

@knmcguire knmcguire moved this from Todo to In Progress in Windows 11 Work! Feb 9, 2026
@cottsay cottsay force-pushed the knmcguire/windows-ci-parameters branch from 55973ff to 3d20cf7 Compare February 9, 2026 14:19
@cottsay
Copy link
Member

cottsay commented Feb 9, 2026

@knmcguire, I rebased this to make it easier to deploy to the test_* jobs, FYI.

@cottsay
Copy link
Member

cottsay commented Feb 9, 2026

Deployed here: https://ci.ros2.org/job/test_ci_windows/

@knmcguire
Copy link
Collaborator Author

Thanks! And good we tested it out here because it indeed fails! I will look into it 😄

@knmcguire knmcguire marked this pull request as draft February 9, 2026 16:39
@knmcguire
Copy link
Collaborator Author

Still testing things out in the test ci! the latest github outages delayed that a bit, so as soon as I confirm this working I'll convert it back to 'ready for review'

@knmcguire
Copy link
Collaborator Author

knmcguire commented Feb 13, 2026

Test with empty CI_PIXI_TOML_URL: Build Status

Test with msvc 2022 and with an alternative pixi.toml file (for the opencv fix) : Build Status

I don't think it is setting the pixi_toml_url correctly... so still some work to do here

@claraberendsen
Copy link
Contributor

@knmcguire I think what is missing is to correctly set the new variable as DOCKER_BUILD_ARGS

See the reference

if [ -n "${CI_ROS_DISTRO+x}" ]; then
export DOCKER_BUILD_ARGS="${DOCKER_BUILD_ARGS} --build-arg ROS_DISTRO=${CI_ROS_DISTRO}"
fi

@knmcguire
Copy link
Collaborator Author

Ah yes, but that is the part for the Linux docker build. For the windows docker CI_ROS_DISTRO was part of the BUILD_ARGS

set BUILD_ARGS=--build-arg WINDOWS_RELEASE_VERSION=%RELEASE_VERSION% --build-arg ROS_DISTRO=%CI_ROS_DISTRO%

Which I didn't want to add the pixi_toml_url by standard hence I added it as an conditional here :

if "!CI_PIXI_TOML_URL!" NEQ "" (
  set "BUILD_ARGS=!BUILD_ARGS! --build-arg PIXI_TOML_URL=%CI_PIXI_TOML_URL%"
)

I'll try to dig it in it a bit further

@knmcguire
Copy link
Collaborator Author

found the culprit! I was adding another argument to the build arguments... after the docker image has already been build.

We can redeploy this to test_ci_windows after this job has finished (which is for something else):
Build Status

@knmcguire
Copy link
Collaborator Author

@cottsay or @claraberendsen could you deploy this job again to test_ci_windows? It should work this time

@cottsay
Copy link
Member

cottsay commented Feb 16, 2026

could you deploy this job again to test_ci_windows?

Done.

@knmcguire
Copy link
Collaborator Author

Running again! I'm convieniently combining it with testing #845

see Build Status

@knmcguire
Copy link
Collaborator Author

Getting there... forgot to change the main ci branch so it didn't take the new dockerfile from this PR

Build Status

@knmcguire knmcguire marked this pull request as ready for review February 17, 2026 09:08
@knmcguire
Copy link
Collaborator Author

knmcguire commented Feb 17, 2026

And it builds with the new pixi.toml file! Before it would fail on MSVC 2022 because of the opencv version, but now we only see the nice 1800+ warnings, but that only confirms that it works.

Also in the log you see that pixi has updated opencv to 4.10 as it should:

21:46:09 opencv                                4.10.0                 qt5_py312h7cc77ad_503  26.1 KiB    conda  opencv

I'll redo the last commit as that inconveniently indicates a very big change, but otherwise ready for review, merge and deploy!

@knmcguire knmcguire force-pushed the knmcguire/windows-ci-parameters branch from 0692072 to 35ed69e Compare February 17, 2026 10:16
@knmcguire knmcguire force-pushed the knmcguire/windows-ci-parameters branch from 35ed69e to dda79a9 Compare February 17, 2026 10:24
@knmcguire
Copy link
Collaborator Author

The force push was necessary to sign all my commits and also apply the same fix the packaging job

Just a question though: Do we want to enable this for the ci_launcher as well?

@claraberendsen
Copy link
Contributor

Do we want to enable this for the ci_launcher as well?

I would say that we probably want that since usually ROS devs use that to launch ci.

@claraberendsen
Copy link
Contributor

I think it would be a nice to have to validate the url being passed to be https and a normal url format. This as to prevent possible man-in-the-middle attacks with http and have some sanitation of the user input.

@knmcguire
Copy link
Collaborator Author

I've added an url check in the docker file.

Also I had to introduce the snippet parameters back in, but avoid using default parameters here.

These are again quite some changes... we should double check with a test deploy? perhaps also with a test_ci_launcher as well (but then we might also need all the test_ci_linux, test_ci_linux-aarch64, test_ci_linux-rhel and test_ci_windows as well)

@claraberendsen
Copy link
Contributor

claraberendsen commented Feb 20, 2026

Changes deployed.
Testing a run with a custom pixi.toml from test_ci_launcher:

Windows:Build Status
Linux:Build Status

I aborted the other two jobs since we want to see that there is no failure if we don't deploy to the linux jobs the changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

3 participants