Skip to content

Commit 368ee2b

Browse files
committed
fix(ci): preserve original docker version line when not upgrading
Keep the full original line (including build hash) from docker-versions.txt when the runner's version is not newer, instead of writing a hardcoded "build unknown" string.
1 parent b7bdbe2 commit 368ee2b

1 file changed

Lines changed: 19 additions & 14 deletions

File tree

.github/workflows/github-docker-registry-push.yml

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -69,38 +69,43 @@ jobs:
6969
[ "$(printf '%s\n%s' "$1" "$2" | sort -V | tail -n1)" = "$1" ] && [ "$1" != "$2" ]
7070
}
7171
72-
# Extract current versions from docker-versions.txt
73-
CURRENT_DOCKER=$(grep "Docker version" docker-versions.txt | cut -d ' ' -f 4 | cut -d ',' -f 1)
74-
CURRENT_COMPOSE=$(grep "Docker Compose version" docker-versions.txt | cut -d ' ' -f 5 | tr -d 'v')
72+
# Save current lines from docker-versions.txt
73+
CURRENT_DOCKER_LINE=$(grep "Docker version" docker-versions.txt)
74+
CURRENT_COMPOSE_LINE=$(grep "Docker Compose version" docker-versions.txt)
7575
76-
# Get runner versions
77-
RUNNER_DOCKER=$(docker --version | cut -d ' ' -f 3 | cut -d ',' -f 1)
78-
RUNNER_COMPOSE=$(docker compose version | cut -d ' ' -f 4 | tr -d 'v')
76+
# Extract semver from current file
77+
CURRENT_DOCKER=$(echo "$CURRENT_DOCKER_LINE" | cut -d ' ' -f 4 | cut -d ',' -f 1)
78+
CURRENT_COMPOSE=$(echo "$CURRENT_COMPOSE_LINE" | cut -d ' ' -f 5 | tr -d 'v')
79+
80+
# Get runner versions (full output and semver)
81+
RUNNER_DOCKER_FULL="$(docker --version)"
82+
RUNNER_COMPOSE_FULL="$(docker compose version)"
83+
RUNNER_DOCKER=$(echo "$RUNNER_DOCKER_FULL" | cut -d ' ' -f 3 | cut -d ',' -f 1)
84+
RUNNER_COMPOSE=$(echo "$RUNNER_COMPOSE_FULL" | cut -d ' ' -f 4 | tr -d 'v')
7985
8086
echo "Current: Docker $CURRENT_DOCKER, Compose $CURRENT_COMPOSE"
8187
echo "Runner: Docker $RUNNER_DOCKER, Compose $RUNNER_COMPOSE"
8288
83-
# Only update if runner version is strictly newer
84-
DOCKER_VERSION="${CURRENT_DOCKER}"
85-
COMPOSE_VERSION="${CURRENT_COMPOSE}"
86-
89+
# Only update if runner version is strictly newer, otherwise keep existing line
8790
if version_gt "$RUNNER_DOCKER" "$CURRENT_DOCKER"; then
8891
echo "Docker version $RUNNER_DOCKER is newer than $CURRENT_DOCKER, updating"
89-
DOCKER_VERSION="$RUNNER_DOCKER"
92+
DOCKER_LINE="- $RUNNER_DOCKER_FULL"
9093
else
9194
echo "Docker version $RUNNER_DOCKER is not newer than $CURRENT_DOCKER, keeping current"
95+
DOCKER_LINE="$CURRENT_DOCKER_LINE"
9296
fi
9397
9498
if version_gt "$RUNNER_COMPOSE" "$CURRENT_COMPOSE"; then
9599
echo "Docker Compose version $RUNNER_COMPOSE is newer than $CURRENT_COMPOSE, updating"
96-
COMPOSE_VERSION="$RUNNER_COMPOSE"
100+
COMPOSE_LINE="- $RUNNER_COMPOSE_FULL"
97101
else
98102
echo "Docker Compose version $RUNNER_COMPOSE is not newer than $CURRENT_COMPOSE, keeping current"
103+
COMPOSE_LINE="$CURRENT_COMPOSE_LINE"
99104
fi
100105
101106
# Write versions to file
102-
echo "- Docker version ${DOCKER_VERSION}, build unknown" > docker-versions.txt
103-
echo "- Docker Compose version v${COMPOSE_VERSION}" >> docker-versions.txt
107+
echo "$DOCKER_LINE" > docker-versions.txt
108+
echo "$COMPOSE_LINE" >> docker-versions.txt
104109
105110
# Only add the specific file we want
106111
git add docker-versions.txt

0 commit comments

Comments
 (0)