Skip to content

Instantly share code, notes, and snippets.

@mserranom
Created March 2, 2020 16:46
Show Gist options
  • Select an option

  • Save mserranom/5d2b6b56190fcffe3399af766da2c472 to your computer and use it in GitHub Desktop.

Select an option

Save mserranom/5d2b6b56190fcffe3399af766da2c472 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# 1. Login into gcr
# 2. Login into quay.io
# Example: deploy_texlive.sh (publish|staging|production) texlive:latest 2019.1 003
OPTION=$1
LOCAL_IMAGE=$2
MAJOR_VERSION=$3
PATCH_VERSION=$4
if [${OPTION} = 'publish']; then
# juggling with some image build code...
PATH_NAME=`ls texlive-full/${MAJOR_VERSION} | grep ${PATCH_VERSION}`
cd ${PATH_NAME} && docker build -t texlive:${MAJOR_VERSION}.${PATCH_VERSION}
docker login gcr.io
FULL_NAME=gcr.io/overleaf-ops/texlive-full:${MAJOR_VERSION}.${PATCH_VERSION}
docker tag ${LOCAL_IMAGE} ${FULL_NAME}
docker push ${FULL_NAME}
elif [${OPTION} = 'staging']; then
docker login gcr.io
docker pull gcr.io/overleaf-ops/texlive-full:${MAJOR_VERSION}.${PATCH_VERSION}
docker tag gcr.io/overleaf-ops/texlive-full:${MAJOR_VERSION}.${PATCH_VERSION} \
gcr.io/overleaf-ops/texlive-staging:${MAJOR_VERSION}
docker push gcr.io/overleaf-ops/texlive-staging:${MAJOR_VERSION}
elif [${OPTION} = 'production']; then
docker login gcr.io
docker login quay.io
docker pull gcr.io/overleaf-ops/texlive-full:${MAJOR_VERSION}.${PATCH_VERSION}
docker tag gcr.io/overleaf-ops/texlive-full:${MAJOR_VERSION}.${PATCH_VERSION} \
gcr.io/overleaf-ops/texlive-full:${MAJOR_VERSION}
docker push gcr.io/overleaf-ops/texlive-full:${MAJOR_VERSION}
docker tag gcr.io/overleaf-ops/texlive-full:${MAJOR_VERSION}.${PATCH_VERSION} \
quay.io/sharelatex/texlive-full:${MAJOR_VERSION}
docker push quay.io/sharelatex/texlive-full:${MAJOR_VERSION}
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment