Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions job_templates/ci_job.xml.em
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,13 @@ 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%
if "!ROS_DISTRO!" == "humble" (
set "BUILD_ARGS=!BUILD_ARGS! --build-arg CONNEXTDDS_DIR=C:\connext\rti_connext_dds-6.0.1 --build-arg RTI_OPENSSL_BIN=C:\connext\openssl-1.1.1k\x64Win64VS2017\bin --build-arg RTI_OPENSSL_LIB=C:\connext\openssl-1.1.1k\x64Win64VS2017\lib"
) else if "!ROS_DISTRO!" == "jazzy" (
set "BUILD_ARGS=!BUILD_ARGS! --build-arg CONNEXTDDS_DIR=C:\connext\rti_connext_dds-6.0.1 --build-arg RTI_OPENSSL_BIN=C:\connext\openssl-1.1.1k\x64Win64VS2017\bin --build-arg RTI_OPENSSL_LIB=C:\connext\openssl-1.1.1k\x64Win64VS2017\lib"
) else (
set "BUILD_ARGS=!BUILD_ARGS! --build-arg CONNEXTDDS_DIR=C:\connext\rti_connext_dds-7.3.0 --build-arg RTI_OPENSSL_BIN=C:\connext\openssl-3.0.12\x64Win64VS2017\bin --build-arg RTI_OPENSSL_LIB=C:\connext\openssl-3.0.12\x64Win64VS2017\lib"
)
docker build %BUILD_ARGS% -t %CONTAINER_NAME% -f %DOCKERFILE% windows_docker_resources || exit /b !ERRORLEVEL!
echo "# END SECTION"

Expand Down
19 changes: 9 additions & 10 deletions windows_docker_resources/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,14 @@ RUN powershell -noexit irm https://raw.githubusercontent.com/ros2/ros2/refs/head
RUN pixi --color never --no-progress -q install
RUN pixi --color never --no-progress -q list

# Setup environment variables needed for Connext
# Setup environment variables needed for Connext using build args
ENV RTI_LICENSE_FILE C:\connext\rti_license.dat
ENV CONNEXTDDS_DIR C:\connext\rti_connext_dds-7.3.0
ENV RTI_OPENSSL_BIN C:\connext\openssl-3.0.12\x64Win64VS2017\bin
ENV RTI_OPENSSL_LIB C:\connext\openssl-3.0.12\x64Win64VS2017\lib
ARG CONNEXTDDS_DIR=C:\connext\rti_connext_dds-7.3.0
ENV CONNEXTDDS_DIR $CONNEXTDDS_DIR
ARG RTI_OPENSSL_BIN=C:\connext\openssl-3.0.12\x64Win64VS2017\bin
ENV RTI_OPENSSL_BIN $RTI_OPENSSL_BIN
ARG RTI_OPENSSL_LIB=C:\connext\openssl-3.0.12\x64Win64VS2017\lib
ENV RTI_OPENSSL_LIB $RTI_OPENSSL_LIB

# Copy over necessary Connext files into container
RUN IF NOT EXIST "C:\TEMP" mkdir C:\TEMP
Expand All @@ -58,12 +61,8 @@ RUN copy /b C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-target-x64Win64V
COPY rticonnextdds-license\rti_license.dat $RTI_LICENSE_FILE

# Install Connext
RUN C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-host-x64Win64.exe --mode unattended --unattendedmodeui minimalWithDialogs --prefix C:\connext
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\openssl-3.0.12-7.3.0-host-x64Win64.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\openssl-3.0.12-7.3.0-target-x64Win64VS2017.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-target-x64Win64VS2017.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_security_plugins-7.3.0-host-x64Win64.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_security_plugins-7.3.0-target-x64Win64VS2017.rtipkg
COPY rti_web_binaries_install.ps1 C:\TEMP\rti_web_binaries_install.ps1
RUN powershell C:\TEMP\rti_web_binaries_install.ps1

# Note that this *must* be in shell form, not exec form, so Docker on Windows appropriately substitutes %CI_ARGS%
WORKDIR C:\ci
Expand Down
20 changes: 20 additions & 0 deletions windows_docker_resources/rti_web_binaries_install.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
write-output ROS_DISTRO $Env:ROS_DISTRO
write-output CONNEXTDDS_DIR $Env:CONNEXTDDS_DIR
if ( $Env:ROS_DISTRO -eq "jammy" -or $Env:ROS_DISTRO -eq "humble" ) {
pixi run 7z x -oC:\connext "C:\TEMP\rticonnextdds-src\openssl-1.1.1k-target-x64Win64VS2017.zip"
& "C:\TEMP\rticonnextdds-src\rti_connext_dds-6.0.1-pro-host-x64Win64.exe" @("--mode", "unattended", "--unattendedmodeui", "minimalWithDialogs". "--prefix", "C:\connext")
cmd.exe /c $Env:CONNEXTDDS_DIR\bin\rtipkginstall.bat -u "C:\TEMP\rticonnextdds-src\openssl-1.1.1k-6.0.1.25-host-x64Win64.rtipkg"
cmd.exe /c $Env:CONNEXTDDS_DIR\bin\rtipkginstall.bat -u "C:\TEMP\rticonnextdds-src\rti_connext_dds-6.0.1-pro-target-x64Win64VS2017.rtipkg"
cmd.exe /c $Env:CONNEXTDDS_DIR\bin\rtipkginstall.bat -u "C:\TEMP\rticonnextdds-src\rti_security_plugins-6.0.1.25-host-x64Win64.rtipkg"
cmd.exe /c $Env:CONNEXTDDS_DIR\bin\rtipkginstall.bat -u "C:\TEMP\rticonnextdds-src\rti_security_plugins-6.0.1.25-target-x64Win64VS2017.rtipkg"
} else {
$params = @("--mode", "unattended", "--unattendedmodeui", "minimalWithDialogs", "--prefix", "C:\connext")
& "C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-host-x64Win64.exe" $params
$rti_security_target_params = @()

cmd.exe /c "$Env:CONNEXTDDS_DIR\bin\rtipkginstall.bat" "-u" "C:\TEMP\rticonnextdds-src\openssl-3.0.12-7.3.0-host-x64Win64.rtipkg"
cmd.exe /c "$Env:CONNEXTDDS_DIR\bin\rtipkginstall.bat" "-u" "C:\TEMP\rticonnextdds-src\openssl-3.0.12-7.3.0-target-x64Win64VS2017.rtipkg"
cmd.exe /c "$Env:CONNEXTDDS_DIR\bin\rtipkginstall.bat" "-u" "C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-target-x64Win64VS2017.rtipkg"
cmd.exe /c "$Env:CONNEXTDDS_DIR\bin\rtipkginstall.bat" "-u" "C:\TEMP\rticonnextdds-src\rti_security_plugins-7.3.0-host-x64Win64.rtipkg"
cmd.exe /c "$Env:CONNEXTDDS_DIR\bin\rtipkginstall.bat" "-u" "C:\TEMP\rticonnextdds-src\rti_security_plugins-7.3.0-target-x64Win64VS2017.rtipkg"
Comment on lines +15 to +19
Copy link
Member Author

Choose a reason for hiding this comment

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

@lobolanja I could use a second set of eyes here. I'm getting

The system cannot find the path specified.

Errors trying to run these commands but as far as I can see, they're the same invocation as was in the original Dockerfile.

}