docker-images/.gitlab-ci.yml
Fifo F. 72189c7ec8
Update .gitlab-ci.yml
- don’t push to Gitea’s registry, let Gitea Actions handle that

[skip ci]
2024-10-21 19:18:25 +00:00

91 lines
3.6 KiB
YAML

stages:
- build
- push
cache:
key: texlive-cache
paths:
- /usr/local/texlive
- /var/cache/tlmgr
- /var/cache/apt/archives
variables:
IMAGE_NAME: sharelatex-with-texlive-full
ARCHIVED_IMAGE: sharelatex_with_texlive_full.tar
TEXLIVE_REPO: https://ftp.tu-chemnitz.de/pub/tex/systems/texlive/tlnet/
IMAGE_ENTRYPOINT: "/sbin/my_init"
GITEA_IMAGE_NAME: ${GITEA_REGISTRY}/tex-projects/${IMAGE_NAME}
DOCKER_HUB_IMAGE_NAME: ${DOCKER_HUB_USER}/${IMAGE_NAME}
build:
stage: build
tags:
- privileged
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:24.0.5
services:
- name: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:24.0.5-dind
alias: docker
before_script:
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login $CI_DEPENDENCY_PROXY_SERVER -u $CI_DEPENDENCY_PROXY_USER --password-stdin
script:
- |
if [ ! -f $ARCHIVED_IMAGE ]; then
apk add --no-cache curl
curl -sSfL https://raw.githubusercontent.com/overleaf/toolkit/master/lib/config-seed/version -o version.txt
OVERLEAF_VERSION=$(cat version.txt)
echo "*** Image version: $OVERLEAF_VERSION"
docker pull ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/sharelatex/sharelatex:latest
docker run --name temp --entrypoint /bin/bash ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/sharelatex/sharelatex:latest -c "\
tlmgr option repository $TEXLIVE_REPO && \
tlmgr update --self --all && \
tlmgr install scheme-full && \
tlmgr path add && \
apt update && apt install -y inkscape lilypond python3-pygments && \
echo shell_escape = t >> /usr/local/texlive/2024/texmf.cnf"
docker commit --change "ENTRYPOINT $IMAGE_ENTRYPOINT" temp $IMAGE_NAME:$OVERLEAF_VERSION
docker tag $IMAGE_NAME:$OVERLEAF_VERSION $IMAGE_NAME:latest
docker save -o $ARCHIVED_IMAGE $IMAGE_NAME:$OVERLEAF_VERSION $IMAGE_NAME:latest
docker system prune -f
fi
artifacts:
paths:
- $ARCHIVED_IMAGE
- version.txt
expire_in: 7 days
push:
stage: push
tags:
- privileged
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:24.0.5
services:
- name: docker:24.0.5-dind
dependencies:
- build
script:
- OVERLEAF_VERSION=$(cat version.txt)
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
- docker load -i $ARCHIVED_IMAGE
- docker tag ${IMAGE_NAME}:${OVERLEAF_VERSION} ${CI_REGISTRY}/${CI_PROJECT_PATH}/${IMAGE_NAME}:${OVERLEAF_VERSION}
- docker tag ${IMAGE_NAME}:latest ${CI_REGISTRY}/${CI_PROJECT_PATH}/${IMAGE_NAME}:latest
- docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}/${IMAGE_NAME}:${OVERLEAF_VERSION}
- docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}/${IMAGE_NAME}:latest
# - echo $GITEA_REGISTRY_PASSWORD | docker login -u $GITEA_REGISTRY_USER --password-stdin $GITEA_REGISTRY
# - docker tag ${IMAGE_NAME}:${OVERLEAF_VERSION} ${GITEA_IMAGE_NAME}:${OVERLEAF_VERSION}
# - docker tag ${IMAGE_NAME}:latest ${GITEA_IMAGE_NAME}:latest
# - docker push ${GITEA_IMAGE_NAME}:${OVERLEAF_VERSION}
# - docker push ${GITEA_IMAGE_NAME}:latest
- echo $DOCKER_HUB_PASSWORD | docker login -u $DOCKER_HUB_USER --password-stdin
- docker tag ${IMAGE_NAME}:${OVERLEAF_VERSION} ${DOCKER_HUB_IMAGE_NAME}:${OVERLEAF_VERSION}
- docker tag ${IMAGE_NAME}:latest ${DOCKER_HUB_IMAGE_NAME}:latest
- docker push ${DOCKER_HUB_IMAGE_NAME}:${OVERLEAF_VERSION}
- docker push ${DOCKER_HUB_IMAGE_NAME}:latest
artifacts:
paths:
- $ARCHIVED_IMAGE
- version.txt
expire_in: 7 days