diff --git a/job_templates/ci_job.xml.em b/job_templates/ci_job.xml.em
index cb515835..9be472ce 100644
--- a/job_templates/ci_job.xml.em
+++ b/job_templates/ci_job.xml.em
@@ -98,6 +98,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')},
@@ -260,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/packaging_job.xml.em b/job_templates/packaging_job.xml.em
index e61f0581..ab3ef176 100644
--- a/job_templates/packaging_job.xml.em
+++ b/job_templates/packaging_job.xml.em
@@ -256,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 8e0c9367..e0804f2d 100644
--- a/job_templates/snippet/property_parameter-definition_common.xml.em
+++ b/job_templates/snippet/property_parameter-definition_common.xml.em
@@ -32,6 +32,14 @@ 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 pixi.toml file.
+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.
+
+ false
+
CI_COLCON_BRANCH
Use a specific branch of the colcon repositories.
diff --git a/windows_docker_resources/Dockerfile b/windows_docker_resources/Dockerfile
index ea09b934..02d812ab 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"
@@ -48,9 +52,8 @@ 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 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