ci: GitLab pipeline for the cv-builder image.
This is the first of a few commits for creating the GitLab CI pipeline for building and publishing my CV. This commit adds a pipeline for building and publishing the cv-builder docker image to the GitLab container registry. Additions: - The cv-builder docker image: This commit adds a Dockerfile for building the cv-builder docker image. The image is based on the golang (buster) image and installs ConTeXt (standalone version) and the Carlito font. - The gitlab-ci.yml file: This commit adds the gitlab-ci.yml file for running the pipeline for building and publishing the docker image to the GitLab Container Registry. Changes: - The Makefile now includes targets for building and publishing docker images.
This commit is contained in:
parent
3b69a589fd
commit
5fbdaa5a02
4 changed files with 86 additions and 1 deletions
1
.dockerignore
Normal file
1
.dockerignore
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*
|
47
.gitlab-ci.yml
Normal file
47
.gitlab-ci.yml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
---
|
||||||
|
stages:
|
||||||
|
- test
|
||||||
|
- build
|
||||||
|
- publish
|
||||||
|
|
||||||
|
variables:
|
||||||
|
IMAGE_NAME: ${CI_REGISTRY}/${CI_PROJECT_PATH}/cv-builder
|
||||||
|
IMAGE_TAG: ${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}
|
||||||
|
|
||||||
|
services:
|
||||||
|
- docker:19.03.5-dind
|
||||||
|
|
||||||
|
.use-docker:
|
||||||
|
image: docker:19.03.5
|
||||||
|
|
||||||
|
.install-deps: &install-deps
|
||||||
|
- apk add --no-cache make
|
||||||
|
|
||||||
|
test:docker-image:
|
||||||
|
extends: .use-docker
|
||||||
|
script:
|
||||||
|
- *install-deps
|
||||||
|
- make image
|
||||||
|
stage: test
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- docker/Dockerfile
|
||||||
|
except:
|
||||||
|
refs:
|
||||||
|
- master
|
||||||
|
|
||||||
|
publish:docker-image:
|
||||||
|
extends: .use-docker
|
||||||
|
before_script:
|
||||||
|
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
||||||
|
after_script:
|
||||||
|
- docker logout ${CI_REGISTRY}
|
||||||
|
script:
|
||||||
|
- *install-deps
|
||||||
|
- make publish
|
||||||
|
stage: publish
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- docker/Dockerfile
|
||||||
|
refs:
|
||||||
|
- master@dananglin/cv
|
11
Makefile
11
Makefile
|
@ -1,9 +1,18 @@
|
||||||
|
DOCKERFILE = ./docker/Dockerfile
|
||||||
|
IMAGE_NAME ?= cv-builder
|
||||||
|
IMAGE_TAG ?= latest
|
||||||
OUTPUT_DIR = __output/
|
OUTPUT_DIR = __output/
|
||||||
|
|
||||||
.PHONY: all tex pdf clean
|
.PHONY: all image publish tex pdf clean
|
||||||
|
|
||||||
all: pdf
|
all: pdf
|
||||||
|
|
||||||
|
image:
|
||||||
|
@docker build -f $(DOCKERFILE) -t $(IMAGE_NAME):$(IMAGE_TAG) .
|
||||||
|
|
||||||
|
publish: image
|
||||||
|
@docker push $(IMAGE_NAME):$(IMAGE_TAG)
|
||||||
|
|
||||||
tex:
|
tex:
|
||||||
@go run .
|
@go run .
|
||||||
|
|
||||||
|
|
28
docker/Dockerfile
Normal file
28
docker/Dockerfile
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
FROM golang:1.13.5-buster
|
||||||
|
|
||||||
|
# Upgrade packages and install dependencies
|
||||||
|
RUN \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
fonts-crosextra-carlito \
|
||||||
|
rsync \
|
||||||
|
&& \
|
||||||
|
apt-get clean autoclean && \
|
||||||
|
apt-get autoremove -y && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/*
|
||||||
|
|
||||||
|
# Install ConTeXt standalone
|
||||||
|
RUN \
|
||||||
|
mkdir /opt/context && \
|
||||||
|
cd /opt/context && \
|
||||||
|
curl -LO http://minimals.contextgarden.net/setup/first-setup.sh && \
|
||||||
|
sh ./first-setup.sh \
|
||||||
|
--context=current \
|
||||||
|
--engine=luatex \
|
||||||
|
&& \
|
||||||
|
rm -rf /opt/context/tex/texmf-context/doc
|
||||||
|
|
||||||
|
ENV PATH=${PATH}:/opt/context/tex/texmf-linux-64/bin \
|
||||||
|
OSFONTDIR=/usr/share/fonts
|
||||||
|
|
||||||
|
RUN mtxrun --script fonts --reload
|
Loading…
Reference in a new issue