mirror of
https://github.com/jlengrand/bugsink.git
synced 2026-03-10 08:01:17 +00:00
Docker image building: only tag as 'latest' when it's actually the latest
tag '1' is not likewise corrected (yet); assumed to be basically unused
This commit is contained in:
@@ -21,9 +21,44 @@ if [[ $WHEEL_FILE == *"dev"* ]]; then
|
|||||||
TAGS="-t bugsink/bugsink:dev"
|
TAGS="-t bugsink/bugsink:dev"
|
||||||
else
|
else
|
||||||
VERSION=$(echo $WHEEL_FILE | cut -d'-' -f2)
|
VERSION=$(echo $WHEEL_FILE | cut -d'-' -f2)
|
||||||
TAGS="-t bugsink/bugsink:$VERSION -t bugsink/bugsink:$(echo $VERSION | awk -F. '{print $1"."$2}') -t bugsink/bugsink:$(echo $VERSION | awk -F. '{print $1}') -t bugsink/bugsink:latest -t bugsink/bugsink"
|
|
||||||
echo "This is a non-dev version, tags will be added: $TAGS"
|
REPO="bugsink/bugsink"
|
||||||
|
|
||||||
|
# numeric tags for this build
|
||||||
|
TAG_LIST=(
|
||||||
|
"$REPO:$VERSION"
|
||||||
|
"$REPO:$(echo "$VERSION" | awk -F. '{print $1"."$2}')"
|
||||||
|
"$REPO:$(echo "$VERSION" | awk -F. '{print $1}')"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Find highest published semver on Docker Hub (public repo; no auth needed)
|
||||||
|
HIGHEST_PUBLISHED=$(
|
||||||
|
curl -fsSL "https://hub.docker.com/v2/repositories/${REPO}/tags?page_size=100" \
|
||||||
|
| grep -o '"name":"[^"]*"' \
|
||||||
|
| cut -d'"' -f4 \
|
||||||
|
| grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' \
|
||||||
|
| sort -V \
|
||||||
|
| tail -n1
|
||||||
|
)
|
||||||
|
|
||||||
|
# Decide whether we’re allowed to move :latest forward
|
||||||
|
ADD_LATEST=true
|
||||||
|
if [[ -n "$HIGHEST_PUBLISHED" ]]; then
|
||||||
|
# if VERSION < HIGHEST_PUBLISHED, do NOT set :latest
|
||||||
|
top=$(printf '%s\n%s\n' "$HIGHEST_PUBLISHED" "$VERSION" | sort -V | tail -n1)
|
||||||
|
if [[ "$top" != "$VERSION" ]]; then
|
||||||
|
ADD_LATEST=false
|
||||||
|
echo "Not tagging :latest: $VERSION < already published $HIGHEST_PUBLISHED"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build TAGS string
|
||||||
|
TAGS=""
|
||||||
|
for t in "${TAG_LIST[@]}"; do TAGS+=" -t $t"; done
|
||||||
|
if $ADD_LATEST; then
|
||||||
|
TAGS+=" -t $REPO:latest -t $REPO"
|
||||||
|
echo "Tagging as latest: $VERSION ≥ ${HIGHEST_PUBLISHED:-<none>}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
docker build -f Dockerfile.fromwheel --build-arg WHEEL_FILE=$WHEEL_FILE $TAGS .
|
docker build -f Dockerfile.fromwheel --build-arg WHEEL_FILE=$WHEEL_FILE $TAGS .
|
||||||
|
|||||||
@@ -21,8 +21,44 @@ if [[ $WHEEL_FILE == *"dev"* ]]; then
|
|||||||
TAGS="-t bugsink/bugsink:dev"
|
TAGS="-t bugsink/bugsink:dev"
|
||||||
else
|
else
|
||||||
VERSION=$(echo $WHEEL_FILE | cut -d'-' -f2)
|
VERSION=$(echo $WHEEL_FILE | cut -d'-' -f2)
|
||||||
TAGS="-t bugsink/bugsink:$VERSION -t bugsink/bugsink:$(echo $VERSION | awk -F. '{print $1"."$2}') -t bugsink/bugsink:$(echo $VERSION | awk -F. '{print $1}') -t bugsink/bugsink:latest -t bugsink/bugsink"
|
|
||||||
echo "This is a non-dev version, tags will be added: $TAGS"
|
REPO="bugsink/bugsink"
|
||||||
|
|
||||||
|
# numeric tags for this build
|
||||||
|
TAG_LIST=(
|
||||||
|
"$REPO:$VERSION"
|
||||||
|
"$REPO:$(echo "$VERSION" | awk -F. '{print $1"."$2}')"
|
||||||
|
"$REPO:$(echo "$VERSION" | awk -F. '{print $1}')"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Find highest published semver on Docker Hub (public repo; no auth needed)
|
||||||
|
HIGHEST_PUBLISHED=$(
|
||||||
|
curl -fsSL "https://hub.docker.com/v2/repositories/${REPO}/tags?page_size=100" \
|
||||||
|
| grep -o '"name":"[^"]*"' \
|
||||||
|
| cut -d'"' -f4 \
|
||||||
|
| grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' \
|
||||||
|
| sort -V \
|
||||||
|
| tail -n1
|
||||||
|
)
|
||||||
|
|
||||||
|
# Decide whether we’re allowed to move :latest forward
|
||||||
|
ADD_LATEST=true
|
||||||
|
if [[ -n "$HIGHEST_PUBLISHED" ]]; then
|
||||||
|
# if VERSION < HIGHEST_PUBLISHED, do NOT set :latest
|
||||||
|
top=$(printf '%s\n%s\n' "$HIGHEST_PUBLISHED" "$VERSION" | sort -V | tail -n1)
|
||||||
|
if [[ "$top" != "$VERSION" ]]; then
|
||||||
|
ADD_LATEST=false
|
||||||
|
echo "Not tagging :latest: $VERSION < already published $HIGHEST_PUBLISHED"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build TAGS string
|
||||||
|
TAGS=""
|
||||||
|
for t in "${TAG_LIST[@]}"; do TAGS+=" -t $t"; done
|
||||||
|
if $ADD_LATEST; then
|
||||||
|
TAGS+=" -t $REPO:latest -t $REPO"
|
||||||
|
echo "Tagging as latest: $VERSION ≥ ${HIGHEST_PUBLISHED:-<none>}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# Extensions to include
|
# Extensions to include
|
||||||
EXT_REGEX='\.(py|js|ts|sh|md|txt|html|css)$'
|
EXT_REGEX='\.(py|js|ts|sh|md|txt|html|css|bash)$'
|
||||||
|
|
||||||
# Detect sed flavor
|
# Detect sed flavor
|
||||||
if sed --version >/dev/null 2>&1; then
|
if sed --version >/dev/null 2>&1; then
|
||||||
|
|||||||
Reference in New Issue
Block a user