atdalīts no 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 rindas
1.4 KiB
Bash
Izpildāmais fails
53 rindas
1.4 KiB
Bash
Izpildāmais fails
#!/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
|