A few years ago I stumbled over the outstanding Awesome CV which is written in LaTeX. At that time I had no idea what LaTeX - but customizing the CV to my needs, contributing the Cover Letter and adding the image to the header taught me how it works.
That was a good exercise because I had to write my Master Thesis in LaTeX.
Using GitLab CI
Have a look at the documentation if you have no idea what GitLab CI is. Everyone who knows LaTeX will probably complain now, because I could just use Overleaf to edit my CV in the browser. Thats totally correct, but I want to use GitLab CI anyway.
I forked the official Awesome CV repository into my own space on GitLab. Everything that builds the CV automatically can be found in the .gitlab-ci.yml file.
pdf: image: thomasweise/texlive script: - cd examples - xelatex resume.tex artifacts: paths: - examples/resume.pdf
By adding this file into the root directory of the repository a GitLab runner will execute the defined tasks. pdf defines the name of the runner job. The runner starts the docker image that has texlive installed: image: thomasweise/texlive. Everything in script will be executed in the docker container. Just like we use xelatex on the local machine - the runner will switch to the examples folder and execute xelatex resume.tex. That will generate a PDF file - if no error occurred. To obtain the generated PDF file we have to define the file as artifact. The artifact can be downloaded if the job has finished successful.
The jobs for my repository can be found here.
In the README.md the status of the pipeline is displayed and direct links to the artifacts can be found. Have a look at the official documentation for the badges.
# Customized Resume / CV Pipeline Status: [![pipeline status](https://gitlab.com/ayeks/Awesome-CV/badges/customizing/pipeline.svg)](https://gitlab.com/ayeks/Awesome-CV/commits/master) [Browse](https://gitlab.com/ayeks/Awesome-CV/-/jobs/artifacts/customizing/browse?job=pdf) the Artifacts or [download](https://gitlab.com/ayeks/Awesome-CV/-/jobs/artifacts/customizing/raw/examples/resume.pdf?job=pdf) the PDF directly.
If you want to build your own CV with gitlab-ci feel free to fork my repository and start editing the files in the customizing branch.