Add published version/tag check to skip docker builds
All checks were successful
continuous-integration/drone Build is passing
All checks were successful
continuous-integration/drone Build is passing
This commit is contained in:
parent
aacbc5025f
commit
2c4c532dff
@ -7,11 +7,11 @@ steps:
|
|||||||
- name: build
|
- name: build
|
||||||
image: alpine
|
image: alpine
|
||||||
commands:
|
commands:
|
||||||
- apk update && apk add bash grep sed curl unzip
|
- apk update && apk add bash grep sed curl unzip jq
|
||||||
- chmod +x ./build.sh
|
- chmod +x ./build.sh
|
||||||
- ./build.sh
|
- ./build.sh
|
||||||
|
|
||||||
- name: docker
|
- name: docker
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
settings:
|
settings:
|
||||||
repo: fbrinker/tileboard
|
repo: fbrinker/tileboard
|
||||||
@ -19,7 +19,7 @@ steps:
|
|||||||
from_secret: docker_username
|
from_secret: docker_username
|
||||||
password:
|
password:
|
||||||
from_secret: docker_password
|
from_secret: docker_password
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- master
|
- master
|
27
build.sh
Normal file → Executable file
27
build.sh
Normal file → Executable file
@ -10,20 +10,35 @@ getVersionFromLatestRelease() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
downloadLatestRelease() {
|
downloadLatestRelease() {
|
||||||
URL=`curl -s "https://api.github.com/repos/resoai/TileBoard/releases/latest" \
|
url=`curl -s "https://api.github.com/repos/resoai/TileBoard/releases/latest" \
|
||||||
| grep "browser_download_url" \
|
| grep "browser_download_url" \
|
||||||
| cut -d '"' -f 4`
|
| cut -d '"' -f 4`
|
||||||
echo "Url: $URL"
|
echo "Url: $url"
|
||||||
|
|
||||||
curl -sL -o $1 ${URL}
|
curl -sL -o $1 ${url}
|
||||||
}
|
}
|
||||||
|
|
||||||
LATEST=`getVersionFromLatestRelease`
|
getLatestPublishedTag() {
|
||||||
SEMVER=( ${LATEST//./ } )
|
latest_tag=`curl -s "https://hub.docker.com/v2/repositories/fbrinker/tileboard/tags?page_size=1" \
|
||||||
|
| jq -r ".results[0].name"`
|
||||||
|
|
||||||
|
echo "$latest_tag"
|
||||||
|
}
|
||||||
|
|
||||||
|
LATEST_RELEASE=`getVersionFromLatestRelease`
|
||||||
|
LATEST_TAG=`getLatestPublishedTag`
|
||||||
|
|
||||||
|
if [ "$LATEST_RELEASE" = "$LATEST_TAG" ]; then
|
||||||
|
echo "Nothing to do. Versions already match."
|
||||||
|
echo "Release: $LATEST_RELEASE"
|
||||||
|
echo "Tag: $LATEST_TAG"
|
||||||
|
exit 78 # drone.io exit code to stop but success the pipeline
|
||||||
|
fi
|
||||||
|
|
||||||
|
SEMVER=( ${LATEST_RELEASE//./ } )
|
||||||
MAJOR=${SEMVER[0]}
|
MAJOR=${SEMVER[0]}
|
||||||
MINOR=${SEMVER[0]}.${SEMVER[1]}
|
MINOR=${SEMVER[0]}.${SEMVER[1]}
|
||||||
PATCH=$LATEST
|
PATCH=$LATEST_RELEASE
|
||||||
|
|
||||||
echo "latest,$MAJOR,$MINOR,$PATCH" > .tags
|
echo "latest,$MAJOR,$MINOR,$PATCH" > .tags
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user