Skip to content

Commit 9bb37e0

Browse files
committed
Verify version
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
1 parent 1ba820a commit 9bb37e0

File tree

7 files changed

+261
-25
lines changed

7 files changed

+261
-25
lines changed

pkg/buildx/verify.Dockerfile

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
# limitations under the License.
1616

1717
ARG XX_VERSION="1.6.1"
18+
ARG PKG_VERSION
1819

1920
ARG DISTRO_TYPE="deb"
2021
ARG DISTRO_IMAGE="debian:bookworm"
@@ -34,6 +35,7 @@ ARG DISTRO_RELEASE
3435
ARG DISTRO_ID
3536
ARG DISTRO_SUITE
3637
ARG TARGETPLATFORM
38+
ARG PKG_VERSION
3739
RUN --mount=from=bin,target=/build <<EOT
3840
set -e
3941
targetplatform=$(xx-info os)_$(xx-info arch)
@@ -53,7 +55,16 @@ RUN --mount=from=bin,target=/build <<EOT
5355
)
5456
done
5557
set -x
56-
/usr/libexec/docker/cli-plugins/docker-buildx version
58+
actual_version=$(/usr/libexec/docker/cli-plugins/docker-buildx version | awk '{print $2}' | sed 's/^v//')
59+
echo "Detected version: $actual_version"
60+
if [ -n "$PKG_VERSION" ]; then
61+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
62+
if [ "$actual_version" != "$expected_version" ]; then
63+
echo "ERROR: Version mismatch! Expected: $expected_version, Got: $actual_version"
64+
exit 1
65+
fi
66+
echo "SUCCESS: Version verification passed"
67+
fi
5768
EOT
5869

5970
FROM base AS verify-rpm
@@ -62,6 +73,7 @@ ARG DISTRO_NAME
6273
ARG DISTRO_RELEASE
6374
ARG DISTRO_ID
6475
ARG DISTRO_SUITE
76+
ARG PKG_VERSION
6577
RUN --mount=type=bind,from=scripts,source=verify-rpm-init.sh,target=/usr/local/bin/verify-rpm-init \
6678
verify-rpm-init $DISTRO_NAME
6779
ARG TARGETPLATFORM
@@ -84,7 +96,16 @@ RUN --mount=from=bin,target=/build <<EOT
8496
)
8597
done
8698
set -x
87-
/usr/libexec/docker/cli-plugins/docker-buildx version
99+
actual_version=$(/usr/libexec/docker/cli-plugins/docker-buildx version | awk '{print $2}' | sed 's/^v//')
100+
echo "Detected version: $actual_version"
101+
if [ -n "$PKG_VERSION" ]; then
102+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
103+
if [ "$actual_version" != "$expected_version" ]; then
104+
echo "ERROR: Version mismatch! Expected: $expected_version, Got: $actual_version"
105+
exit 1
106+
fi
107+
echo "SUCCESS: Version verification passed"
108+
fi
88109
EOT
89110

90111
FROM base AS verify-static
@@ -94,6 +115,7 @@ ARG DISTRO_RELEASE
94115
ARG DISTRO_ID
95116
ARG DISTRO_SUITE
96117
ARG TARGETPLATFORM
118+
ARG PKG_VERSION
97119
RUN --mount=from=bin,target=/build <<EOT
98120
set -e
99121
targetplatform=$(xx-info os)_$(xx-info arch)
@@ -112,7 +134,16 @@ RUN --mount=from=bin,target=/build <<EOT
112134
)
113135
done
114136
set -x
115-
docker-buildx version
137+
actual_version=$(docker-buildx version | awk '{print $2}' | sed 's/^v//')
138+
echo "Detected version: $actual_version"
139+
if [ -n "$PKG_VERSION" ]; then
140+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
141+
if [ "$actual_version" != "$expected_version" ]; then
142+
echo "ERROR: Version mismatch! Expected: $expected_version, Got: $actual_version"
143+
exit 1
144+
fi
145+
echo "SUCCESS: Version verification passed"
146+
fi
116147
EOT
117148

118149
FROM verify-${DISTRO_TYPE}

pkg/compose/verify.Dockerfile

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
# limitations under the License.
1616

1717
ARG XX_VERSION="1.6.1"
18+
ARG PKG_VERSION
1819

1920
ARG DISTRO_TYPE="deb"
2021
ARG DISTRO_IMAGE="debian:bookworm"
@@ -34,6 +35,7 @@ ARG DISTRO_RELEASE
3435
ARG DISTRO_ID
3536
ARG DISTRO_SUITE
3637
ARG TARGETPLATFORM
38+
ARG PKG_VERSION
3739
RUN --mount=from=bin,target=/build <<EOT
3840
set -e
3941
targetplatform=$(xx-info os)_$(xx-info arch)
@@ -53,7 +55,16 @@ RUN --mount=from=bin,target=/build <<EOT
5355
)
5456
done
5557
set -x
56-
/usr/libexec/docker/cli-plugins/docker-compose version
58+
actual_version=$(/usr/libexec/docker/cli-plugins/docker-compose version | awk '{print $NF}' | sed 's/^v//')
59+
echo "Detected version: $actual_version"
60+
if [ -n "$PKG_VERSION" ]; then
61+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
62+
if [ "$actual_version" != "$expected_version" ]; then
63+
echo "ERROR: Version mismatch! Expected: $expected_version, Got: $actual_version"
64+
exit 1
65+
fi
66+
echo "SUCCESS: Version verification passed"
67+
fi
5768
EOT
5869

5970
FROM base AS verify-rpm
@@ -62,6 +73,7 @@ ARG DISTRO_NAME
6273
ARG DISTRO_RELEASE
6374
ARG DISTRO_ID
6475
ARG DISTRO_SUITE
76+
ARG PKG_VERSION
6577
RUN --mount=type=bind,from=scripts,source=verify-rpm-init.sh,target=/usr/local/bin/verify-rpm-init \
6678
verify-rpm-init $DISTRO_NAME
6779
ARG TARGETPLATFORM
@@ -84,7 +96,16 @@ RUN --mount=from=bin,target=/build <<EOT
8496
)
8597
done
8698
set -x
87-
/usr/libexec/docker/cli-plugins/docker-compose version
99+
actual_version=$(/usr/libexec/docker/cli-plugins/docker-compose version | awk '{print $NF}' | sed 's/^v//')
100+
echo "Detected version: $actual_version"
101+
if [ -n "$PKG_VERSION" ]; then
102+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
103+
if [ "$actual_version" != "$expected_version" ]; then
104+
echo "ERROR: Version mismatch! Expected: $expected_version, Got: $actual_version"
105+
exit 1
106+
fi
107+
echo "SUCCESS: Version verification passed"
108+
fi
88109
EOT
89110

90111
FROM base AS verify-static
@@ -94,6 +115,7 @@ ARG DISTRO_RELEASE
94115
ARG DISTRO_ID
95116
ARG DISTRO_SUITE
96117
ARG TARGETPLATFORM
118+
ARG PKG_VERSION
97119
RUN --mount=from=bin,target=/build <<EOT
98120
set -e
99121
targetplatform=$(xx-info os)_$(xx-info arch)
@@ -112,7 +134,16 @@ RUN --mount=from=bin,target=/build <<EOT
112134
)
113135
done
114136
set -x
115-
docker-compose version
137+
actual_version=$(docker-compose version | awk '{print $NF}' | sed 's/^v//')
138+
echo "Detected version: $actual_version"
139+
if [ -n "$PKG_VERSION" ]; then
140+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
141+
if [ "$actual_version" != "$expected_version" ]; then
142+
echo "ERROR: Version mismatch! Expected: $expected_version, Got: $actual_version"
143+
exit 1
144+
fi
145+
echo "SUCCESS: Version verification passed"
146+
fi
116147
EOT
117148

118149
FROM verify-${DISTRO_TYPE}

pkg/containerd/verify.Dockerfile

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
# limitations under the License.
1616

1717
ARG XX_VERSION="1.6.1"
18+
ARG PKG_VERSION
1819

1920
ARG DISTRO_TYPE="deb"
2021
ARG DISTRO_IMAGE="debian:bookworm"
@@ -34,6 +35,7 @@ ARG DISTRO_RELEASE
3435
ARG DISTRO_ID
3536
ARG DISTRO_SUITE
3637
ARG TARGETPLATFORM
38+
ARG PKG_VERSION
3739
RUN --mount=from=bin,target=/build <<EOT
3840
set -e
3941
targetplatform=$(xx-info os)_$(xx-info arch)
@@ -54,8 +56,17 @@ RUN --mount=from=bin,target=/build <<EOT
5456
done
5557
set -x
5658
runc --version
57-
containerd --version
59+
actual_version=$(containerd --version | sed 's/containerd containerd.io //' | cut -d' ' -f1)
60+
echo "Detected containerd version: $actual_version"
5861
containerd-shim-runc-v2 -v
62+
if [ -n "$PKG_VERSION" ]; then
63+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
64+
if [ "$actual_version" != "$expected_version" ]; then
65+
echo "ERROR: Containerd version mismatch! Expected: $expected_version, Got: $actual_version"
66+
exit 1
67+
fi
68+
echo "SUCCESS: Containerd version verification passed"
69+
fi
5970
EOT
6071

6172
FROM base AS verify-rpm
@@ -64,6 +75,7 @@ ARG DISTRO_NAME
6475
ARG DISTRO_RELEASE
6576
ARG DISTRO_ID
6677
ARG DISTRO_SUITE
78+
ARG PKG_VERSION
6779
RUN --mount=type=bind,from=scripts,source=verify-rpm-init.sh,target=/usr/local/bin/verify-rpm-init \
6880
verify-rpm-init $DISTRO_NAME
6981
ARG TARGETPLATFORM
@@ -87,8 +99,17 @@ RUN --mount=from=bin,target=/build <<EOT
8799
done
88100
set -x
89101
runc --version
90-
containerd --version
102+
actual_version=$(containerd --version | sed 's/containerd containerd.io //' | cut -d' ' -f1)
103+
echo "Detected containerd version: $actual_version"
91104
containerd-shim-runc-v2 -v
105+
if [ -n "$PKG_VERSION" ]; then
106+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
107+
if [ "$actual_version" != "$expected_version" ]; then
108+
echo "ERROR: Containerd version mismatch! Expected: $expected_version, Got: $actual_version"
109+
exit 1
110+
fi
111+
echo "SUCCESS: Containerd version verification passed"
112+
fi
92113
EOT
93114

94115
FROM base AS verify-static
@@ -98,6 +119,7 @@ ARG DISTRO_RELEASE
98119
ARG DISTRO_ID
99120
ARG DISTRO_SUITE
100121
ARG TARGETPLATFORM
122+
ARG PKG_VERSION
101123
RUN --mount=from=bin,target=/build <<EOT
102124
set -e
103125
targetplatform=$(xx-info os)_$(xx-info arch)
@@ -117,8 +139,17 @@ RUN --mount=from=bin,target=/build <<EOT
117139
done
118140
set -x
119141
runc --version
120-
containerd --version
142+
actual_version=$(containerd --version | sed 's/containerd containerd.io //' | cut -d' ' -f1)
143+
echo "Detected containerd version: $actual_version"
121144
containerd-shim-runc-v2 -v
145+
if [ -n "$PKG_VERSION" ]; then
146+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
147+
if [ "$actual_version" != "$expected_version" ]; then
148+
echo "ERROR: Containerd version mismatch! Expected: $expected_version, Got: $actual_version"
149+
exit 1
150+
fi
151+
echo "SUCCESS: Containerd version verification passed"
152+
fi
122153
EOT
123154

124155
FROM verify-${DISTRO_TYPE}

pkg/credential-helpers/verify.Dockerfile

Lines changed: 57 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
# limitations under the License.
1616

1717
ARG XX_VERSION="1.6.1"
18+
ARG PKG_VERSION
1819

1920
ARG DISTRO_TYPE="deb"
2021
ARG DISTRO_IMAGE="debian:bookworm"
@@ -34,6 +35,7 @@ ARG DISTRO_RELEASE
3435
ARG DISTRO_ID
3536
ARG DISTRO_SUITE
3637
ARG TARGETPLATFORM
38+
ARG PKG_VERSION
3739
RUN --mount=from=bin,target=/build <<EOT
3840
set -e
3941
targetplatform=$(xx-info os)_$(xx-info arch)
@@ -53,8 +55,22 @@ RUN --mount=from=bin,target=/build <<EOT
5355
)
5456
done
5557
set -x
56-
docker-credential-pass version
57-
docker-credential-secretservice version
58+
pass_version=$(docker-credential-pass version)
59+
secretservice_version=$(docker-credential-secretservice version)
60+
echo "Detected docker-credential-pass version: $pass_version"
61+
echo "Detected docker-credential-secretservice version: $secretservice_version"
62+
if [ -n "$PKG_VERSION" ]; then
63+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
64+
if [ "$pass_version" != "$expected_version" ]; then
65+
echo "ERROR: docker-credential-pass version mismatch! Expected: $expected_version, Got: $pass_version"
66+
exit 1
67+
fi
68+
if [ "$secretservice_version" != "$expected_version" ]; then
69+
echo "ERROR: docker-credential-secretservice version mismatch! Expected: $expected_version, Got: $secretservice_version"
70+
exit 1
71+
fi
72+
echo "SUCCESS: Credential helpers version verification passed"
73+
fi
5874
EOT
5975

6076
FROM base AS verify-rpm
@@ -63,6 +79,7 @@ ARG DISTRO_NAME
6379
ARG DISTRO_RELEASE
6480
ARG DISTRO_ID
6581
ARG DISTRO_SUITE
82+
ARG PKG_VERSION
6683
RUN --mount=type=bind,from=scripts,source=verify-rpm-init.sh,target=/usr/local/bin/verify-rpm-init \
6784
verify-rpm-init $DISTRO_NAME
6885
ARG TARGETPLATFORM
@@ -92,12 +109,30 @@ RUN --mount=from=bin,target=/build <<EOT
92109
)
93110
done
94111
set -x
95-
docker-credential-secretservice version
112+
secretservice_version=$(docker-credential-secretservice version)
113+
echo "Detected docker-credential-secretservice version: $secretservice_version"
96114
case "$DISTRO_NAME" in
97115
# FIXME: skip pass credential helper smoke test for some distros
98-
centos9|centos10|oraclelinux9|rhel*) ;;
99-
*) docker-credential-pass version ;;
116+
centos9|centos10|oraclelinux9|rhel*)
117+
pass_version=""
118+
;;
119+
*)
120+
pass_version=$(docker-credential-pass version)
121+
echo "Detected docker-credential-pass version: $pass_version"
122+
;;
100123
esac
124+
if [ -n "$PKG_VERSION" ]; then
125+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
126+
if [ "$secretservice_version" != "$expected_version" ]; then
127+
echo "ERROR: docker-credential-secretservice version mismatch! Expected: $expected_version, Got: $secretservice_version"
128+
exit 1
129+
fi
130+
if [ -n "$pass_version" ] && [ "$pass_version" != "$expected_version" ]; then
131+
echo "ERROR: docker-credential-pass version mismatch! Expected: $expected_version, Got: $pass_version"
132+
exit 1
133+
fi
134+
echo "SUCCESS: Credential helpers version verification passed"
135+
fi
101136
EOT
102137

103138
FROM base AS verify-static
@@ -107,6 +142,7 @@ ARG DISTRO_RELEASE
107142
ARG DISTRO_ID
108143
ARG DISTRO_SUITE
109144
ARG TARGETPLATFORM
145+
ARG PKG_VERSION
110146
RUN --mount=from=bin,target=/build <<EOT
111147
set -e
112148
targetplatform=$(xx-info os)_$(xx-info arch)
@@ -125,8 +161,22 @@ RUN --mount=from=bin,target=/build <<EOT
125161
)
126162
done
127163
set -x
128-
docker-credential-pass version
129-
docker-credential-secretservice version
164+
pass_version=$(docker-credential-pass version)
165+
secretservice_version=$(docker-credential-secretservice version)
166+
echo "Detected docker-credential-pass version: $pass_version"
167+
echo "Detected docker-credential-secretservice version: $secretservice_version"
168+
if [ -n "$PKG_VERSION" ]; then
169+
expected_version=$(echo "$PKG_VERSION" | sed 's/^v//')
170+
if [ "$pass_version" != "$expected_version" ]; then
171+
echo "ERROR: docker-credential-pass version mismatch! Expected: $expected_version, Got: $pass_version"
172+
exit 1
173+
fi
174+
if [ "$secretservice_version" != "$expected_version" ]; then
175+
echo "ERROR: docker-credential-secretservice version mismatch! Expected: $expected_version, Got: $secretservice_version"
176+
exit 1
177+
fi
178+
echo "SUCCESS: Credential helpers version verification passed"
179+
fi
130180
EOT
131181

132182
FROM verify-${DISTRO_TYPE}

0 commit comments

Comments
 (0)