diff --git a/create_jenkins_job.py b/create_jenkins_job.py index 062288b8..bcf855c3 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 * * *' @@ -108,6 +109,7 @@ 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'}, @@ -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, diff --git a/job_templates/ci_job.xml.em b/job_templates/ci_job.xml.em index cb515835..71f4ba90 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, @@ -98,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')},
@@ -247,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" diff --git a/job_templates/ci_launcher_job.xml.em b/job_templates/ci_launcher_job.xml.em index 479541f4..4d992493 100644 --- a/job_templates/ci_launcher_job.xml.em +++ b/job_templates/ci_launcher_job.xml.em @@ -26,6 +26,7 @@ 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 e61f0581..622c830a 100644 --- a/job_templates/packaging_job.xml.em +++ b/job_templates/packaging_job.xml.em @@ -29,6 +29,7 @@ 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, @@ -107,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')},
@@ -243,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" diff --git a/job_templates/snippet/property_parameter-definition.xml.em b/job_templates/snippet/property_parameter-definition.xml.em index 2be1b77b..78f343a2 100644 --- a/job_templates/snippet/property_parameter-definition.xml.em +++ b/job_templates/snippet/property_parameter-definition.xml.em @@ -5,6 +5,7 @@ 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, diff --git a/job_templates/snippet/property_parameter-definition_common.xml.em b/job_templates/snippet/property_parameter-definition_common.xml.em index 0eb70211..c031eabd 100644 --- a/job_templates/snippet/property_parameter-definition_common.xml.em +++ b/job_templates/snippet/property_parameter-definition_common.xml.em @@ -32,6 +32,15 @@ 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 (@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 + 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..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" @@ -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 -noexit irm %PIXI_TOML_URL% -OutFile pixi.toml RUN pixi --color never --no-progress -q install RUN pixi --color never --no-progress -q list