mirror of
https://github.com/FairwindsOps/polaris.git
synced 2026-02-14 18:09:54 +00:00
* Bumped to to 1.24 to fix vulnerability * Bumped to to 1.22.7 to fix vulnerability * Bumped to to 1.22.7 to fix vulnerability * Bumped to to 1.22.7 to fix vulnerability * Fixing issues * Fixing issues * Fixing issues * Fixing issues * Fixing issues * Fixing issues * Fixing issues
64 lines
2.8 KiB
Bash
Executable File
64 lines
2.8 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
# Wrap goreleaser by using envsubst on .goreleaser.yml,
|
|
# and creating a temporary git tag.
|
|
|
|
function cleanup {
|
|
if [ "${CIRCLE_TAG}" == "" ] ; then
|
|
echo "${this_script} deleting git tag ${temporary_git_tag} for goreleaser"
|
|
unset GORELEASER_CURRENT_TAG
|
|
git tag -d ${temporary_git_tag}
|
|
fi
|
|
}
|
|
|
|
set -eE # errexit and errtrace
|
|
trap 'cleanup' ERR
|
|
this_script="$(basename $0)"
|
|
hash envsubst
|
|
hash goreleaser
|
|
if [ "${TMPDIR}" == "" ] ; then
|
|
export TMPDIR="/tmp"
|
|
echo "${this_script} temporarily set the TMPDIR environment variable to ${TMPDIR}, used for a temporary GOBIN environment variable"
|
|
fi
|
|
|
|
export skip_feature_docker_tags=false
|
|
export skip_release=true
|
|
if [ "${CIRCLE_TAG}" == "" ] ; then
|
|
# Create a temporary tag for goreleaser, incrementing the last tag.
|
|
last_git_tag="$(git describe --tags --abbrev=0 2>/dev/null)"
|
|
if [ "${last_git_tag}" == "" ] ; then
|
|
echo "${this_script} is unable to determine the last git tag so a temporary tag can be created, using: git describe --tags --abbrev=0"
|
|
exit 1
|
|
fi
|
|
if [ "$(git config user.email)" == "" ] ; then
|
|
# git will use this env var as its user.email.
|
|
# git tag -m is used in case tags are manually pushed by accident,
|
|
# however git tag -m requires an email.
|
|
export EMAIL='goreleaser_ci@fairwinds.com'
|
|
echo "${this_script} using ${EMAIL} temporarily as the git user.email"
|
|
fi
|
|
temporary_git_tag=$(echo "${last_git_tag}" | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g')-rc
|
|
echo "${this_script} creating temporary git tag ${temporary_git_tag} for goreleaser, the last real tag is ${last_git_tag}"
|
|
# The -f is included to overwrite existing tags, perhaps from previous CI jobs.
|
|
git tag -f -m "temporary local tag for goreleaser" ${temporary_git_tag}
|
|
export GORELEASER_CURRENT_TAG=${temporary_git_tag}
|
|
# Use an adjusted git feature branch name as a docker tag.
|
|
export feature_docker_tag=$(echo "${CIRCLE_BRANCH:0:26}" | sed 's/[^a-zA-Z0-9]/-/g' | sed 's/-\+$//')
|
|
echo "${this_script} also using docker tag ${feature_docker_tag} since ${CIRCLE_BRANCH} is a feature branch"
|
|
else
|
|
export GORELEASER_CURRENT_TAG=${CIRCLE_TAG}
|
|
echo "${this_script} setting skip_release to false, and skip_feature_docker_tags to true, because CIRCLE_TAG is set"
|
|
export skip_feature_docker_tags=true
|
|
export skip_release=false
|
|
fi
|
|
|
|
echo "${this_script} using git tag ${GORELEASER_CURRENT_TAG}"
|
|
# Only substitute specific variables, as goreleaser uses shell variable syntax
|
|
# for its `signs` section `signature` and `artifact` variables.
|
|
cat .goreleaser.yml.envsubst |envsubst '${skip_release} ${skip_feature_docker_tags} ${feature_docker_tag}' >.goreleaser.yml
|
|
goreleaser --skip=sign $@
|
|
if [ $? -eq 0 ] ; then
|
|
echo "${this_script} removing the temporary .goreleaser.yml since goreleaser was successful"
|
|
rm .goreleaser.yml # Keep git clean for additional goreleaser runs
|
|
fi
|
|
cleanup
|