44ARG TEST_BASE_TYPE=alpine
55ARG TEST_BASE_IMAGE=${TEST_BASE_TYPE}
66ARG TEST_WITH_DARWIN=false
7+ ARG BATS_VERSION=v1.8.2
78
89# build prepares the sources
910FROM --platform=$BUILDPLATFORM alpine AS build
@@ -17,12 +18,16 @@ RUN ln -s xx-cc /out/xx-clang && \
1718FROM scratch AS xx
1819COPY --from=build /out/ /usr/bin/
1920
21+ FROM scratch AS bats-src
22+ ARG BATS_VERSION
23+ ADD "https://github.com/bats-core/bats-core.git#$BATS_VERSION" .
24+
2025FROM --platform=$BUILDPLATFORM tonistiigi/bats-assert AS bats-assert
2126
2227FROM ${TEST_BASE_IMAGE} AS test-base-alpine
2328RUN --mount=type=cache,target=/pkg-cache \
2429 ln -s /pkg-cache /etc/apk/cache && \
25- apk add bats vim
30+ apk add bash vim
2631WORKDIR /work
2732
2833FROM ${TEST_BASE_IMAGE} AS test-base-debian
@@ -31,7 +36,7 @@ RUN --mount=type=cache,target=/pkg-cache \
3136 ln -s /pkg-cache /var/cache/apt/archives && \
3237 rm /etc/apt/apt.conf.d/docker-clean && \
3338 echo 'Binary::apt::APT::Keep-Downloaded-Packages "1";' > /etc/apt/apt.conf.d/keep-downloads && \
34- apt update && apt install --no-install-recommends -y bats vim
39+ apt update && apt install --no-install-recommends -y bash vim
3540WORKDIR /work
3641
3742FROM ${TEST_BASE_IMAGE} AS test-base-rhel
@@ -56,15 +61,17 @@ if ! yum install -y epel-release; then
5661 esac
5762fi
5863if command -v dnf >/dev/null 2>/dev/null; then
59- dnf install -y bats vim
64+ dnf install -y bash vim
6065else
61- yum install -y bats vim
66+ yum install -y bash vim
6267fi
6368EOT
6469WORKDIR /work
6570
6671FROM test-base-${TEST_BASE_TYPE} AS test-base
6772ADD --chmod=755 https://raw.githubusercontent.com/fsaintjacques/semver-tool/3.4.0/src/semver /usr/bin/semver
73+ COPY --from=bats-src / /opt/bats
74+ RUN /opt/bats/install.sh /usr && bats --version
6875COPY --from=bats-assert . .
6976COPY --from=xx / /
7077
0 commit comments