Created
September 30, 2020 16:54
-
-
Save valentijnscholten/014f851d769219d86e0177bc90e78043 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -x | |
set -e | |
function build_and_push_docker_image() { | |
# build everything first... | |
images=(nginx django) | |
for i in "${images[@]}"; do | |
docker build -t defectdojo/defectdojo-${i}:${RELEASENUMBER}${RC_SUFFIX} -f Dockerfile.${i} . | |
if [ -z $RC_SUFFIX ]; then | |
# need to also push to latest | |
docker build -t defectdojo/defectdojo-${i}:latest -f Dockerfile.${i} . | |
fi | |
done | |
# ...and then push all images | |
for i in "${images[@]}"; do | |
docker push defectdojo/defectdojo-${i}:${RELEASENUMBER}${RC_SUFFIX} | |
if [ -z $RC_SUFFIX ]; then | |
# need to also push to latest | |
docker push defectdojo/defectdojo-${i}:latest | |
fi | |
done | |
} | |
export RC_SUFFIX= # set to nothing if not a RC | |
while getopts ":r:b" opt; do | |
# r for release branch | |
case ${opt} in | |
r) | |
if [[ ! "${OPTARG}" =~ .*/[0-9]+\.[0-9]+\.[0-9]+ ]]; then | |
echo "wrong value to release" | |
exit 1 | |
fi | |
RELEASEBRANCH=$OPTARG | |
RELEASENUMBER=${OPTARG##*/} | |
;; | |
b) | |
RC_SUFFIX="-rc" | |
;; | |
:) | |
echo "Invalid option." | |
;; | |
esac | |
done | |
if ((OPTIND == 1)) | |
then | |
echo "You need to pass in at least the -r parameter, 'release/1.2.3'" | |
exit 1 | |
fi | |
shift $((OPTIND - 1)) | |
if [[ -z "$RELEASEBRANCH" ]] || [[ -z "$RELEASENUMBER" ]]; then | |
echo "Cannot proceed without release information." | |
fi | |
BRANCH=$(git rev-parse --abbrev-ref HEAD) | |
if [[ "$BRANCH" != "master" ]]; then | |
echo 'Abort: Release must happen from master (after everything has been merged in there and tagged in git)'; | |
exit 1; | |
fi | |
build_and_push_docker_image |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment