Skip to content

Conversation

@liuXinGangChina
Copy link
Collaborator

@liuXinGangChina liuXinGangChina commented Sep 9, 2025

Description

in order to prepare a ci pipeline for core jazzy support issue link
we have to create a jazzy-core-common-devel docker image for core‘s ci
thus we made these modification

How was this PR tested?

in my local env i successfully creat a jazzy related docker image using ' docker buildx bake --file docker/xxx xxx --progress=plain '
图片

Notes for reviewers

None.
this pr only focus on core-jazzy ci pipeline not contain

  1. pipeline for cuda related docker image
  2. pipeline for arm64 arch, since nvidia jetpack has not support jazzy officially

Effects on system behavior

None.
i made modification with jazzy-condition switch to ensure original humble docker pipeline not be affacted

@github-actions
Copy link

github-actions bot commented Sep 9, 2025

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

@liuXinGangChina liuXinGangChina self-assigned this Sep 9, 2025
@liuXinGangChina liuXinGangChina added the type:ci Continuous Integration (CI) processes and testing. label Sep 9, 2025
@liuXinGangChina liuXinGangChina moved this from To Triage to In Progress in Software Working Group Sep 9, 2025
@liuXinGangChina liuXinGangChina changed the title feature::ci::add jazzy docker build process in current ci pipeline ci::add jazzy docker build process in current ci pipeline Sep 9, 2025
@liuXinGangChina liuXinGangChina changed the title ci::add jazzy docker build process in current ci pipeline ci: add jazzy docker build process in current ci pipeline Sep 9, 2025
@liuXinGangChina
Copy link
Collaborator Author

hi fatih san @xmfcx
can you help push the pipeline forward , as it need maintainers' approve
图片

@liuXinGangChina
Copy link
Collaborator Author

mits san @mitsudome-r
it seems that ci pipeline pending at docker build step for a long time. do you know why?
图片

@xmfcx xmfcx added the run:health-check Run health-check label Sep 30, 2025
@xmfcx
Copy link
Contributor

xmfcx commented Sep 30, 2025

run:health-check label was missing, I've added it now.

setup-dev-env.sh Outdated
if ! (python3 -m pipx --version >/dev/null 2>&1); then
sudo apt-get -y update
python3 -m pip install --user pipx
python3 -m pip install --user pipx --break-system-packages
Copy link
Member

Choose a reason for hiding this comment

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

adding --break-system-packages would cause error in Ubuntu22.04 with the following error message:

no such option: --break-system-packages

Instead, we can set PIP_BREAK_SYSTEM_PACKAGES=1.
Same applies to all the other places.

Suggested change
python3 -m pip install --user pipx --break-system-packages
PIP_BREAK_SYSTEM_PACKAGES=1 python3 -m pip install --user pipx

Copy link
Contributor

Choose a reason for hiding this comment

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

https://pipx.pypa.io/stable/installation/

On Linux:
Ubuntu 23.04 or above
sudo apt update
sudo apt install pipx
pipx ensurepath

Breaking system packages is a very bad idea, we should avoid this by either utilizing apt packages or a virtualized python env like miniconda or venv.

Copy link
Member

Choose a reason for hiding this comment

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

Okay, then I think we can use apt install

Suggested change
python3 -m pip install --user pipx --break-system-packages
sudo apt install pipx

Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
python3 -m pip install --user pipx --break-system-packages
UBUNTU_VERSION=$(lsb_release -rs)
echo "Detected Ubuntu version: $UBUNTU_VERSION"
if [[ "$UBUNTU_VERSION" == "22.04" ]]; then
echo "Installing pipx using pip (for Ubuntu 22.04)..."
python3 -m pip install --user pipx
else
echo "Installing pipx using apt (for Ubuntu > 22.04)..."
sudo apt update
sudo apt install -y pipx
fi

To keep compatibility with older version.

Copy link
Member

Choose a reason for hiding this comment

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

Do we need to keep the old one? We should be able to install pipx with apt for Ubuntu22.04 as well.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I have double check that ubuntu 22.04 support apt install pipx,
I will update this file to use sudo apt install pipx for both ubuntu version

echo " --download-artifacts"
echo " Download artifacts"
echo " --module Specify the module (default: all)"
echo " --ros-distro Specify ROS distribution (humble or jazzy, default: humble)"
Copy link
Contributor

Choose a reason for hiding this comment

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

Where is this argument used?

Copy link
Member

Choose a reason for hiding this comment

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

I don't think we currently use this option, but we might need it in order to specify correct environment variables to use as I commented here: https://github.com/autowarefoundation/autoware/pull/6453/files#r2409550184

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

thanks for your review mits san and fatih san

1.ros-distro here is used to indicate which env file to use
1.1 when doing automatic github action , the pipe will give setup-dev-env.sh the right ros-distro to choose specific env file
1.2 when developer manully config their local env , they have to use ./setup-dev-env.sh --ros-distro jazzy to tell the script which env file to read
图片

amd64.env Outdated
@@ -1,8 +1,17 @@
rosdistro=humble
# ROS distribution (humble or jazzy)
rosdistro=${ROS_DISTRO:-humble}
Copy link
Member

Choose a reason for hiding this comment

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

ROS_DISTRO is usually set after we install ROS, but this file is actually used to install ROS with ansible script.
We could consider having amd64.jazzy.env instead for this file.

Copy link
Collaborator Author

@liuXinGangChina liuXinGangChina Oct 12, 2025

Choose a reason for hiding this comment

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

thanks for your review mits san
1.i have added the amd64.jazzy.env according to your comment
2.ros-distro here is used to indicate which env file to use

@mitsudome-r
Copy link
Member

mitsudome-r commented Oct 7, 2025

I've also noticed that we have to update universe playbook to have the following modifications:

  • update Verify OS pre_task to allow Ubuntu 24.04
  • skip agnocast and pacmod roles when rosdistro!=humble

I had to update ansible version as well.

@liuXinGangChina liuXinGangChina force-pushed the add-jazzy-docker-ci branch 2 times, most recently from c59058d to 2380e2c Compare October 12, 2025 07:53
@liuXinGangChina
Copy link
Collaborator Author

I've also noticed that we have to update universe playbook to have the following modifications:

* update Verify OS pre_task to allow Ubuntu 24.04

* skip agnocast and pacmod roles when rosdistro!=humble

I had to update ansible version as well.
already modify this file including

  1. add ubuntu 24.04 for os check
  2. disable pacmod and agocast for version except for humble

@liuXinGangChina liuXinGangChina force-pushed the add-jazzy-docker-ci branch 2 times, most recently from d46c9a9 to 062cc2e Compare October 12, 2025 08:17
@liuXinGangChina
Copy link
Collaborator Author

there are still some ci issue, i wil fix them one by one ASAP

…d file system, using existing files rather than adding new files

Signed-off-by: liuXinGangChina <[email protected]>
…d file system, add docker build pipe line to github action

Signed-off-by: liuXinGangChina <[email protected]>
… universe playbook in ansible

Signed-off-by: liuXinGangChina <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run:health-check Run health-check type:ci Continuous Integration (CI) processes and testing.

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

3 participants