Files
my-rook-config/tests/scripts/build-release.sh
T
Alexander Trost 99f5c9c713 build: fix publish docs step
The `DOCS_GIT_REPO` var needs to be exported when not set through a `.env`
file, as otherwise it is not propagated to commands run in the
`build-release.sh` script.

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2023-04-04 18:50:02 +02:00

79 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -ex
#############
# FUNCTIONS #
#############
MAKE='make --debug=v --output-sync'
function build() {
$MAKE build.all
# quick check that go modules are tidied
$MAKE mod.check
}
function publish() {
build
$MAKE -C build/release build BRANCH_NAME=${BRANCH_NAME} TAG_WITH_SUFFIX=${TAG_WITH_SUFFIX} GIT_API_TOKEN=${GIT_API_TOKEN}
git status &
git diff &
$MAKE -C build/release publish BRANCH_NAME=${BRANCH_NAME} TAG_WITH_SUFFIX=${TAG_WITH_SUFFIX} AWS_ACCESS_KEY_ID=${AWS_USR} AWS_SECRET_ACCESS_KEY=${AWS_PSW} GIT_API_TOKEN=${GIT_API_TOKEN}
}
function promote() {
# automatically promote the master builds
echo "Promoting from branch ${BRANCH_NAME}"
$MAKE -C build/release promote BRANCH_NAME=${BRANCH_NAME} TAG_WITH_SUFFIX=${TAG_WITH_SUFFIX} CHANNEL=${CHANNEL} AWS_ACCESS_KEY_ID=${AWS_USR} AWS_SECRET_ACCESS_KEY=${AWS_PSW}
}
#############
# MAIN #
#############
# Load dot env file if available
if [ -f .env ]; then
# shellcheck disable=SC2046
export $(grep -v '^#' .env | xargs -d '\n')
fi
# Use Git access token for accessing the docs repo if set
# shellcheck disable=SC2034
export DOCS_GIT_REPO="${DOCS_GIT_REPO:-git@github.com:rook/rook.github.io.git}"
if [ -n "${GIT_API_TOKEN}" ]; then
DOCS_GIT_REPO="${DOCS_GIT_REPO//git@/}"
DOCS_GIT_REPO="${DOCS_GIT_REPO//:/\/}"
export DOCS_GIT_REPO="https://${GIT_API_TOKEN}@${DOCS_GIT_REPO}"
fi
SHOULD_PROMOTE=true
if [[ ${GITHUB_REF} =~ master ]]; then
echo "Publishing from master"
CHANNEL=master
else
echo "Tagging with suffix for release and tagged builds"
TAG_WITH_SUFFIX=true
CHANNEL=release
# If a tag, find the source release branch
if [[ $BRANCH_NAME = v* ]]; then
TAG_NAME=${BRANCH_NAME}
BRANCH_NAME=$(git branch -r --contain refs/tags/${BRANCH_NAME} | grep "origin/release-." | sed 's/origin\///' | xargs)
if [[ $BRANCH_NAME = "" ]]; then
echo "Branch name not found in tag $TAG_NAME"
exit 1
fi
echo "Publishing tag ${TAG_NAME} in branch ${BRANCH_NAME}"
else
echo "Publishing from release branch ${BRANCH_NAME}"
SHOULD_PROMOTE=false
fi
fi
publish
if [[ "$SHOULD_PROMOTE" = true ]]; then
promote
fi