From b8eb50edbe3caecd9d322bd1ab9e533cdc31e049 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 12:38:25 +0100 Subject: [PATCH 01/15] Remove ROS_distro from dockerfile since that already exist --- windows_docker_resources/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/windows_docker_resources/Dockerfile b/windows_docker_resources/Dockerfile index ea09b934..1258e31f 100644 --- a/windows_docker_resources/Dockerfile +++ b/windows_docker_resources/Dockerfile @@ -48,7 +48,6 @@ RUN powershell -noexit "$bindir = Join-Path $Env:USERPROFILE\.pixi 'bin' ; $path RUN echo "@today_str" # Install dependencies via pixi -ARG ROS_DISTRO=rolling WORKDIR C:\pixi_ws RUN powershell -noexit irm https://raw.githubusercontent.com/ros2/ros2/refs/heads/%ROS_DISTRO%/pixi.toml -OutFile pixi.toml RUN pixi --color never --no-progress -q install From eb668bdd0e010eedc838dd5b3d2b65796971a529 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 13:23:54 +0100 Subject: [PATCH 02/15] add pixi toml url to create jenkin jobs --- create_jenkins_job.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/create_jenkins_job.py b/create_jenkins_job.py index 062288b8..d1c1ae4a 100755 --- a/create_jenkins_job.py +++ b/create_jenkins_job.py @@ -40,6 +40,7 @@ sys.exit("Could not import symbol from ros_buildfarm, please update ros_buildfarm.") DEFAULT_REPOS_URL = 'https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos' +DEFAULT_PIXI_TOML_URL = 'https://raw.githubusercontent.com/ros2/ros2//rolling/pixi.toml' DEFAULT_MAIL_RECIPIENTS = 'ros2-buildfarm@googlegroups.com' PERIODIC_JOB_SPEC = '0 4 * * *' @@ -107,6 +108,7 @@ def main(argv=None): 'ci_scripts_repository': args.ci_scripts_repository, 'ci_scripts_default_branch': args.ci_scripts_default_branch, 'default_repos_url': DEFAULT_REPOS_URL, + 'default_pixi_toml_url': DEFAULT_PIXI_TOML_URL, 'supplemental_repos_url': '', 'time_trigger_spec': '', 'mailer_recipients': '', @@ -446,6 +448,7 @@ def create_job(os_name, job_name, template_file, additional_dict): create_job(os_name, 'nightly_' + os_name + '_humble_coverage', 'ci_job.xml.em', { 'cmake_build_type': 'Debug', 'default_repos_url': 'https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos', + 'default_pixi_toml_url': 'https://raw.githubusercontent.com/ros2/ros2/humble/pixi.toml', 'disabled': True, 'enable_coverage_default': 'true', 'time_trigger_spec': PERIODIC_JOB_SPEC, @@ -461,6 +464,7 @@ def create_job(os_name, job_name, template_file, additional_dict): create_job(os_name, 'nightly_' + os_name + '_jazzy_coverage', 'ci_job.xml.em', { 'cmake_build_type': 'Debug', 'default_repos_url': 'https://raw.githubusercontent.com/ros2/ros2/jazzy/ros2.repos', + 'default_pixi_toml_url': 'https://raw.githubusercontent.com/ros2/ros2/jazzy/pixi.toml', 'disabled': True, 'enable_coverage_default': 'true', 'time_trigger_spec': PERIODIC_JOB_SPEC, @@ -476,6 +480,7 @@ def create_job(os_name, job_name, template_file, additional_dict): create_job(os_name, 'nightly_' + os_name + '_kilted_coverage', 'ci_job.xml.em', { 'cmake_build_type': 'Debug', 'default_repos_url': 'https://raw.githubusercontent.com/ros2/ros2/kilted/ros2.repos', + 'default_pixi_toml_url': 'https://raw.githubusercontent.com/ros2/ros2/kilted/pixi.toml', 'disabled': True, 'enable_coverage_default': 'true', 'time_trigger_spec': PERIODIC_JOB_SPEC, From 53183d5083c530c39badf3bb68443e25dc2f22a9 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 13:32:11 +0100 Subject: [PATCH 03/15] adding default_pixi_toml_url to templates --- job_templates/ci_job.xml.em | 1 + job_templates/ci_launcher_job.xml.em | 1 + job_templates/packaging_job.xml.em | 1 + 3 files changed, 3 insertions(+) diff --git a/job_templates/ci_job.xml.em b/job_templates/ci_job.xml.em index cb515835..aff0dcc5 100644 --- a/job_templates/ci_job.xml.em +++ b/job_templates/ci_job.xml.em @@ -26,6 +26,7 @@ 'property_parameter-definition', ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, + default_pixi_toml_url=default_pixi_toml_url, supplemental_repos_url=supplemental_repos_url, ignore_rmw_default=ignore_rmw_default, use_connext_debs_default=use_connext_debs_default, diff --git a/job_templates/ci_launcher_job.xml.em b/job_templates/ci_launcher_job.xml.em index 479541f4..0e939260 100644 --- a/job_templates/ci_launcher_job.xml.em +++ b/job_templates/ci_launcher_job.xml.em @@ -25,6 +25,7 @@ 'property_parameter-definition', ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, + default_pixi_toml_url=default_pixi_toml_url, supplemental_repos_url=supplemental_repos_url, ignore_rmw_default=ignore_rmw_default, use_connext_debs_default=use_connext_debs_default, diff --git a/job_templates/packaging_job.xml.em b/job_templates/packaging_job.xml.em index e61f0581..19bd51f7 100644 --- a/job_templates/packaging_job.xml.em +++ b/job_templates/packaging_job.xml.em @@ -28,6 +28,7 @@ 'property_parameter-definition_common', ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, + default_pixi_toml_url=default_pixi_toml_url, supplemental_repos_url=supplemental_repos_url, ubuntu_distro=ubuntu_distro, el_release=el_release, From 13e75c9b5dad13399e0572d6eb257cadfea1ae2b Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 13:39:18 +0100 Subject: [PATCH 04/15] Add pixi urldefinitions to template Generated-by: Claude Code Opus-4.5 (2025/11/01 release) --- job_templates/snippet/property_parameter-definition.xml.em | 1 + .../snippet/property_parameter-definition_common.xml.em | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/job_templates/snippet/property_parameter-definition.xml.em b/job_templates/snippet/property_parameter-definition.xml.em index 2be1b77b..23df4e73 100644 --- a/job_templates/snippet/property_parameter-definition.xml.em +++ b/job_templates/snippet/property_parameter-definition.xml.em @@ -4,6 +4,7 @@ 'property_parameter-definition_common', ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, + default_pixi_toml_url=default_pixi_toml_url, supplemental_repos_url=supplemental_repos_url, ubuntu_distro=ubuntu_distro, el_release=el_release, diff --git a/job_templates/snippet/property_parameter-definition_common.xml.em b/job_templates/snippet/property_parameter-definition_common.xml.em index 8e0c9367..7b117ba4 100644 --- a/job_templates/snippet/property_parameter-definition_common.xml.em +++ b/job_templates/snippet/property_parameter-definition_common.xml.em @@ -32,6 +32,13 @@ Use this instead of the Custom .repos file if you want to add to the default rep @supplemental_repos_url false + + CI_PIXI_TOML_URL + Custom pixi.toml file URL to use instead of the default (@default_pixi_toml_url). +The pixi.toml file defines the Pixi environment configuration for the build. + @default_pixi_toml_url + false + CI_COLCON_BRANCH Use a specific branch of the colcon repositories. From d3dbe5eda9f27558da8053af280b863fecfa2c61 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 13:55:04 +0100 Subject: [PATCH 05/15] add --pixi-toml-url --- job_templates/packaging_job.xml.em | 4 ++++ ros2_batch_job/__main__.py | 3 +++ 2 files changed, 7 insertions(+) diff --git a/job_templates/packaging_job.xml.em b/job_templates/packaging_job.xml.em index 19bd51f7..baa82657 100644 --- a/job_templates/packaging_job.xml.em +++ b/job_templates/packaging_job.xml.em @@ -276,6 +276,10 @@ if "!CI_ROS2_REPOS_URL!" EQU "" ( set "CI_ROS2_REPOS_URL=@default_repos_url" ) set "CI_ARGS=!CI_ARGS! --repo-file-url !CI_ROS2_REPOS_URL!" +if "!CI_PIXI_TOML_URL!" EQU "" ( + set "CI_PIXI_TOML_URL=@default_pixi_toml_url" +) +set "CI_ARGS=!CI_ARGS! --pixi-toml-url !CI_PIXI_TOML_URL!" if "!CI_ISOLATED!" == "true" ( set "CI_ARGS=!CI_ARGS! --isolated" ) diff --git a/ros2_batch_job/__main__.py b/ros2_batch_job/__main__.py index f95eeb1f..3c33f561 100644 --- a/ros2_batch_job/__main__.py +++ b/ros2_batch_job/__main__.py @@ -135,6 +135,9 @@ def __call__(self, parser, namespace, values, option_string=None): parser.add_argument( '--supplemental-repo-file-url', default=None, help="url of a .repos file to fetch and merge with the ros2.repos file") + parser.add_argument( + '--pixi-toml-url', default=None, + help="url of a pixi.toml file to fetch and use as the build environment (only used for Windows)") parser.add_argument( '--test-branch', default=None, help="branch to attempt to checkout before doing batch job") From e06d20a8af8a63c860f6cddb8c216529c0cec5a0 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 14:01:22 +0100 Subject: [PATCH 06/15] add pixi-toml-url to ci_job template --- job_templates/ci_job.xml.em | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/job_templates/ci_job.xml.em b/job_templates/ci_job.xml.em index aff0dcc5..08f53d01 100644 --- a/job_templates/ci_job.xml.em +++ b/job_templates/ci_job.xml.em @@ -286,6 +286,10 @@ set "CI_ARGS=!CI_ARGS! --repo-file-url !CI_ROS2_REPOS_URL!" if "!CI_ROS2_SUPPLEMENTAL_REPOS_URL!" NEQ "" ( set "CI_ARGS=!CI_ARGS! --supplemental-repo-file-url !CI_ROS2_SUPPLEMENTAL_REPOS_URL!" ) +if "!CI_PIXI_TOML_URL!" EQU "" ( + set "CI_PIXI_TOML_URL=@default_pixi_toml_url" +) +set "CI_ARGS=!CI_ARGS! --pixi-toml-url !CI_PIXI_TOML_URL!" if "!CI_ISOLATED!" == "true" ( set "CI_ARGS=!CI_ARGS! --isolated" ) From 1e3743f5626d33cf546b0bffb0262e7a9189ede6 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 14:02:30 +0100 Subject: [PATCH 07/15] change order of variable and add more explanation --- job_templates/ci_launcher_job.xml.em | 2 +- job_templates/packaging_job.xml.em | 2 +- job_templates/snippet/property_parameter-definition.xml.em | 2 +- .../snippet/property_parameter-definition_common.xml.em | 4 +++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/job_templates/ci_launcher_job.xml.em b/job_templates/ci_launcher_job.xml.em index 0e939260..4d992493 100644 --- a/job_templates/ci_launcher_job.xml.em +++ b/job_templates/ci_launcher_job.xml.em @@ -25,8 +25,8 @@ 'property_parameter-definition', ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, - default_pixi_toml_url=default_pixi_toml_url, supplemental_repos_url=supplemental_repos_url, + default_pixi_toml_url=default_pixi_toml_url, ignore_rmw_default=ignore_rmw_default, use_connext_debs_default=use_connext_debs_default, use_isolated_default=use_isolated_default, diff --git a/job_templates/packaging_job.xml.em b/job_templates/packaging_job.xml.em index baa82657..70cce403 100644 --- a/job_templates/packaging_job.xml.em +++ b/job_templates/packaging_job.xml.em @@ -28,8 +28,8 @@ 'property_parameter-definition_common', ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, - default_pixi_toml_url=default_pixi_toml_url, supplemental_repos_url=supplemental_repos_url, + default_pixi_toml_url=default_pixi_toml_url, ubuntu_distro=ubuntu_distro, el_release=el_release, ros_distro=ros_distro, diff --git a/job_templates/snippet/property_parameter-definition.xml.em b/job_templates/snippet/property_parameter-definition.xml.em index 23df4e73..78f343a2 100644 --- a/job_templates/snippet/property_parameter-definition.xml.em +++ b/job_templates/snippet/property_parameter-definition.xml.em @@ -4,8 +4,8 @@ 'property_parameter-definition_common', ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, - default_pixi_toml_url=default_pixi_toml_url, supplemental_repos_url=supplemental_repos_url, + default_pixi_toml_url=default_pixi_toml_url, ubuntu_distro=ubuntu_distro, el_release=el_release, ros_distro=ros_distro, diff --git a/job_templates/snippet/property_parameter-definition_common.xml.em b/job_templates/snippet/property_parameter-definition_common.xml.em index 7b117ba4..1b03cc9a 100644 --- a/job_templates/snippet/property_parameter-definition_common.xml.em +++ b/job_templates/snippet/property_parameter-definition_common.xml.em @@ -34,7 +34,9 @@ Use this instead of the Custom .repos file if you want to add to the default rep CI_PIXI_TOML_URL - Custom pixi.toml file URL to use instead of the default (@default_pixi_toml_url). + Custom pixi.toml file URL to use instead of the default pixi.toml file. +For example, copy the content of pixi.toml to use instead of the default (@default_pixi_toml_url). Then pass the raw URL here. + (@default_pixi_toml_url). The pixi.toml file defines the Pixi environment configuration for the build. @default_pixi_toml_url false From 52a7eb433c4e50804249974203b99d1f47398e15 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 14:08:32 +0100 Subject: [PATCH 08/15] add new pixi url parameter in summary description --- job_templates/ci_job.xml.em | 1 + job_templates/packaging_job.xml.em | 1 + 2 files changed, 2 insertions(+) diff --git a/job_templates/ci_job.xml.em b/job_templates/ci_job.xml.em index 08f53d01..8c8b3333 100644 --- a/job_templates/ci_job.xml.em +++ b/job_templates/ci_job.xml.em @@ -99,6 +99,7 @@ use_fastrtps_dynamic: ${build.buildVariableResolver.resolve('CI_USE_FASTRTPS_DYN ci_branch: ${build.buildVariableResolver.resolve('CI_SCRIPTS_BRANCH')},
repos_url: ${build.buildVariableResolver.resolve('CI_ROS2_REPOS_URL')},
supplemental_repos_url: ${build.buildVariableResolver.resolve('CI_ROS2_SUPPLEMENTAL_REPOS_URL')},
+pixi_toml_url: ${build.buildVariableResolver.resolve('CI_PIXI_TOML_URL')},
colcon_branch: ${build.buildVariableResolver.resolve('CI_COLCON_BRANCH')},
use_whitespace: ${build.buildVariableResolver.resolve('CI_USE_WHITESPACE_IN_PATHS')},
isolated: ${build.buildVariableResolver.resolve('CI_ISOLATED')},
diff --git a/job_templates/packaging_job.xml.em b/job_templates/packaging_job.xml.em index 70cce403..5a88df14 100644 --- a/job_templates/packaging_job.xml.em +++ b/job_templates/packaging_job.xml.em @@ -108,6 +108,7 @@ ros_distro: ${build.buildVariableResolver.resolve('CI_ROS_DISTRO')},
branch: ${build.buildVariableResolver.resolve('CI_BRANCH_TO_TEST')},
ci_branch: ${build.buildVariableResolver.resolve('CI_SCRIPTS_BRANCH')},
repos_url: ${build.buildVariableResolver.resolve('CI_ROS2_REPOS_URL')},
+pixi_toml_url: ${build.buildVariableResolver.resolve('CI_PIXI_TOML_URL')},
use_connextdds: ${build.buildVariableResolver.resolve('CI_USE_CONNEXTDDS')},
use_connext_debs: ${build.buildVariableResolver.resolve('CI_USE_CONNEXT_DEBS')},
use_cyclonedds: ${build.buildVariableResolver.resolve('CI_USE_CYCLONEDDS')},
From ae96dbd65e2d833824cdafb6d35f9b80a40f5b32 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 14:38:56 +0100 Subject: [PATCH 09/15] Add pixi toml url to win docker file --- windows_docker_resources/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/windows_docker_resources/Dockerfile b/windows_docker_resources/Dockerfile index 1258e31f..1388424e 100644 --- a/windows_docker_resources/Dockerfile +++ b/windows_docker_resources/Dockerfile @@ -18,6 +18,10 @@ ARG WINDOWS_RELEASE_VERSION=$WINDOWS_RELEASE_ID # Use --isolation=process if you need to build in a mounted volume FROM mcr.microsoft.com/windows/server:$WINDOWS_RELEASE_VERSION +# Set ROS distro value and pixi.toml url +ARG ROS_DISTRO=rolling +ARG PIXI_TOML_URL=https://raw.githubusercontent.com/ros2/ros2/refs/heads/%ROS_DISTRO%/pixi.toml + # Enable long paths on folders RUN powershell -noexit "New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -PropertyType DWORD -Force" @@ -49,7 +53,7 @@ RUN echo "@today_str" # Install dependencies via pixi WORKDIR C:\pixi_ws -RUN powershell -noexit irm https://raw.githubusercontent.com/ros2/ros2/refs/heads/%ROS_DISTRO%/pixi.toml -OutFile pixi.toml +RUN powershell -noexit irm %PIXI_TOML_URL% -OutFile pixi.toml RUN pixi --color never --no-progress -q install RUN pixi --color never --no-progress -q list From 12f4e1100631f04820ac246e75a2eb80e6093088 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 14:40:35 +0100 Subject: [PATCH 10/15] remove --pixi-toml-url agrument aand add url as build arg --- job_templates/ci_job.xml.em | 6 +----- job_templates/packaging_job.xml.em | 6 +----- ros2_batch_job/__main__.py | 3 --- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/job_templates/ci_job.xml.em b/job_templates/ci_job.xml.em index 8c8b3333..71f4ba90 100644 --- a/job_templates/ci_job.xml.em +++ b/job_templates/ci_job.xml.em @@ -249,7 +249,7 @@ powershell $(Get-ItemProperty -Path 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentV set /p RELEASE_VERSION=< release_version.txt rem "Put current date in Dockerfile to force cache invalidation once per day" powershell "(Get-Content ${Env:DOCKERFILE}).replace('@@today_str', $(Get-Date).ToLongDateString()) | Set-Content ${Env:DOCKERFILE}" -set BUILD_ARGS=--build-arg WINDOWS_RELEASE_VERSION=%RELEASE_VERSION% --build-arg ROS_DISTRO=%CI_ROS_DISTRO% +set BUILD_ARGS=--build-arg WINDOWS_RELEASE_VERSION=%RELEASE_VERSION% --build-arg ROS_DISTRO=%CI_ROS_DISTRO% --build-arg PIXI_TOML_URL=%CI_PIXI_TOML_URL% docker build %BUILD_ARGS% -t %CONTAINER_NAME% -f %DOCKERFILE% windows_docker_resources || exit /b !ERRORLEVEL! echo "# END SECTION" @@ -287,10 +287,6 @@ set "CI_ARGS=!CI_ARGS! --repo-file-url !CI_ROS2_REPOS_URL!" if "!CI_ROS2_SUPPLEMENTAL_REPOS_URL!" NEQ "" ( set "CI_ARGS=!CI_ARGS! --supplemental-repo-file-url !CI_ROS2_SUPPLEMENTAL_REPOS_URL!" ) -if "!CI_PIXI_TOML_URL!" EQU "" ( - set "CI_PIXI_TOML_URL=@default_pixi_toml_url" -) -set "CI_ARGS=!CI_ARGS! --pixi-toml-url !CI_PIXI_TOML_URL!" if "!CI_ISOLATED!" == "true" ( set "CI_ARGS=!CI_ARGS! --isolated" ) diff --git a/job_templates/packaging_job.xml.em b/job_templates/packaging_job.xml.em index 5a88df14..622c830a 100644 --- a/job_templates/packaging_job.xml.em +++ b/job_templates/packaging_job.xml.em @@ -245,7 +245,7 @@ powershell $(Get-ItemProperty -Path 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentV set /p RELEASE_VERSION=< release_version.txt rem "Put current date in Dockerfile to force cache invalidation once per day" powershell "(Get-Content ${Env:DOCKERFILE}).replace('@@today_str', $(Get-Date).ToLongDateString()) | Set-Content ${Env:DOCKERFILE}" -set BUILD_ARGS=--build-arg WINDOWS_RELEASE_VERSION=%RELEASE_VERSION% --build-arg ROS_DISTRO=%CI_ROS_DISTRO% +set BUILD_ARGS=--build-arg WINDOWS_RELEASE_VERSION=%RELEASE_VERSION% --build-arg ROS_DISTRO=%CI_ROS_DISTRO% --build-arg PIXI_TOML_URL=%CI_PIXI_TOML_URL% docker build %BUILD_ARGS% -t %CONTAINER_NAME% -f %DOCKERFILE% windows_docker_resources || exit /b !ERRORLEVEL! echo "# END SECTION" @@ -277,10 +277,6 @@ if "!CI_ROS2_REPOS_URL!" EQU "" ( set "CI_ROS2_REPOS_URL=@default_repos_url" ) set "CI_ARGS=!CI_ARGS! --repo-file-url !CI_ROS2_REPOS_URL!" -if "!CI_PIXI_TOML_URL!" EQU "" ( - set "CI_PIXI_TOML_URL=@default_pixi_toml_url" -) -set "CI_ARGS=!CI_ARGS! --pixi-toml-url !CI_PIXI_TOML_URL!" if "!CI_ISOLATED!" == "true" ( set "CI_ARGS=!CI_ARGS! --isolated" ) diff --git a/ros2_batch_job/__main__.py b/ros2_batch_job/__main__.py index 3c33f561..f95eeb1f 100644 --- a/ros2_batch_job/__main__.py +++ b/ros2_batch_job/__main__.py @@ -135,9 +135,6 @@ def __call__(self, parser, namespace, values, option_string=None): parser.add_argument( '--supplemental-repo-file-url', default=None, help="url of a .repos file to fetch and merge with the ros2.repos file") - parser.add_argument( - '--pixi-toml-url', default=None, - help="url of a pixi.toml file to fetch and use as the build environment (only used for Windows)") parser.add_argument( '--test-branch', default=None, help="branch to attempt to checkout before doing batch job") From 17d0eb5e1d3788f95179cea081282c6f83be319f Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 18 Jan 2026 14:40:53 +0100 Subject: [PATCH 11/15] change order data --- create_jenkins_job.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/create_jenkins_job.py b/create_jenkins_job.py index d1c1ae4a..bcf855c3 100755 --- a/create_jenkins_job.py +++ b/create_jenkins_job.py @@ -108,8 +108,8 @@ def main(argv=None): 'ci_scripts_repository': args.ci_scripts_repository, 'ci_scripts_default_branch': args.ci_scripts_default_branch, 'default_repos_url': DEFAULT_REPOS_URL, - 'default_pixi_toml_url': DEFAULT_PIXI_TOML_URL, 'supplemental_repos_url': '', + 'default_pixi_toml_url': DEFAULT_PIXI_TOML_URL, 'time_trigger_spec': '', 'mailer_recipients': '', 'ignore_rmw_default': {'rmw_fastrtps_dynamic_cpp'}, From 68f838e5d0d716641bb1409ab30719fbe10c57a7 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 8 Feb 2026 17:15:14 +0100 Subject: [PATCH 12/15] remove default pixi toml url --- create_jenkins_job.py | 5 ----- job_templates/ci_job.xml.em | 6 ++++-- job_templates/ci_launcher_job.xml.em | 1 - job_templates/packaging_job.xml.em | 7 ++++--- .../snippet/property_parameter-definition_common.xml.em | 5 ++--- 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/create_jenkins_job.py b/create_jenkins_job.py index bcf855c3..062288b8 100755 --- a/create_jenkins_job.py +++ b/create_jenkins_job.py @@ -40,7 +40,6 @@ sys.exit("Could not import symbol from ros_buildfarm, please update ros_buildfarm.") DEFAULT_REPOS_URL = 'https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos' -DEFAULT_PIXI_TOML_URL = 'https://raw.githubusercontent.com/ros2/ros2//rolling/pixi.toml' DEFAULT_MAIL_RECIPIENTS = 'ros2-buildfarm@googlegroups.com' PERIODIC_JOB_SPEC = '0 4 * * *' @@ -109,7 +108,6 @@ def main(argv=None): 'ci_scripts_default_branch': args.ci_scripts_default_branch, 'default_repos_url': DEFAULT_REPOS_URL, 'supplemental_repos_url': '', - 'default_pixi_toml_url': DEFAULT_PIXI_TOML_URL, 'time_trigger_spec': '', 'mailer_recipients': '', 'ignore_rmw_default': {'rmw_fastrtps_dynamic_cpp'}, @@ -448,7 +446,6 @@ def create_job(os_name, job_name, template_file, additional_dict): create_job(os_name, 'nightly_' + os_name + '_humble_coverage', 'ci_job.xml.em', { 'cmake_build_type': 'Debug', 'default_repos_url': 'https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos', - 'default_pixi_toml_url': 'https://raw.githubusercontent.com/ros2/ros2/humble/pixi.toml', 'disabled': True, 'enable_coverage_default': 'true', 'time_trigger_spec': PERIODIC_JOB_SPEC, @@ -464,7 +461,6 @@ def create_job(os_name, job_name, template_file, additional_dict): create_job(os_name, 'nightly_' + os_name + '_jazzy_coverage', 'ci_job.xml.em', { 'cmake_build_type': 'Debug', 'default_repos_url': 'https://raw.githubusercontent.com/ros2/ros2/jazzy/ros2.repos', - 'default_pixi_toml_url': 'https://raw.githubusercontent.com/ros2/ros2/jazzy/pixi.toml', 'disabled': True, 'enable_coverage_default': 'true', 'time_trigger_spec': PERIODIC_JOB_SPEC, @@ -480,7 +476,6 @@ def create_job(os_name, job_name, template_file, additional_dict): create_job(os_name, 'nightly_' + os_name + '_kilted_coverage', 'ci_job.xml.em', { 'cmake_build_type': 'Debug', 'default_repos_url': 'https://raw.githubusercontent.com/ros2/ros2/kilted/ros2.repos', - 'default_pixi_toml_url': 'https://raw.githubusercontent.com/ros2/ros2/kilted/pixi.toml', 'disabled': True, 'enable_coverage_default': 'true', 'time_trigger_spec': PERIODIC_JOB_SPEC, diff --git a/job_templates/ci_job.xml.em b/job_templates/ci_job.xml.em index 71f4ba90..9be472ce 100644 --- a/job_templates/ci_job.xml.em +++ b/job_templates/ci_job.xml.em @@ -26,7 +26,6 @@ 'property_parameter-definition', ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, - default_pixi_toml_url=default_pixi_toml_url, supplemental_repos_url=supplemental_repos_url, ignore_rmw_default=ignore_rmw_default, use_connext_debs_default=use_connext_debs_default, @@ -249,7 +248,7 @@ powershell $(Get-ItemProperty -Path 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentV set /p RELEASE_VERSION=< release_version.txt rem "Put current date in Dockerfile to force cache invalidation once per day" powershell "(Get-Content ${Env:DOCKERFILE}).replace('@@today_str', $(Get-Date).ToLongDateString()) | Set-Content ${Env:DOCKERFILE}" -set BUILD_ARGS=--build-arg WINDOWS_RELEASE_VERSION=%RELEASE_VERSION% --build-arg ROS_DISTRO=%CI_ROS_DISTRO% --build-arg PIXI_TOML_URL=%CI_PIXI_TOML_URL% +set BUILD_ARGS=--build-arg WINDOWS_RELEASE_VERSION=%RELEASE_VERSION% --build-arg ROS_DISTRO=%CI_ROS_DISTRO% docker build %BUILD_ARGS% -t %CONTAINER_NAME% -f %DOCKERFILE% windows_docker_resources || exit /b !ERRORLEVEL! echo "# END SECTION" @@ -262,6 +261,9 @@ if "!CI_BRANCH_TO_TEST!" NEQ "" ( if "!CI_COLCON_BRANCH!" NEQ "" ( set "CI_ARGS=!CI_ARGS! --colcon-branch !CI_COLCON_BRANCH!" ) +if "!CI_PIXI_TOML_URL!" NEQ "" ( + set "BUILD_ARGS=!BUILD_ARGS! --build-arg PIXI_TOML_URL=%CI_PIXI_TOML_URL%" +) if "!CI_USE_WHITESPACE_IN_PATHS!" == "true" ( set "CI_ARGS=!CI_ARGS! --white-space-in sourcespace buildspace installspace workspace" ) diff --git a/job_templates/ci_launcher_job.xml.em b/job_templates/ci_launcher_job.xml.em index 4d992493..479541f4 100644 --- a/job_templates/ci_launcher_job.xml.em +++ b/job_templates/ci_launcher_job.xml.em @@ -26,7 +26,6 @@ ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, supplemental_repos_url=supplemental_repos_url, - default_pixi_toml_url=default_pixi_toml_url, ignore_rmw_default=ignore_rmw_default, use_connext_debs_default=use_connext_debs_default, use_isolated_default=use_isolated_default, diff --git a/job_templates/packaging_job.xml.em b/job_templates/packaging_job.xml.em index 622c830a..ab3ef176 100644 --- a/job_templates/packaging_job.xml.em +++ b/job_templates/packaging_job.xml.em @@ -29,7 +29,6 @@ ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, supplemental_repos_url=supplemental_repos_url, - default_pixi_toml_url=default_pixi_toml_url, ubuntu_distro=ubuntu_distro, el_release=el_release, ros_distro=ros_distro, @@ -108,7 +107,6 @@ ros_distro: ${build.buildVariableResolver.resolve('CI_ROS_DISTRO')},
branch: ${build.buildVariableResolver.resolve('CI_BRANCH_TO_TEST')},
ci_branch: ${build.buildVariableResolver.resolve('CI_SCRIPTS_BRANCH')},
repos_url: ${build.buildVariableResolver.resolve('CI_ROS2_REPOS_URL')},
-pixi_toml_url: ${build.buildVariableResolver.resolve('CI_PIXI_TOML_URL')},
use_connextdds: ${build.buildVariableResolver.resolve('CI_USE_CONNEXTDDS')},
use_connext_debs: ${build.buildVariableResolver.resolve('CI_USE_CONNEXT_DEBS')},
use_cyclonedds: ${build.buildVariableResolver.resolve('CI_USE_CYCLONEDDS')},
@@ -245,7 +243,7 @@ powershell $(Get-ItemProperty -Path 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentV set /p RELEASE_VERSION=< release_version.txt rem "Put current date in Dockerfile to force cache invalidation once per day" powershell "(Get-Content ${Env:DOCKERFILE}).replace('@@today_str', $(Get-Date).ToLongDateString()) | Set-Content ${Env:DOCKERFILE}" -set BUILD_ARGS=--build-arg WINDOWS_RELEASE_VERSION=%RELEASE_VERSION% --build-arg ROS_DISTRO=%CI_ROS_DISTRO% --build-arg PIXI_TOML_URL=%CI_PIXI_TOML_URL% +set BUILD_ARGS=--build-arg WINDOWS_RELEASE_VERSION=%RELEASE_VERSION% --build-arg ROS_DISTRO=%CI_ROS_DISTRO% docker build %BUILD_ARGS% -t %CONTAINER_NAME% -f %DOCKERFILE% windows_docker_resources || exit /b !ERRORLEVEL! echo "# END SECTION" @@ -258,6 +256,9 @@ if "!CI_BRANCH_TO_TEST!" NEQ "" ( if "!CI_COLCON_BRANCH!" NEQ "" ( set "CI_ARGS=!CI_ARGS! --colcon-branch !CI_COLCON_BRANCH!" ) +if "!CI_PIXI_TOML_URL!" NEQ "" ( + set "BUILD_ARGS=!BUILD_ARGS! --build-arg PIXI_TOML_URL=!CI_PIXI_TOML_URL!%" +) if "!CI_USE_CONNEXTDDS!" == "false" ( set "CI_ARGS=!CI_ARGS! --ignore-rmw rmw_connextdds" ) diff --git a/job_templates/snippet/property_parameter-definition_common.xml.em b/job_templates/snippet/property_parameter-definition_common.xml.em index 1b03cc9a..e0804f2d 100644 --- a/job_templates/snippet/property_parameter-definition_common.xml.em +++ b/job_templates/snippet/property_parameter-definition_common.xml.em @@ -35,10 +35,9 @@ Use this instead of the Custom .repos file if you want to add to the default rep CI_PIXI_TOML_URL Custom pixi.toml file URL to use instead of the default pixi.toml file. -For example, copy the content of pixi.toml to use instead of the default (@default_pixi_toml_url). Then pass the raw URL here. - (@default_pixi_toml_url). +For example, copy the content of pixi.toml to use instead of the default in a gist, then pass the raw URL here. The pixi.toml file defines the Pixi environment configuration for the build. - @default_pixi_toml_url + false From 3d20cf71f661ad16a1e1e102bd9c5c40da2abfa6 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Sun, 8 Feb 2026 17:23:45 +0100 Subject: [PATCH 13/15] removed one lingering default pixi toml url --- job_templates/snippet/property_parameter-definition.xml.em | 1 - 1 file changed, 1 deletion(-) diff --git a/job_templates/snippet/property_parameter-definition.xml.em b/job_templates/snippet/property_parameter-definition.xml.em index 78f343a2..2be1b77b 100644 --- a/job_templates/snippet/property_parameter-definition.xml.em +++ b/job_templates/snippet/property_parameter-definition.xml.em @@ -5,7 +5,6 @@ ci_scripts_default_branch=ci_scripts_default_branch, default_repos_url=default_repos_url, supplemental_repos_url=supplemental_repos_url, - default_pixi_toml_url=default_pixi_toml_url, ubuntu_distro=ubuntu_distro, el_release=el_release, ros_distro=ros_distro, From 465e87d499202ad07c9122e55136775a3d0104fb Mon Sep 17 00:00:00 2001 From: knmcguire Date: Mon, 9 Feb 2026 16:50:55 +0100 Subject: [PATCH 14/15] shell style syntax for windows docker pixi toml url --- windows_docker_resources/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows_docker_resources/Dockerfile b/windows_docker_resources/Dockerfile index 1388424e..3f9940d5 100644 --- a/windows_docker_resources/Dockerfile +++ b/windows_docker_resources/Dockerfile @@ -20,7 +20,7 @@ FROM mcr.microsoft.com/windows/server:$WINDOWS_RELEASE_VERSION # Set ROS distro value and pixi.toml url ARG ROS_DISTRO=rolling -ARG PIXI_TOML_URL=https://raw.githubusercontent.com/ros2/ros2/refs/heads/%ROS_DISTRO%/pixi.toml +ARG PIXI_TOML_URL=https://raw.githubusercontent.com/ros2/ros2/refs/heads/${ROS_DISTRO}/pixi.toml # Enable long paths on folders RUN powershell -noexit "New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -PropertyType DWORD -Force" @@ -53,7 +53,7 @@ RUN echo "@today_str" # Install dependencies via pixi WORKDIR C:\pixi_ws -RUN powershell -noexit irm %PIXI_TOML_URL% -OutFile pixi.toml +RUN powershell -noexit irm ${PIXI_TOML_URL} -OutFile pixi.toml RUN pixi --color never --no-progress -q install RUN pixi --color never --no-progress -q list From db24a7c558be42f33ac3008c4e630c2bfca56e01 Mon Sep 17 00:00:00 2001 From: knmcguire Date: Mon, 9 Feb 2026 17:37:29 +0100 Subject: [PATCH 15/15] use another method to get pixi.toml --- windows_docker_resources/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows_docker_resources/Dockerfile b/windows_docker_resources/Dockerfile index 3f9940d5..02d812ab 100644 --- a/windows_docker_resources/Dockerfile +++ b/windows_docker_resources/Dockerfile @@ -53,7 +53,7 @@ RUN echo "@today_str" # Install dependencies via pixi WORKDIR C:\pixi_ws -RUN powershell -noexit irm ${PIXI_TOML_URL} -OutFile pixi.toml +RUN powershell -Command "Invoke-RestMethod -Uri $env:PIXI_TOML_URL -OutFile pixi.toml" RUN pixi --color never --no-progress -q install RUN pixi --color never --no-progress -q list