/cv

My latex ๐Ÿง”โ€โ™‚๏ธ CV built, thumbnailed, released and published to my GitHub Pages personal website through GitHub actions ๐Ÿค˜

Primary LanguageTeXOtherNOASSERTION

repo size license last commit


Logo

Max Powis's CV on ๐Ÿ’Š steroids

My latex ๐Ÿง”โ€โ™‚๏ธ CV built, thumbnailed, released and published to
my GitHub Pages personal website through GitHub actions ๐Ÿค˜
View online ยป

Share ideas ยท Report Bug ยท Request Feature

Table of Contents

About The Project

The source code was forked and adapted from Professional CV by Igal Tabachnik.

Peronal add-ons:

  • compute age
  • helpers for employer & job records with computed experience durations
  • can be dyanamically generated in light or dark mode version
  • embed version number as clickable link (to corresponding release page)
  • GitHub actions
    • build & release light & dark versions with version numbering embedded in the generated pdf
    • publish latest release to my GitHub pages repo
    • generate thumbnails (automatically pushed to my GitHub pages repo and embedded in this README)

(back to top)

Preview

Page 1 Page 2 Page 3 Page 4
cv1 cv2 cv3 cv4

(back to top)

Built with

Built with lualatex due to some known issues with FontAwesome.

Getting Started

Prerequisites

Lualatex can be installed easily as part of TexLive

A package is also available for Windows but I personally prefer using a WSL2 which is pretty well integrated with VSCode.

Preparatory steps

  • On debian, the following packages must be installed

    sudo apt install git texlive texlive-luatex texlive-fonts-extra
  • On windows, setup the debian instance as described above then open the cloned project in the WSL2 context

  • On MacOS, the following packages must be installed

    brew install texlive

Usage

Using Local Environment

Building locally is just a matter of clicking the build button in VSCode in the VSCode setup.

Altrernatively, the pdf can be generated using the command-line:

# Generate the standard pdf
pdflatex cv
# Generate the standard pdf with embedded version number/name as clickable url
pdflatex "\def\releasenumber{ga-build}\def\releaseurl{https://example.com}\input{cv}"
# Generate the pdf in dark mode (can be combined with the above)
pdflatex "\def\darkmode{}\input{cv}"

(back to top)

Using GitHub Actions

A bunch of github actions were implemented to cover the build, release and deployment processes:

  • Build (Lualatex): builds the cv.tex project with lualatex
  • Create Release: build and release to the repo releases
  • Publish PDF release to website: copies the latest pdf release to a github pages site repo
  • Convert PDF to PNG: generates thumbnails to be embedded in this README

Continuous build

This GitHub Actions Build (Lualatex) workflow automates the process of building the LaTeX-based CV, ensuring stability of the codebase. Triggered by manual or branch events, it fetches the code, compiles the CV, performs linting, and uploads the result, adjusting actions based on success or failure.

graph TD
  %% Workflow Title
  Build_Lualatex_Workflow[Build - Lualatex Workflow]
  
  %% Nodes
  Build_Lualatex_Workflow -->|on| B[on: workflow_dispatch]
  Build_Lualatex_Workflow -->|on| C[on: push - master]
  Build_Lualatex_Workflow -->|on| D[on: pull_request - master]
  
  B -->|jobs| C1[build_latex - runs-on - ubuntu-latest]
  C -->|jobs| C1
  D -->|jobs| C1
  
  subgraph C1[build_latex - runs-on - ubuntu-latest]
    E[Checkout code]
    E -->| | F[Create cv-maxpowis-ga-build.tex]
    F -->| | G[Lint LaTeX document]
    G -->| | H[Upload TeXtidote report]
    H -->| | I[Compile LaTeX document]
    I -->|on success| J[Upload pdf]
    I -->|on failure| K[Upload logs]
  end
Loading

(back to top)

Roadmap

(back to top)

License

Based on the Beerware license.

(back to top)

Contact

Well, you'll find it all in my cv

(back to top)