Skip to content

Commit 2bf5403

Browse files
authored
chore: add hash checks for bats components (#929)
1 parent 15fdfe8 commit 2bf5403

File tree

3 files changed

+50
-15
lines changed

3 files changed

+50
-15
lines changed

.devcontainer/cpp/Dockerfile

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
1+
# syntax=docker/dockerfile:1
2+
3+
FROM ubuntu:24.04@sha256:9cbed754112939e914291337b5e554b07ad7c392491dba6daf25eef1332a22e8 AS extractor
4+
5+
ARG BATS_CORE_VERSION=1.12.0
6+
ARG BATS_SUPPORT_VERSION=0.3.0
7+
ARG BATS_ASSERT_VERSION=2.1.0
8+
9+
ADD --checksum=sha256:e36b020436228262731e3319ed013d84fcd7c4bd97a1b34dee33d170e9ae6bab \
10+
https://github.com/bats-core/bats-core/archive/refs/tags/v${BATS_CORE_VERSION}.tar.gz /bats-core.tar.gz
11+
ADD --checksum=sha256:7815237aafeb42ddcc1b8c698fc5808026d33317d8701d5ec2396e9634e2918f \
12+
https://github.com/bats-core/bats-support/archive/refs/tags/v${BATS_SUPPORT_VERSION}.tar.gz /bats-support.tar.gz
13+
ADD --checksum=sha256:98ca3b685f8b8993e48ec057565e6e2abcc541034ed5b0e81f191505682037fd \
14+
https://github.com/bats-core/bats-assert/archive/refs/tags/v2.1.0.tar.gz /bats-assert.tar.gz
15+
16+
RUN tar xzf /bats-core.tar.gz && mv bats-core-*/ bats-core \
17+
&& tar xzf /bats-support.tar.gz && mv bats-support-*/ bats-support \
18+
&& tar xzf /bats-assert.tar.gz && mv bats-assert-*/ bats-assert
19+
120
FROM ubuntu:24.04@sha256:9cbed754112939e914291337b5e554b07ad7c392491dba6daf25eef1332a22e8
221

3-
ARG BATS_VERSION=1.11.0
422
ARG CCACHE_VERSION=4.12
523
ARG CLANG_VERSION=18
624
ARG CPM_VERSION=0.40.2
@@ -46,7 +64,6 @@ RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-clang.json,targe
4664
--mount=type=cache,target=/var/cache/apt,sharing=locked \
4765
--mount=type=cache,target=/var/lib/apt,sharing=locked \
4866
--mount=type=cache,target=/var/log,sharing=locked \
49-
--mount=type=cache,target=/tmp,sharing=locked,mode=1777 \
5067
wget --no-hsts -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /usr/share/keyrings/llvm-snapshot-keyring.gpg \
5168
&& wget --no-hsts -qO - https://dl.cloudsmith.io/public/mull-project/mull-stable/gpg.41DB35380DE6BD6F.key | gpg --dearmor -o /usr/share/keyrings/mull-project-mull-stable-archive-keyring.gpg \
5269
&& UBUNTU_CODENAME=$(grep '^UBUNTU_CODENAME=' /etc/os-release | cut -d= -f2) \
@@ -61,12 +78,10 @@ RUN mkdir /opt/gcc-arm-none-eabi \
6178
&& wget --no-hsts -qO - "https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-$(uname -m)-arm-none-eabi.tar.xz" | tar --exclude='*arm-none-eabi-gdb*' --exclude='share' --strip-components=1 -xJC /opt/gcc-arm-none-eabi
6279

6380
# Install bats
64-
RUN batstmp="$(mktemp -d /tmp/bats-core-${BATS_VERSION}.XXXX)" \
65-
&& wget --no-hsts -qO - https://github.com/bats-core/bats-core/archive/refs/tags/v${BATS_VERSION}.tar.gz | tar xz -C "${batstmp}" \
66-
&& bash "${batstmp}/bats-core-${BATS_VERSION}/install.sh" /usr/local \
67-
&& rm -rf "${batstmp}" \
68-
&& git -C /usr/local clone -b v0.3.0 https://github.com/bats-core/bats-support.git \
69-
&& git -C /usr/local clone -b v2.1.0 https://github.com/bats-core/bats-assert.git
81+
RUN --mount=from=extractor,target=/src \
82+
bash /src/bats-core/install.sh /usr/local \
83+
&& cp -r /src/bats-support /usr/local/bats-support \
84+
&& cp -r /src/bats-assert /usr/local/bats-assert
7085

7186
# Install xwin and ccache
7287
RUN wget --no-hsts -qO - "https://github.com/Jake-Shadle/xwin/releases/download/${XWIN_VERSION}/xwin-${XWIN_VERSION}-$(uname -m)-unknown-linux-musl.tar.gz" | tar -xzv -C /usr/local/bin --strip-components=1 "xwin-${XWIN_VERSION}-$(uname -m)-unknown-linux-musl/xwin" \

.devcontainer/rust/Dockerfile

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
1+
# syntax=docker/dockerfile:1
2+
3+
FROM ubuntu:24.04@sha256:9cbed754112939e914291337b5e554b07ad7c392491dba6daf25eef1332a22e8 AS extractor
4+
5+
ARG BATS_CORE_VERSION=1.12.0
6+
ARG BATS_SUPPORT_VERSION=0.3.0
7+
ARG BATS_ASSERT_VERSION=2.1.0
8+
9+
ADD --checksum=sha256:e36b020436228262731e3319ed013d84fcd7c4bd97a1b34dee33d170e9ae6bab \
10+
https://github.com/bats-core/bats-core/archive/refs/tags/v${BATS_CORE_VERSION}.tar.gz /bats-core.tar.gz
11+
ADD --checksum=sha256:7815237aafeb42ddcc1b8c698fc5808026d33317d8701d5ec2396e9634e2918f \
12+
https://github.com/bats-core/bats-support/archive/refs/tags/v${BATS_SUPPORT_VERSION}.tar.gz /bats-support.tar.gz
13+
ADD --checksum=sha256:98ca3b685f8b8993e48ec057565e6e2abcc541034ed5b0e81f191505682037fd \
14+
https://github.com/bats-core/bats-assert/archive/refs/tags/v2.1.0.tar.gz /bats-assert.tar.gz
15+
16+
RUN tar xzf /bats-core.tar.gz && mv bats-core-*/ bats-core \
17+
&& tar xzf /bats-support.tar.gz && mv bats-support-*/ bats-support \
18+
&& tar xzf /bats-assert.tar.gz && mv bats-assert-*/ bats-assert
19+
120
FROM ubuntu:24.04@sha256:9cbed754112939e914291337b5e554b07ad7c392491dba6daf25eef1332a22e8
221

3-
ARG BATS_VERSION=1.11.0
422
ARG CARGO_BINSTALL_VERSION=1.15.1
523
ARG RUST_VERSION=1.89.0
624

@@ -35,12 +53,10 @@ RUN rustup set profile minimal \
3553
&& rustup target add thumbv7em-none-eabihf
3654

3755
# Install bats
38-
RUN batstmp="$(mktemp -d /tmp/bats-core-${BATS_VERSION}.XXXX)" \
39-
&& wget -qO - "https://github.com/bats-core/bats-core/archive/refs/tags/v${BATS_VERSION}.tar.gz" | tar xz -C "${batstmp}" \
40-
&& bash "${batstmp}/bats-core-${BATS_VERSION}/install.sh" /usr/local \
41-
&& rm -rf "${batstmp}" \
42-
&& git -C /usr/local clone -b v0.3.0 https://github.com/bats-core/bats-support.git \
43-
&& git -C /usr/local clone -b v2.1.0 https://github.com/bats-core/bats-assert.git
56+
RUN --mount=from=extractor,target=/src \
57+
bash /src/bats-core/install.sh /usr/local \
58+
&& cp -r /src/bats-support /usr/local/bats-support \
59+
&& cp -r /src/bats-assert /usr/local/bats-assert
4460

4561
# Update all tool alternatives to the correct version
4662
# and patch root's bashrc to include bash-completion

.mega-linter.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,7 @@ FILTER_REGEX_EXCLUDE: (CHANGELOG.md|package-lock.json)
2525
# hence the exclusion
2626
JSON_V8R_FILTER_REGEX_EXCLUDE: (\.vscode)
2727
REPOSITORY_TRIVY_ARGUMENTS: --ignorefile .github/linters/.trivyignore.yml
28+
# Temporarily disable hadolint errors as version v2.13.1
29+
# (https://github.com/hadolint/hadolint/issues/985) is
30+
# not yet part of megalinter
31+
DOCKERFILE_HADOLINT_DISABLE_ERRORS: true

0 commit comments

Comments
 (0)