48 строки
1.2 KiB
Bash
Исполняемый файл
48 строки
1.2 KiB
Bash
Исполняемый файл
#!/usr/bin/env bash
|
|
|
|
getVersionFromLatestRelease() {
|
|
version=`curl -s "https://api.github.com/repos/resoai/TileBoard/releases/latest" \
|
|
| grep "tag_name" \
|
|
| cut -d '"' -f 4 \
|
|
| sed -e "s/v//"`
|
|
|
|
echo "$version"
|
|
}
|
|
|
|
getDownloadUrl() {
|
|
url=`curl -s "https://api.github.com/repos/resoai/TileBoard/releases/latest" \
|
|
| grep "browser_download_url" \
|
|
| cut -d '"' -f 4`
|
|
|
|
echo "$url"
|
|
}
|
|
|
|
getLatestPublishedTag() {
|
|
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]}
|
|
MINOR=${SEMVER[0]}.${SEMVER[1]}
|
|
PATCH=$LATEST_RELEASE
|
|
|
|
echo "latest,$MAJOR,$MINOR,$PATCH" > .tags
|
|
|
|
RELEASE_URL=`getDownloadUrl`
|
|
|
|
echo "Writing $RELEASE_URL into Dockerfile..."
|
|
sed -i "s|%RELEASE_URL%|$RELEASE_URL|g" ./Dockerfile
|