diff --git a/.devcontainer/ubuntu-22.04/Dockerfile b/.devcontainer/ubuntu-22.04/Dockerfile deleted file mode 100644 index d3b28c1e4..000000000 --- a/.devcontainer/ubuntu-22.04/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM --platform=linux/amd64 ubuntu:22.04 - -SHELL ["/bin/bash", "-c"] - -ARG USERNAME=user -ARG USER_UID=1000 -ARG USER_GID=$USER_UID - -ARG DEBIAN_FRONTEND=noninteractive - -RUN apt-get update && \ - apt-get -y install \ - build-essential \ - curl \ - gdb \ - gh \ - git \ - less \ - libncurses5 \ - libtinfo5 \ - llvm-15-tools \ - locales \ - nano \ - python3 \ - python3-pip \ - python-is-python3 \ - software-properties-common \ - sudo \ - unzip && \ - ln -s /usr/bin/FileCheck-15 /usr/bin/FileCheck - -RUN add-apt-repository ppa:deadsnakes/ppa && \ - apt-get -y install libpython3.9 - -RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \ - locale-gen - -RUN pip install \ - lit \ - python-matrix-runner - -# Create the user -RUN groupadd --gid $USER_GID $USERNAME \ - && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME -s /bin/bash \ - && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ - && chmod 0440 /etc/sudoers.d/$USERNAME - -RUN mkdir -p /workspaces && \ - chown $USER_UID:$USER_GID /workspaces - -ADD vcpkg-configuration.json /home/ -ADD postCreateCommand.sh /home/ - -RUN chmod +x /home/postCreateCommand.sh - -USER $USERNAME -WORKDIR /home/$USERNAME - -CMD ["/bin/bash"] diff --git a/.devcontainer/ubuntu-22.04/vcpkg-configuration.json b/.devcontainer/ubuntu-22.04/vcpkg-configuration.json deleted file mode 100644 index 8761aad3d..000000000 --- a/.devcontainer/ubuntu-22.04/vcpkg-configuration.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "registries": [ - { - "kind": "artifact", - "location": "https://artifacts.tools.arm.com/vcpkg-registry", - "name": "arm" - } - ], - "requires": { - "arm:tools/kitware/cmake": "^3.25.2", - "arm:ninja": "^1.10.2", - "arm:compilers/arm/armclang":"^6.22.0", - "arm:compilers/arm/arm-none-eabi-gcc": "^13.2.1", - "arm:compilers/arm/llvm-embedded": "^18.1.3", - "arm:tools/open-cmsis-pack/cmsis-toolbox": "^2.1.0-0", - "arm:models/arm/avh-fvp": "11.22.39", - "arm:debuggers/arm/armdbg": "^6.0.0" - } - } - \ No newline at end of file diff --git a/.devcontainer/ubuntu-24.04/Dockerfile b/.devcontainer/ubuntu-24.04/Dockerfile new file mode 100644 index 000000000..fa9f4a4f7 --- /dev/null +++ b/.devcontainer/ubuntu-24.04/Dockerfile @@ -0,0 +1,74 @@ +FROM ubuntu:24.04 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +ARG USERNAME=ubuntu +ARG USER_UID=1000 +ARG USER_GID=${USER_UID} + +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + build-essential \ + ca-certificates \ + curl \ + gdb \ + gh \ + git \ + less \ + libncurses6 \ + libtinfo6 \ + llvm-18-tools \ + locales \ + nano \ + software-properties-common \ + sudo \ + unzip && \ + add-apt-repository -y ppa:deadsnakes/ppa && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + libpython3.14 \ + python3.14 \ + python3.14-venv && \ + ln -sf /usr/bin/FileCheck-18 /usr/local/bin/FileCheck && \ + echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \ + locale-gen && \ + rm -rf /var/lib/apt/lists/* + +ENV LANG=en_US.UTF-8 +ENV LC_ALL=en_US.UTF-8 +ENV VIRTUAL_ENV=/opt/cmsis-python +ENV PATH="${VIRTUAL_ENV}/bin:${PATH}" + +RUN python3.14 -m venv "${VIRTUAL_ENV}" && \ + python -m pip install --no-cache-dir \ + "lit~=17.0" \ + "python-matrix-runner~=1.3" && \ + python --version && \ + FileCheck --version + +# Create the user passed from devcontainer.json. +RUN userdel --remove ubuntu && \ + groupadd --gid "${USER_GID}" "${USERNAME}" && \ + useradd \ + --uid "${USER_UID}" \ + --gid "${USER_GID}" \ + --create-home \ + --shell /bin/bash \ + "${USERNAME}" && \ + echo "${USERNAME} ALL=(root) NOPASSWD:ALL" > "/etc/sudoers.d/${USERNAME}" && \ + chmod 0440 "/etc/sudoers.d/${USERNAME}" + +RUN mkdir -p /workspaces && \ + chown "${USERNAME}:${USERNAME}" /workspaces + +COPY vcpkg-configuration.json /home/ +COPY postCreateCommand.sh /home/ + +RUN chmod +x /home/postCreateCommand.sh + +USER ${USERNAME} +WORKDIR /home/${USERNAME} + +CMD ["/bin/bash"] diff --git a/.devcontainer/ubuntu-22.04/devcontainer.json b/.devcontainer/ubuntu-24.04/devcontainer.json similarity index 83% rename from .devcontainer/ubuntu-22.04/devcontainer.json rename to .devcontainer/ubuntu-24.04/devcontainer.json index af8227499..81e9cb8a1 100644 --- a/.devcontainer/ubuntu-22.04/devcontainer.json +++ b/.devcontainer/ubuntu-24.04/devcontainer.json @@ -1,11 +1,12 @@ { - "name": "Ubuntu-22.04", + "name": "Ubuntu-24.04", "build": { "dockerfile": "Dockerfile", "args": { "USERNAME": "${localEnv:USER}" } }, + "remoteUser": "${localEnv:USER}", "mounts": [ "source=${devcontainerId}-home,target=/home/${localEnv:USER},type=volume", "source=${localEnv:HOME}${localEnv:USERPROFILE}/.ssh,target=/home/${localEnv:USER}/.ssh,type=bind,consistency=cached", @@ -16,9 +17,9 @@ "customizations": { "vscode": { "extensions": [ - "ms-vscode.cpptools", - "ms-vscode.cpptools-extension-pack" + "ms-vscode.cpptools", + "ms-vscode.cpptools-extension-pack" ] } } - } +} diff --git a/.devcontainer/ubuntu-22.04/postCreateCommand.sh b/.devcontainer/ubuntu-24.04/postCreateCommand.sh old mode 100755 new mode 100644 similarity index 100% rename from .devcontainer/ubuntu-22.04/postCreateCommand.sh rename to .devcontainer/ubuntu-24.04/postCreateCommand.sh diff --git a/.devcontainer/ubuntu-24.04/vcpkg-configuration.json b/.devcontainer/ubuntu-24.04/vcpkg-configuration.json new file mode 100644 index 000000000..a2702a2d2 --- /dev/null +++ b/.devcontainer/ubuntu-24.04/vcpkg-configuration.json @@ -0,0 +1,20 @@ +{ + "registries": [ + { + "kind": "artifact", + "location": "https://artifacts.tools.arm.com/vcpkg-registry", + "name": "arm" + } + ], + "requires": { + "arm:tools/kitware/cmake": "^4.3.3", + "arm:tools/ninja-build/ninja": "1.13.2", + "arm:compilers/arm/armclang":"^6.24.0", + "arm:compilers/arm/arm-none-eabi-gcc": "^15.3.1", + "arm:compilers/arm/llvm-embedded": "^22.1.0", + "arm:tools/open-cmsis-pack/cmsis-toolbox": "^2.14.1", + "arm:models/arm/avh-fvp": "11.31.28", + "arm:debuggers/arm/armdbg": "^6.10.1" + } + } + diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 74e1d5dc8..eeeecf0c3 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -16,7 +16,7 @@ concurrency: jobs: lit: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: ARM_UBL_ACTIVATION_CODE: ${{ secrets.ARM_UBL_ACTIVATION_CODE }} @@ -30,19 +30,25 @@ jobs: - uses: actions/setup-python@v7 with: - python-version: '3.10' + python-version: '3.14' cache: 'pip' - name: Python requirements run: | pip install -r ./CMSIS/Core/Test/requirements.txt + - name: Inspect Python libraries + run: | + echo "pythonLocation=$pythonLocation" + find "$pythonLocation/lib" -maxdepth 1 -name 'libpython*' -ls + python3-config --embed --ldflags + - name: Install LLVM dependencies and tools working-directory: /home/runner run: | sudo apt-get update - sudo apt-get install libtinfo5 llvm-15-tools - sudo ln -s /usr/bin/FileCheck-15 /usr/bin/FileCheck + sudo apt-get install libtinfo6 llvm-18-tools + sudo ln -s /usr/bin/FileCheck-18 /usr/bin/FileCheck - name: Activate vcpkg environment uses: ARM-software/cmsis-actions/vcpkg@v1 diff --git a/.github/workflows/corevalidation-report.yml b/.github/workflows/corevalidation-report.yml index 1b01e4cae..5bdb619e3 100644 --- a/.github/workflows/corevalidation-report.yml +++ b/.github/workflows/corevalidation-report.yml @@ -11,7 +11,7 @@ on: jobs: publish-test-results: name: Publish Test Results - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 if: github.event.workflow_run.conclusion != 'skipped' steps: diff --git a/.github/workflows/corevalidation.yml b/.github/workflows/corevalidation.yml index e4625d487..f62dab31b 100644 --- a/.github/workflows/corevalidation.yml +++ b/.github/workflows/corevalidation.yml @@ -23,7 +23,7 @@ jobs: matrix: compiler: [AC6, GCC, Clang, Clang_TI] - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: ARM_UBL_ACTIVATION_CODE: ${{ secrets.ARM_UBL_ACTIVATION_CODE }} @@ -33,9 +33,6 @@ jobs: CLANG_TI_SHA256: "c758668b78c080be5ec75393cdd09d077742fd1183aa0c181318a0119d58c4d0" steps: - - run: | - sudo add-apt-repository ppa:deadsnakes/ppa - sudo apt-get install libpython3.9 - uses: actions/checkout@v7 @@ -53,19 +50,25 @@ jobs: - uses: actions/setup-python@v7 with: - python-version: '3.10' + python-version: '3.14' cache: 'pip' - name: Python requirements run: | pip install -r ./CMSIS/CoreValidation/Project/requirements.txt + - name: Inspect Python libraries + run: | + echo "pythonLocation=$pythonLocation" + find "$pythonLocation/lib" -maxdepth 1 -name 'libpython*' -ls + python3-config --embed --ldflags + - name: Install LLVM/Clang dependencies if: matrix.compiler == 'Clang' working-directory: /home/runner run: | sudo apt-get update - sudo apt-get install libtinfo5 + sudo apt-get install libtinfo6 - name: Activate vcpkg environment uses: ARM-software/cmsis-actions/vcpkg@v1 diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index b85075dd3..0c030cbae 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -27,7 +27,7 @@ jobs: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v7 diff --git a/.github/workflows/pack.yml b/.github/workflows/pack.yml index caf6cca9d..d5752940c 100644 --- a/.github/workflows/pack.yml +++ b/.github/workflows/pack.yml @@ -14,7 +14,7 @@ concurrency: jobs: pack: name: Generate pack - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v7 with: diff --git a/CMSIS/Core/Test/vcpkg-configuration.json b/CMSIS/Core/Test/vcpkg-configuration.json index 9683cb659..fab4515d5 100644 --- a/CMSIS/Core/Test/vcpkg-configuration.json +++ b/CMSIS/Core/Test/vcpkg-configuration.json @@ -7,8 +7,8 @@ } ], "requires": { - "arm:compilers/arm/armclang": "6.23.0", - "arm:compilers/arm/arm-none-eabi-gcc": "14.2.1", - "arm:compilers/arm/llvm-embedded": "20.1.0" + "arm:compilers/arm/armclang": "6.24.0", + "arm:compilers/arm/arm-none-eabi-gcc": "15.3.1", + "arm:compilers/arm/llvm-embedded": "22.1.0" } } \ No newline at end of file diff --git a/CMSIS/CoreValidation/Project/vcpkg-configuration.json b/CMSIS/CoreValidation/Project/vcpkg-configuration.json index 7a0287f16..b919ba040 100644 --- a/CMSIS/CoreValidation/Project/vcpkg-configuration.json +++ b/CMSIS/CoreValidation/Project/vcpkg-configuration.json @@ -7,12 +7,12 @@ } ], "requires": { - "arm:tools/kitware/cmake": "3.28.4", - "arm:compilers/arm/armclang": "6.23.0", - "arm:compilers/arm/arm-none-eabi-gcc": "14.2.1", - "arm:compilers/arm/llvm-embedded": "20.1.0", - "arm:tools/open-cmsis-pack/cmsis-toolbox": "2.10.0", - "arm:models/arm/avh-fvp": "11.27.31", - "arm:tools/ninja-build/ninja": "1.12.0" + "arm:tools/kitware/cmake": "4.3.3", + "arm:compilers/arm/armclang": "6.24.0", + "arm:compilers/arm/arm-none-eabi-gcc": "15.3.1", + "arm:compilers/arm/llvm-embedded": "22.1.0", + "arm:tools/open-cmsis-pack/cmsis-toolbox": "2.14.1", + "arm:models/arm/avh-fvp": "11.31.28", + "arm:tools/ninja-build/ninja": "1.13.2" } } \ No newline at end of file