diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 5314a8b2444..0f1909007a7 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -2,7 +2,7 @@ variables: windows_vm: windows-2022 ubuntu_vm: ubuntu-24.04 macos_vm: macOS-14 - ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20251001-04Nov2025 + ci_runner_image: trini/u-boot-gitlab-ci-runner:noble-20251001-10Nov2025 # Ensure we do a shallow clone Agent.Source.Git.ShallowFetchDepth: 1 # Add '-u 0' options for Azure pipelines, otherwise we get "permission @@ -273,6 +273,7 @@ stages: -r tools/buildman/requirements.txt \ -r test/py/requirements.txt \ -r tools/u_boot_pylib/requirements.txt \ + setuptools \ pytest-azurepipelines tools/buildman/buildman -o \${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e --board \${TEST_PY_BD} \${OVERRIDE} cp /opt/grub/grub_x86.efi \${UBOOT_TRAVIS_BUILD_DIR}/ @@ -352,6 +353,8 @@ stages: sandbox: TEST_PY_BD: "sandbox" TEST_PY_EXTRA: "--timing" + # addr2line in Ubuntu 'Noble' and later are broken. + TEST_PY_TEST_SPEC: "not event_dump" sandbox_asan: TEST_PY_BD: "sandbox" OVERRIDE: "-a ASAN" @@ -359,6 +362,8 @@ stages: sandbox_clang: TEST_PY_BD: "sandbox" OVERRIDE: "-O clang-18" + # addr2line in Ubuntu 'Noble' and later are broken. + TEST_PY_TEST_SPEC: "not event_dump" sandbox_clang_asan: TEST_PY_BD: "sandbox" OVERRIDE: "-O clang-18 -a ASAN" @@ -642,7 +647,8 @@ stages: python3 -m venv /tmp/venv . /tmp/venv/bin/activate pip install -r tools/binman/requirements.txt \ - -r tools/buildman/requirements.txt + -r tools/buildman/requirements.txt \ + setuptools EOF cat << "EOF" >> build.sh if [[ "${BUILDMAN}" != "" ]]; then diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a5d7f4dc738..9422af2ebd0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,7 +18,7 @@ workflow: # Grab our configured image. The source for this is found # in the u-boot tree at tools/docker/Dockerfile -image: ${MIRROR_DOCKER}/trini/u-boot-gitlab-ci-runner:jammy-20251001-04Nov2025 +image: ${MIRROR_DOCKER}/trini/u-boot-gitlab-ci-runner:noble-20251001-10Nov2025 # We run some tests in different order, to catch some failures quicker. stages: @@ -59,6 +59,7 @@ stages: . /tmp/venv/bin/activate; pip install -r test/py/requirements.txt -r tools/binman/requirements.txt -r tools/buildman/requirements.txt -r tools/u_boot_pylib/requirements.txt + setuptools after_script: - cp -v /tmp/${TEST_PY_BD}/*.{html,css,xml} . @@ -150,6 +151,7 @@ build all platforms in a single job: . /tmp/venv/bin/activate; pip install -r tools/binman/requirements.txt -r tools/buildman/requirements.txt + setuptools - ret=0; git config --global --add safe.directory "${CI_PROJECT_DIR}"; ./tools/buildman/buildman -o /tmp -PEWM -x xtensa || ret=$?; @@ -266,6 +268,8 @@ sandbox test.py: variables: TEST_PY_BD: "sandbox" TEST_PY_EXTRA: "--timing" + # addr2line in Ubuntu 'Noble' and later are broken. + TEST_PY_TEST_SPEC: "not event_dump" <<: *buildman_and_testpy_dfn sandbox with clang test.py: @@ -278,6 +282,8 @@ sandbox with clang test.py: variables: TEST_PY_BD: "sandbox" OVERRIDE: "-O clang-18" + # addr2line in Ubuntu 'Noble' and later are broken. + TEST_PY_TEST_SPEC: "not event_dump" <<: *buildman_and_testpy_dfn sandbox64 test.py: diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index d2384219c06..7fead1dcb18 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -2,7 +2,7 @@ # This Dockerfile is used to build an image containing basic stuff to be used # to build U-Boot and run our test suites. -FROM ubuntu:jammy-20251001 +FROM ubuntu:noble-20251001 LABEL org.opencontainers.image.authors="Tom Rini " LABEL org.opencontainers.image.description=" This image is for building U-Boot inside a container" @@ -27,12 +27,10 @@ ENV TCVER=14.2.0 RUN echo "Building on $BUILDPLATFORM, for target $TARGETPLATFORM" -# Add LLVM repository +# Add tools to fetch archives with RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \ - apt-get update && apt-get install -y gnupg2 wget xz-utils -RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - -RUN echo deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main | tee /etc/apt/sources.list.d/llvm.list + apt-get update && apt-get install -y wget xz-utils # Create a list of URLs to process, then pass them into a 'while read' loop RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then HOSTARCH=x86_64; else HOSTARCH=arm64; fi; ( \ @@ -54,6 +52,10 @@ RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \ wget -O - https://github.com/foss-xtensa/toolchain/releases/download/2020.07/x86_64-2020.07-xtensa-dc233c-elf.tar.gz | tar -C /opt -xz; \ fi +# Add LLVM repository +RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc +RUN echo deb http://apt.llvm.org/noble/ llvm-toolchain-noble-18 main | tee /etc/apt/sources.list.d/llvm.list + # Update and install things from apt now RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \ @@ -359,7 +361,8 @@ RUN python3 -m venv /tmp/venv && \ -r /tmp/binman-requirements.txt \ -r /tmp/buildman-requirements.txt \ -r /tmp/patman-requirements.txt \ - -r /tmp/u_boot_pylib-requirements.txt && \ + -r /tmp/u_boot_pylib-requirements.txt \ + setuptools pytest-azurepipelines && \ deactivate && \ rm -rf /tmp/venv /tmp/*-requirements.txt @@ -377,4 +380,3 @@ RUN /bin/echo -e "\nx86 = i386" >> ~/.buildman; # Add mkbootimg tool RUN git clone https://android.googlesource.com/platform/system/tools/mkbootimg /home/uboot/mkbootimg -ENV PYTHONPATH="${PYTHONPATH}:/home/uboot/mkbootimg"