derivado de fbrinker/docker-tileboard-OUTDATED
53 linhas
1.4 KiB
Bash
Ficheiro executável
53 linhas
1.4 KiB
Bash
Ficheiro executável
#!/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}"
|
|
docker_repo="${2-fbrinker/tileboard}"
|
|
echo "Source repository: $source_repo."
|
|
echo "Docker repository: $docker_repo."
|
|
|
|
LATEST_RELEASE=`getVersionFromLatestRelease $source_repo`
|
|
echo "Latest release is: $LATEST_RELEASE."
|
|
|
|
if docker_tag_exists $docker_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
|