Add support to build and deploy postorius containers. (#251)

* Add support to build and deploy postorius containers.

- Also, simplify the deployment script.

* Use curly braces instead of round.
This commit is contained in:
Abhilash Raj
2018-06-22 17:32:23 -07:00
committed by GitHub
parent ccf690b0a0
commit 3b71d5e1dd
2 changed files with 62 additions and 44 deletions

View File

@@ -1,12 +1,18 @@
#! /bin/bash
deploy() {
REG_URL=${REGISTRY}_URL
REG_USER=${REGISTRY}_USER
REG_PASS=${REGISTRY}_PASS
docker login -u ${!REG_USER} -p ${!REG_PASS} ${!REG_URL}
docker push ${!REG_URL}/maxking/mailman-web
docker push ${!REG_URL}/maxking/mailman-core
USER=maxking
deploy(URL, TAG, PASSWORD) {
# Tag the containers correctly.
docker tag maxking/mailman-core "$URL/maxking/mailman-core:$TAG"
docker tag maxking/mailman-web "$URL/maxking/mailman-web:$TAG"
docker tag maxking/postorius "$URL/maxking/postorius:$TAG"
# Login to the registry and push.
docker login -u $USER -p ${!PASSWORD} $URL
docker push "$URL/maxking/mailman-web:$TAG"
docker push "$URL/maxking/mailman-core:$TAG"
docker push "$URL/maxking/postorius:$TAG"
}
if [ ! "$BRANCH" = "master" ] && [ "$PULL_REQUEST" ]; then
@@ -14,4 +20,5 @@ if [ ! "$BRANCH" = "master" ] && [ "$PULL_REQUEST" ]; then
exit 0
fi
deploy
deploy "quay.io" "rolling" $DOCKER_PASSWORD
deploy "docker.io" "rolling" $QUAY_PASSWORD

View File

@@ -6,47 +6,58 @@ DOCKER=docker
# Set the env variable to later test this release before it is deployed.
if [ "$1" = "dev" ]; then
export DEV=true
export DEV=true
fi
REG_URL=${REGISTRY}_URL
if [ "$EVENT_TYPE" = "cron" ] || [ "$DEV" = "true" ] ; then
python3 -m venv venv
source venv/bin/activate
pip install python-gitlab
# Get the latest commit for repositories and set their reference values to be
# used in the development builds.
CORE_REF=$(python get_latest_ref.py mailman/mailman)
CLIENT_REF=$(python get_latest_ref.py mailman/mailmanclient)
POSTORIUS_REF=$(python get_latest_ref.py mailman/postorius)
HYPERKITTY_REF=$(python get_latest_ref.py mailman/hyperkitty)
DJ_MM3_REF=$(python get_latest_ref.py mailman/django-mailman3)
MM3_HK_REF=$(python get_latest_ref.py mailman/mailman-hyperkitty)
if [ "$EVENT_TYPE" = "cron" ] || [ "$DEV" = "true" ]; then
python3 -m venv venv
source venv/bin/activate
pip install python-gitlab
# Get the latest commit for repositories and set their reference values to be
# used in the development builds.
CORE_REF=$(python get_latest_ref.py mailman/mailman)
CLIENT_REF=$(python get_latest_ref.py mailman/mailmanclient)
POSTORIUS_REF=$(python get_latest_ref.py mailman/postorius)
HYPERKITTY_REF=$(python get_latest_ref.py mailman/hyperkitty)
DJ_MM3_REF=$(python get_latest_ref.py mailman/django-mailman3)
MM3_HK_REF=$(python get_latest_ref.py mailman/mailman-hyperkitty)
# Build the mailman-core image.
$DOCKER build -f core/Dockerfile.dev \
--build-arg CORE_REF=$CORE_REF \
--build-arg MM3_HK_REF=$MM3_HK_REF \
--label version.core="$CORE_REF" \
--label version.mm3-hk="$MM3_HK_REF" \
--label version.git_commit="$COMMIT_ID" \
-t ${!REG_URL}/maxking/mailman-core:rolling core/
# Build the mailman-core image.
$DOCKER build -f core/Dockerfile.dev \
--build-arg CORE_REF=$CORE_REF \
--build-arg MM3_HK_REF=$MM3_HK_REF \
--label version.core="$CORE_REF" \
--label version.mm3-hk="$MM3_HK_REF" \
--label version.git_commit="$COMMIT_ID" \
-t ${!REG_URL}/maxking/mailman-core:rolling core/
# Build the mailman-web image.
$DOCKER build -f web/Dockerfile.dev \
--label version.git_commit="$COMMIT_ID" \
--label version.postorius="$POSTORIUS_REF" \
--label version.hyperkitty="$HYPERKITTY_REF" \
--label version.client="$CLIENT_REF" \
--label version.dj-mm3="$DJ_MM3_REF" \
--build-arg POSTORIUS_REF=$POSTORIUS_REF \
--build-arg CLIENT_REF=$CLIENT_REF \
--build-arg HYPERKITTY_REF=$HYPERKITTY_REF \
--build-arg DJ_MM3_REF=$DJ_MM3_REF \
-t ${!REG_URL}/maxking/mailman-web:rolling web/
# Build the mailman-web image.
$DOCKER build -f web/Dockerfile.dev \
--label version.git_commit="$COMMIT_ID" \
--label version.postorius="$POSTORIUS_REF" \
--label version.hyperkitty="$HYPERKITTY_REF" \
--label version.client="$CLIENT_REF" \
--label version.dj-mm3="$DJ_MM3_REF" \
--build-arg POSTORIUS_REF=$POSTORIUS_REF \
--build-arg CLIENT_REF=$CLIENT_REF \
--build-arg HYPERKITTY_REF=$HYPERKITTY_REF \
--build-arg DJ_MM3_REF=$DJ_MM3_REF \
-t ${!REG_URL}/maxking/mailman-web:rolling web/
$DOCKER build -f postorius/Dockerfile.dev\
--label version.git_commit="$COMMIT_ID"\
--label version.postorius="$POSTORIUS_REF" \
--label version.client="$CLIENT_REF" \
--label version.dj-mm3="$DJ_MM3_REF" \
--build-arg POSTORIUS_REF=$POSTORIUS_REF \
--build-arg CLIENT_REF=$CLIENT_REF \
--build-arg DJ_MM3_REF=$DJ_MM3_REF \
-t ${!REG_URL}/maxking/postorius:rolling postorius/
else
# Do the normal building process.
$DOCKER build -t ${!REG_URL}/maxking/mailman-core:$TAG core/
$DOCKER build -t ${!REG_URL}/maxking/mailman-web:$TAG web/
# Do the normal building process.
$DOCKER build -t ${!REG_URL}/maxking/mailman-core:$TAG core/
$DOCKER build -t ${!REG_URL}/maxking/mailman-web:$TAG web/
$DOCKER build -t ${!REG_URL}/maxking/postorius:$TAG postorius/
fi