Skip to content

Commit cee39d0

Browse files
committed
Merge bitcoin/bitcoin#27793: ci: label docker images and prune dangling images selectively
e44c574 ci: always prune all dangling bitcoin-ci-test images (stickies-v) ce16997 ci: add label to docker images (stickies-v) Pull request description: Follow-up from bitcoin/bitcoin#27777 (comment). Labeling the docker images produced by the CI allows us/the user to apply batch operations to all images (including dangling ones) produced by the ci without affecting other, non-bitcoin-ci images. With labeling, we can safely always prune dangling bitcoin-ci-test images without checking for `RESTART_CI_DOCKER_BEFORE_RUN`, which we enable on our persistent runners. ACKs for top commit: fanquake: utACK e44c574 Tree-SHA512: 1009fb1be78fbc80b5341ba92eac2991e77d050e1ab6048d1d9a65af73413a6be7afc1e1c764eb3f347f363af31245b93fdb38f6ac016d775aad4a0f36e4c98f
2 parents 78b7e95 + e44c574 commit cee39d0

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

ci/test/02_run_container.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
66

77
export LC_ALL=C.UTF-8
8+
export CI_IMAGE_LABEL="bitcoin-ci-test"
89

910
set -ex
1011

@@ -19,6 +20,7 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
1920
--file "${BASE_READ_ONLY_DIR}/ci/test_imagefile" \
2021
--build-arg "CI_IMAGE_NAME_TAG=${CI_IMAGE_NAME_TAG}" \
2122
--build-arg "FILE_ENV=${FILE_ENV}" \
23+
--label="${CI_IMAGE_LABEL}" \
2224
--tag="${CONTAINER_NAME}" \
2325
"${BASE_READ_ONLY_DIR}"
2426
docker volume create "${CONTAINER_NAME}_ccache" || true
@@ -30,9 +32,14 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
3032
if [ -n "${RESTART_CI_DOCKER_BEFORE_RUN}" ] ; then
3133
echo "Restart docker before run to stop and clear all containers started with --rm"
3234
podman container rm --force --all # Similar to "systemctl restart docker"
35+
36+
# Still prune everything in case the filtered pruning doesn't work, or if labels were not set
37+
# on a previous run. Belt and suspenders approach, should be fine to remove in the future.
3338
echo "Prune all dangling images"
3439
docker image prune --force
3540
fi
41+
echo "Prune all dangling $CI_IMAGE_LABEL images"
42+
docker image prune --force --filter "label=$CI_IMAGE_LABEL"
3643

3744
# shellcheck disable=SC2086
3845
CI_CONTAINER_ID=$(docker run --cap-add LINUX_IMMUTABLE $CI_CONTAINER_CAP --rm --interactive --detach --tty \

0 commit comments

Comments
 (0)