Skip to content

Commit ea1c923

Browse files
Adding cppcheck and jlink to #ts toolshed (#63)
1 parent 282d1ca commit ea1c923

10 files changed

+61
-37
lines changed

.github/workflows/toolshed.yml

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,18 @@ jobs:
4949

5050
- name: Build and push by digest
5151
id: build
52-
uses: docker/build-push-action@v5
52+
uses: docker/build-push-action@v6
5353
with:
5454
context: toolshed
5555
platforms: ${{ matrix.platform }}
56-
labels: ${{ steps.meta.outputs.labels }}
5756
annotations: ${{ steps.meta.outputs.annotations }}
58-
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' }}
57+
tags: ${{ steps.meta.outputs.tags }}
58+
outputs: >
59+
type=image,
60+
name=${{ env.REGISTRY_IMAGE }},
61+
push-by-digest=true,
62+
name-canonical=true,
63+
push=${{ (github.event_name != 'pull_request' && !github.event.release.prerelease) && 'true' || 'false' }}
5964
6065
- name: Export digest
6166
if: ${{ github.event_name != 'pull_request' && !github.event.release.prerelease}}
@@ -110,13 +115,18 @@ jobs:
110115

111116
- name: Build and push by digest
112117
id: build
113-
uses: docker/build-push-action@v5
118+
uses: docker/build-push-action@v6
114119
with:
115120
context: toolshed
116121
platforms: ${{ matrix.platform }}
117-
labels: ${{ steps.meta.outputs.labels }}
118122
annotations: ${{ steps.meta.outputs.annotations }}
119-
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' }}
123+
tags: ${{ steps.meta.outputs.tags }}
124+
outputs: >
125+
type=image,
126+
name=${{ env.REGISTRY_IMAGE }},
127+
push-by-digest=true,
128+
name-canonical=true,
129+
push=${{ (github.event_name != 'pull_request' && !github.event.release.prerelease) && 'true' || 'false' }}
120130
121131
- name: Export digest
122132
if: ${{ github.event_name != 'pull_request' && !github.event.release.prerelease}}

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ like [libcanard](https://github.com/OpenCyphal/libcanard) and
2525

2626
| tag | Python | GCC (native) | GCC (arm-none-eabi) | Clang (native) | Cmake | Host Platforms | Other Utilities |
2727
|----------|--------|--------------|---------------------|----------------|-------|----------------|-----------------|
28-
| [ts24.4.2](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | <ul><li>3.12</li><li>3.10</li></ul> | <ul><li>13.3.0</li><li>12.3.0</li><li>11.4.0</li><li>10.5.0</li><li>7.5.0</li></ul>| 13.3.1 | <ul><li>19.1.7</li><li>18.1.8</li></ul> | 3.31.5 | <ul><li>linux/amd64</li><li>linux/arm64</li></ul> | <ul><li>yakut 0.13.0</li><li>libpcap0.8-dev</li><li>network-tools</li><li>can-utils</li><li>doxygen 1.13.2</li><li>tox</li><li>nox</li><li>govr</li><li>gcc-multilib (amd64 only)</li></ul> |
28+
| [ts24.4.3](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | <ul><li>3.12</li><li>3.10</li></ul> | <ul><li>13.3.0</li><li>12.3.0</li><li>11.4.0</li><li>10.5.0</li><li>7.5.0</li></ul>| 13.3.1 | <ul><li>19.1.7</li><li>18.1.8</li></ul> | 3.31.5 | <ul><li>linux/amd64</li><li>linux/arm64</li></ul> | <ul><li>JLink V816</li><li>cppcheck-2.13</li><li>yakut 0.13.0</li><li>libpcap0.8-dev</li><li>network-tools</li><li>can-utils</li><li>doxygen 1.13.2</li><li>tox</li><li>nox</li><li>govr</li><li>gcc-multilib (amd64 only)</li></ul> |
29+
| [ts24.4.2](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | <ul><li>3.12</li><li>3.10</li></ul> | <ul><li>13.3.0</li><li>12.3.0</li><li>11.4.0</li><li>10.5.0</li><li>7.5.0</li></ul>| 13.3.1 | <ul><li>19.1.7</li><li>18.1.8</li></ul> | 3.31.5 | <ul><li>linux/amd64</li><li>linux/arm64</li></ul> | <ul><li>yakut 0.13.0</li><li>libpcap0.8-dev</li><li>network-tools</li><li>can-utils</li><li>doxygen 1.13.2</li><li>gcc-multilib (amd64 only)</li></ul> |
2930
| [ts24.4.1](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | <ul><li>3.12</li><li>3.10</li></ul> | <ul><li>13.3.0</li><li>12.3.0</li><li>11.4.0</li><li>10.5.0</li><li>7.5.0</li></ul>| 13.3.1 | <ul><li>19.1.7</li><li>18.1.8</li></ul> | 3.31.5 | <ul><li>linux/amd64</li><li>linux/arm64</li></ul> | <li>can-utils</li><li>doxygen 1.13.2</li><li>tox</li><li>nox</li><li>govr</li><li>gcc-multilib (amd64 only)</li></ul> |
3031
| [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 | <ul><li>linux/amd64</li><li>linux/arm64</li></ul> | <ul><li>qemu</li><li>can-utils</li><li>doxygen 1.10.0</li><li>nvm</li><li>node 20.x</li><li>nox</li><li>govr</li><li>gcc-multilib (amd64 only)</li></ul> |
3132
| [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 | <ul><li>linux/amd64</li><li>linux/arm64</li></ul> | <ul><li>qemu</li><li>can-utils</li><li>doxygen 1.10.0</li><li>nvm</li><li>node 20.x</li><li>nox</li><li>govr</li><li>gcc-multilib (amd64 only)</li></ul> |

toolshed/Dockerfile

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -43,30 +43,10 @@ RUN ./post-provision.sh
4343
# INSTALL THE PATH FOR INTERACTIVE SESSIONS
4444
RUN echo "export PATH=$PATH" >> ~/.bashrc
4545

46-
# LEAVE THE WORKDIR AS /repo
47-
WORKDIR /repo
48-
49-
# +---------------------------------------------------------------------------+
50-
# | INSTALL PYTHON STUFF
51-
# +---------------------------------------------------------------------------+
52-
FROM provisioning AS python
53-
WORKDIR /tmp
54-
55-
RUN apt-get -y install pipx
56-
RUN echo "export PATH=/root/.local/bin:$PATH" >> ~/.bashrc
57-
RUN pipx install tox
58-
RUN pipx install nox
59-
RUN pipx install gcovr
60-
RUN pipx install yakut
61-
RUN git clone --depth 1 https://github.com/OpenCyphal/public_regulated_data_types.git ~/public_regulated_data_types
62-
63-
# LEAVE THE WORKDIR AS /repo
64-
WORKDIR /repo
65-
6646
# +---------------------------------------------------------------------------+
6747
# | LLVM
6848
# +---------------------------------------------------------------------------+
69-
FROM python AS llvm
49+
FROM provisioning AS llvm
7050
WORKDIR /tmp
7151

7252
ADD llvm-install.sh ./llvm-install.sh
@@ -76,9 +56,6 @@ RUN ./llvm-select.sh 18 18
7656
RUN ./llvm-install.sh 19 all
7757
RUN ./llvm-select.sh 19 99
7858

79-
# LEAVE THE WORKDIR AS /repo
80-
WORKDIR /repo
81-
8259
# +---------------------------------------------------------------------------+
8360
# | DOXYGEN BUILD (PARALLEL)
8461
# +---------------------------------------------------------------------------+
@@ -109,9 +86,6 @@ RUN cmake --install .
10986
WORKDIR /tmp
11087
RUN rm -rf doxygen-Release
11188

112-
# LEAVE THE WORKDIR AS /repo
113-
WORKDIR /repo
114-
11589
# +---------------------------------------------------------------------------+
11690
# | GCC::native
11791
# +---------------------------------------------------------------------------+
@@ -140,7 +114,7 @@ FROM arm-none-eabi-${TARGETARCH} AS arm-none-eabi
140114
WORKDIR /tmp
141115
COPY cached-download.sh .
142116

143-
ARG ARM_NONE_EABI_VERSION=13.3.rel1
117+
ARG ARM_NONE_EABI_VERSION=14.2.rel1
144118
ARG ARM_NONE_EABI_CHECKSUM_FILE=arm-gnu-toolchain-${ARM_NONE_EABI_VERSION}-${GCC_HOST_VERSION}-arm-none-eabi.tar.xz.sha256asc
145119

146120
COPY ${ARM_NONE_EABI_CHECKSUM_FILE} .
@@ -157,5 +131,41 @@ ADD arm-none-eabi-gcc-select.sh ./arm-none-eabi-gcc-select.sh
157131
RUN ./arm-none-eabi-gcc-select.sh 1 /opt/arm-gnu-toolchain-${ARM_NONE_EABI_VERSION}-${GCC_HOST_VERSION}-arm-none-eabi/bin/
158132
RUN update-alternatives --display arm-none-eabi-gcc
159133

134+
# +---------------------------------------------------------------------------+
135+
# | GCC::native
136+
# +---------------------------------------------------------------------------+
137+
FROM arm-none-eabi AS jlink
138+
139+
WORKDIR /tmp
140+
141+
# From the forum: https://forum.segger.com/index.php/Thread/8953-SOLVED-J-Link-Linux-installer-fails-for-Docker-containers-Error-Failed-to-update/
142+
ADD JLink_Linux_V816_${TARGETARCH}.deb ./JLink_Linux_V816.deb
143+
RUN apt-get -y install libxcb-render-util0 libxcb-icccm4 libxcb-keysyms1 libxcb-image0 libxkbcommon0 libxkbcommon-x11-0
144+
RUN dpkg --unpack JLink_Linux_V816.deb \
145+
&& rm -f /var/lib/dpkg/info/jlink.postinst
146+
RUN dpkg --configure jlink
147+
RUN apt install -yf
148+
RUN echo "export PATH=/opt/SEGGER/JLink:$PATH" >> ~/.bashrc
149+
RUN rm JLink_Linux_V816.deb
150+
151+
# +---------------------------------------------------------------------------+
152+
# | INSTALL PYTHON STUFF
153+
# +---------------------------------------------------------------------------+
154+
FROM jlink AS python
155+
WORKDIR /tmp
156+
157+
RUN apt-get -y install pipx
158+
ENV PIPX_HOME=/opt/pipx
159+
ENV PIPX_BIN_DIR=/usr/local/bin
160+
RUN echo "export PATH=$PIPX_HOME:$PIPX_BIN_DIR:$PATH" >> ~/.bashrc
161+
RUN pipx install cowsay
162+
RUN pipx install tox
163+
RUN pipx install nox
164+
RUN pipx install gcovr
165+
RUN pipx install yakut
166+
RUN cowsay -t moo
167+
RUN git clone --depth 1 https://github.com/OpenCyphal/public_regulated_data_types.git ~/public_regulated_data_types
168+
169+
# +---------------------------------------------------------------------------+# LEAVE THE WORKDIR AS /repo
160170
# LEAVE THE WORKDIR AS /repo
161171
WORKDIR /repo

toolshed/JLink_Linux_V816_amd64.deb

41 MB
Binary file not shown.

toolshed/JLink_Linux_V816_arm64.deb

39.1 MB
Binary file not shown.

toolshed/arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc

Lines changed: 0 additions & 1 deletion
This file was deleted.

toolshed/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
87330bab085dd8749d4ed0ad633674b9dc48b237b61069e3b481abd364d0a684 arm-gnu-toolchain-14.2.rel1-aarch64-arm-none-eabi.tar.xz
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
62a63b981fe391a9cbad7ef51b17e49aeaa3e7b0d029b36ca1e9c3b2a9b78823 arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz

toolshed/provision.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,6 @@ apt-get -y install nodejs
4949
apt-get -y install npm
5050
apt-get -y install libpcap0.8-dev
5151
apt-get -y install net-tools
52+
apt-get -y install iproute2
53+
apt-get -y install cppcheck
54+
apt-get -y install libncurses5

0 commit comments

Comments
 (0)