Code Monkey home page Code Monkey logo

cv's Introduction

repo size last commit


Logo

๐Ÿ‘‹ Joey's CV โœŒ๐Ÿป

My latex CV built, thumbnailed, released and published to
my GitHub Pages personal website through GitHub actions ๐Ÿค˜
Special thanks to Max Powis for the original template! ๐Ÿ™๐Ÿป


Fork This ๐Ÿด ยท 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)

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)

cv's People

Contributors

maxpowis avatar joeyqliu avatar hmemcpy avatar dependabot[bot] avatar ndrsllwngr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.