diff --git a/.github/workflows/toolshed.yml b/.github/workflows/toolshed.yml index 15fe557..bcf93dc 100644 --- a/.github/workflows/toolshed.yml +++ b/.github/workflows/toolshed.yml @@ -49,13 +49,18 @@ jobs: - name: Build and push by digest id: build - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: toolshed platforms: ${{ matrix.platform }} - labels: ${{ steps.meta.outputs.labels }} annotations: ${{ steps.meta.outputs.annotations }} - outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=${{ (github.event_name != 'pull_request' && !github.event.release.prerelease) && 'true' || 'false' }} + tags: ${{ steps.meta.outputs.tags }} + outputs: > + type=image, + name=${{ env.REGISTRY_IMAGE }}, + push-by-digest=true, + name-canonical=true, + push=${{ (github.event_name != 'pull_request' && !github.event.release.prerelease) && 'true' || 'false' }} - name: Export digest if: ${{ github.event_name != 'pull_request' && !github.event.release.prerelease}} @@ -110,13 +115,18 @@ jobs: - name: Build and push by digest id: build - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: toolshed platforms: ${{ matrix.platform }} - labels: ${{ steps.meta.outputs.labels }} annotations: ${{ steps.meta.outputs.annotations }} - outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=${{ (github.event_name != 'pull_request' && !github.event.release.prerelease) && 'true' || 'false' }} + tags: ${{ steps.meta.outputs.tags }} + outputs: > + type=image, + name=${{ env.REGISTRY_IMAGE }}, + push-by-digest=true, + name-canonical=true, + push=${{ (github.event_name != 'pull_request' && !github.event.release.prerelease) && 'true' || 'false' }} - name: Export digest if: ${{ github.event_name != 'pull_request' && !github.event.release.prerelease}} diff --git a/README.md b/README.md index 3160b0f..4213f59 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,8 @@ like [libcanard](https://github.com/OpenCyphal/libcanard) and | tag | Python | GCC (native) | GCC (arm-none-eabi) | Clang (native) | Cmake | Host Platforms | Other Utilities | |----------|--------|--------------|---------------------|----------------|-------|----------------|-----------------| -| [ts24.4.2](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | | | 13.3.1 | | 3.31.5 | | | +| [ts24.4.3](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | | | 13.3.1 | | 3.31.5 | | | +| [ts24.4.2](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | | | 13.3.1 | | 3.31.5 | | | | [ts24.4.1](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | | | 13.3.1 | | 3.31.5 | |
  • can-utils
  • doxygen 1.13.2
  • tox
  • nox
  • govr
  • gcc-multilib (amd64 only)
  • | | [ts22.4.10](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | 3.10 | 12.3.0 | 13.3.1 | 18.1.3 | 3.30.1 | | | | [ts22.4.8](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | 3.10 | 12.3.0 | (N/A) | 18.1.3 | 3.22.1 | | | diff --git a/toolshed/Dockerfile b/toolshed/Dockerfile index fe77f9f..87ad571 100644 --- a/toolshed/Dockerfile +++ b/toolshed/Dockerfile @@ -43,30 +43,10 @@ RUN ./post-provision.sh # INSTALL THE PATH FOR INTERACTIVE SESSIONS RUN echo "export PATH=$PATH" >> ~/.bashrc -# LEAVE THE WORKDIR AS /repo -WORKDIR /repo - -# +---------------------------------------------------------------------------+ -# | INSTALL PYTHON STUFF -# +---------------------------------------------------------------------------+ -FROM provisioning AS python -WORKDIR /tmp - -RUN apt-get -y install pipx -RUN echo "export PATH=/root/.local/bin:$PATH" >> ~/.bashrc -RUN pipx install tox -RUN pipx install nox -RUN pipx install gcovr -RUN pipx install yakut -RUN git clone --depth 1 https://github.com/OpenCyphal/public_regulated_data_types.git ~/public_regulated_data_types - -# LEAVE THE WORKDIR AS /repo -WORKDIR /repo - # +---------------------------------------------------------------------------+ # | LLVM # +---------------------------------------------------------------------------+ -FROM python AS llvm +FROM provisioning AS llvm WORKDIR /tmp ADD llvm-install.sh ./llvm-install.sh @@ -76,9 +56,6 @@ RUN ./llvm-select.sh 18 18 RUN ./llvm-install.sh 19 all RUN ./llvm-select.sh 19 99 -# LEAVE THE WORKDIR AS /repo -WORKDIR /repo - # +---------------------------------------------------------------------------+ # | DOXYGEN BUILD (PARALLEL) # +---------------------------------------------------------------------------+ @@ -109,9 +86,6 @@ RUN cmake --install . WORKDIR /tmp RUN rm -rf doxygen-Release -# LEAVE THE WORKDIR AS /repo -WORKDIR /repo - # +---------------------------------------------------------------------------+ # | GCC::native # +---------------------------------------------------------------------------+ @@ -140,7 +114,7 @@ FROM arm-none-eabi-${TARGETARCH} AS arm-none-eabi WORKDIR /tmp COPY cached-download.sh . -ARG ARM_NONE_EABI_VERSION=13.3.rel1 +ARG ARM_NONE_EABI_VERSION=14.2.rel1 ARG ARM_NONE_EABI_CHECKSUM_FILE=arm-gnu-toolchain-${ARM_NONE_EABI_VERSION}-${GCC_HOST_VERSION}-arm-none-eabi.tar.xz.sha256asc COPY ${ARM_NONE_EABI_CHECKSUM_FILE} . @@ -157,5 +131,41 @@ ADD arm-none-eabi-gcc-select.sh ./arm-none-eabi-gcc-select.sh RUN ./arm-none-eabi-gcc-select.sh 1 /opt/arm-gnu-toolchain-${ARM_NONE_EABI_VERSION}-${GCC_HOST_VERSION}-arm-none-eabi/bin/ RUN update-alternatives --display arm-none-eabi-gcc +# +---------------------------------------------------------------------------+ +# | GCC::native +# +---------------------------------------------------------------------------+ +FROM arm-none-eabi AS jlink + +WORKDIR /tmp + +# From the forum: https://forum.segger.com/index.php/Thread/8953-SOLVED-J-Link-Linux-installer-fails-for-Docker-containers-Error-Failed-to-update/ +ADD JLink_Linux_V816_${TARGETARCH}.deb ./JLink_Linux_V816.deb +RUN apt-get -y install libxcb-render-util0 libxcb-icccm4 libxcb-keysyms1 libxcb-image0 libxkbcommon0 libxkbcommon-x11-0 +RUN dpkg --unpack JLink_Linux_V816.deb \ + && rm -f /var/lib/dpkg/info/jlink.postinst +RUN dpkg --configure jlink +RUN apt install -yf +RUN echo "export PATH=/opt/SEGGER/JLink:$PATH" >> ~/.bashrc +RUN rm JLink_Linux_V816.deb + +# +---------------------------------------------------------------------------+ +# | INSTALL PYTHON STUFF +# +---------------------------------------------------------------------------+ +FROM jlink AS python +WORKDIR /tmp + +RUN apt-get -y install pipx +ENV PIPX_HOME=/opt/pipx +ENV PIPX_BIN_DIR=/usr/local/bin +RUN echo "export PATH=$PIPX_HOME:$PIPX_BIN_DIR:$PATH" >> ~/.bashrc +RUN pipx install cowsay +RUN pipx install tox +RUN pipx install nox +RUN pipx install gcovr +RUN pipx install yakut +RUN cowsay -t moo +RUN git clone --depth 1 https://github.com/OpenCyphal/public_regulated_data_types.git ~/public_regulated_data_types + +# +---------------------------------------------------------------------------+# LEAVE THE WORKDIR AS /repo # LEAVE THE WORKDIR AS /repo WORKDIR /repo diff --git a/toolshed/JLink_Linux_V816_amd64.deb b/toolshed/JLink_Linux_V816_amd64.deb new file mode 100644 index 0000000..3b2b955 Binary files /dev/null and b/toolshed/JLink_Linux_V816_amd64.deb differ diff --git a/toolshed/JLink_Linux_V816_arm64.deb b/toolshed/JLink_Linux_V816_arm64.deb new file mode 100644 index 0000000..8ef808c Binary files /dev/null and b/toolshed/JLink_Linux_V816_arm64.deb differ diff --git a/toolshed/arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc b/toolshed/arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc deleted file mode 100644 index 240c604..0000000 --- a/toolshed/arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc +++ /dev/null @@ -1 +0,0 @@ -c8824bffd057afce2259f7618254e840715f33523a3d4e4294f471208f976764 arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz diff --git a/toolshed/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc b/toolshed/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc deleted file mode 100644 index fc170b3..0000000 --- a/toolshed/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc +++ /dev/null @@ -1 +0,0 @@ -95c011cee430e64dd6087c75c800f04b9c49832cc1000127a92a97f9c8d83af4 arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz diff --git a/toolshed/arm-gnu-toolchain-14.2.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc b/toolshed/arm-gnu-toolchain-14.2.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc new file mode 100644 index 0000000..094ea28 --- /dev/null +++ b/toolshed/arm-gnu-toolchain-14.2.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc @@ -0,0 +1 @@ +87330bab085dd8749d4ed0ad633674b9dc48b237b61069e3b481abd364d0a684 arm-gnu-toolchain-14.2.rel1-aarch64-arm-none-eabi.tar.xz diff --git a/toolshed/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc b/toolshed/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc new file mode 100644 index 0000000..43cc49c --- /dev/null +++ b/toolshed/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc @@ -0,0 +1 @@ +62a63b981fe391a9cbad7ef51b17e49aeaa3e7b0d029b36ca1e9c3b2a9b78823 arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz diff --git a/toolshed/provision.sh b/toolshed/provision.sh index a633526..e6e7848 100755 --- a/toolshed/provision.sh +++ b/toolshed/provision.sh @@ -49,3 +49,6 @@ apt-get -y install nodejs apt-get -y install npm apt-get -y install libpcap0.8-dev apt-get -y install net-tools +apt-get -y install iproute2 +apt-get -y install cppcheck +apt-get -y install libncurses5