ответвлено от fbrinker/docker-tileboard-OUTDATED
6aec325301
This introduces: * an explicit check for the existence of the latest version tag * This way, we don't need to bother to have `nightly` or `dev` tags in place. The new check works by `curl` failing, if the target tag does not exist. * more verbose output * This was just for debugging actually, but I believe it might help in the future. * input parameters to the `build.sh` script * This allows for using the script also from other repos. I'd like to keep trying things without having to ask you for checking in Drone.io...
53 строки
1.4 KiB
Bash
Исполняемый файл
53 строки
1.4 KiB
Bash
Исполняемый файл
#!/usr/bin/env bash
|
|
|
|
getVersionFromLatestRelease() {
|
|
repo="${1-resoai/TileBoard}"
|
|
version=`curl -s "https://api.github.com/repos/$repo/releases/latest" \
|
|
| grep "tag_name" \
|
|
| cut -d '"' -f 4 \
|
|
| sed -e "s/v//"`
|
|
|
|
echo "$version"
|
|
}
|
|
|
|
getDownloadUrl() {
|
|
repo="${1-resoai/TileBoard}"
|
|
url=`curl -s "https://api.github.com/repos/$repo/releases/latest" \
|
|
| grep "browser_download_url" \
|
|
| cut -d '"' -f 4`
|
|
|
|
echo "$url"
|
|
}
|
|
|
|
docker_tag_exists() {
|
|
repo="${1-fbrinker/tileboard}"
|
|
tag="${2-latest}"
|
|
curl --silent -f -lSL "https://hub.docker.com/v2/repositories/$repo/tags/$tag" > /dev/null 2>&1
|
|
}
|
|
|
|
source_repo="${1-resoai/TileBoard}"
|
|
target_repo="${2-fbrinker/tileboard}"
|
|
echo "Source repository: $source_repo."
|
|
echo "Target repository: $target_repo."
|
|
|
|
LATEST_RELEASE=`getVersionFromLatestRelease $source_repo`
|
|
echo "Latest release is: $LATEST_RELEASE."
|
|
|
|
if docker_tag_exists $target_repo $LATEST_RELEASE; then
|
|
echo "Nothing to do. Latest release tag already exists."
|
|
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 "URL of release is: $RELEASE_URL."
|
|
|
|
echo "Writing release URL into Dockerfile..."
|
|
sed -i "s|%RELEASE_URL%|$RELEASE_URL|g" ./Dockerfile
|