Skip to content

Commit

Permalink
Merge pull request #1 from orensbruli/feature/github_action
Browse files Browse the repository at this point in the history
Generate and deploy CV actions
  • Loading branch information
orensbruli authored Jan 8, 2024
2 parents 747c906 + 9c231de commit 25b6430
Show file tree
Hide file tree
Showing 12 changed files with 923 additions and 18 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/github_action_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: LaTeX Build and Upload

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build Docker Image
run: |
docker buildx build \
--load \
--cache-from=type=local,src=/tmp/.buildx-cache \
--cache-to=type=local,dest=/tmp/.buildx-cache \
-t latex-build .
- name: Run Docker Container
run: docker run -v $(pwd):/latex_content --name latex-container latex-build /bin/sh -c "make pdf"

- name: Copy PDF from Docker Container
run: docker cp latex-container:/latex_content/rendered.pdf output.pdf

- name: Upload PDF as Artifact
uses: actions/upload-artifact@v4
with:
name: compiled-pdf
path: output.pdf
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
if: ${{ contains(github.ref, 'tags') }}
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: output.pdf
asset_name: esteban_martinena_cv.pdf
tag: ${{ github.ref }}
overwrite: true
body: "Latest version of my CV."
32 changes: 32 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

# Use an official Ubuntu base image
FROM ubuntu:22.04

# Avoid prompts from apt
ENV DEBIAN_FRONTEND=noninteractive

# Install LaTeX packages
RUN apt-get update && apt-get install -y \
make \
pandoc \
texlive \
texlive-bibtex-extra \
texlive-fonts-extra \
texlive-latex-base \
texlive-latex-extra \
texlive-luatex \
texlive-pstricks \
texlive-xetex \
wget

RUN wget --output-document=/usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 && \
chmod +x /usr/local/bin/yq && \
yq --version

# Set working directory
WORKDIR /latex_content

# Note: For Font Awesome support, compile with LuaLaTeX instead of XeLaTeX
# Default command to compile the LaTeX document using XeLaTeX
# This command can be overridden when running the container
CMD ["make", "pdf"]
34 changes: 18 additions & 16 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,27 +1,29 @@
SHELL = /bin/sh

FILE0 = cv-piotr-kowalski
FILE0 = main
TEX_TEMPLATE = $(FILE0).template.tex
TEX = $(FILE0).tex
XDV = $(FILE0).xdv
PDF = $(FILE0).pdf
PDFOUT = $(FILE0)-encrypted.pdf

all: pdf

all:
make tex
pdf:
mkdir -p build/pdf/
cp latex/* build/pdf/
cp data.md build/pdf/
wget --output-document=build/pdf/img.jpg $$(yq e '.image' data.md | grep https)

tex:
xelatex -no-pdf $(TEX)
xelatex -no-pdf $(TEX)
#xdvipdfmx.exe $(XDV)
xelatex $(TEX)
make clean
pw:
pdftk $(PDF) output $(PDFOUT) owner_pw ownerpasswd user_pw userpasswd compress encrypt_128bit
cd build/pdf/; \
pandoc data.md --pdf-engine xelatex --template page1sidebar.template.tex -o page1sidebar.tex ; \
pandoc data.md --pdf-engine xelatex --template page2sidebar.template.tex -o page2sidebar.tex ; \
pandoc data.md --pdf-engine xelatex --template $(TEX_TEMPLATE) -o $(TEX) ; \
xelatex -shell-escape -output-driver="xdvipdfmx -z 0" $(TEX)

help:
echo "USAGE: make [all/tex/handout/pw/clean]"
cp build/pdf/$(PDF) ./rendered.pdf

clean-pdf:
rm -rf build/pdf/

clean:
rm -f *.aux *.dvi *.idx *.ilg *.ind *.log *.nav *.out *.snm *.xdv *.toc *.synctex.gz *~
rm -rf build/

11 changes: 9 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,15 @@
This template I use for my own resume/CV.

```shell
docker build -t latex-cv .
docker run -v $(pwd):/latex_content latex-cv /bin/sh -c "make pdf"
#docker run -v $(pwd):/latex_content --name latex-container latex-cv /bin/sh -c "make pdf"
#docker cp latex-container:/latex_content/cv-piotr-kowalski.pdf output.pdf
#docker remove /latex-container
```


![CV Screenshot](cv-piotr-kowalski.png)

## Install pre-requisites (Windows)

Expand Down Expand Up @@ -63,7 +70,7 @@ The elements comes from several templates, including:

> MIT License
> Copyright (c) 2019 Piotr Kowalski
> Copyright (c) 2019 Esteban Martinena
> Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the "Software"), to deal
Expand Down
Binary file removed cv-piotr-kowalski.pdf
Binary file not shown.
Binary file removed cv-piotr-kowalski.png
Binary file not shown.
163 changes: 163 additions & 0 deletions data.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
---
personal_info:
name: Esteban Martinena
job_title: "Senior DevOps Engineer"
# job_title: "DevOps - SRE - Python & QT Developer"
email: [email protected]
phone:
- +34 656 88 05 93
location: "Cáceres, Spain"
linkedin: "linkedin.com/in/esteban-martinena/"
github: "github.com/orensbruli"
image: "https://lh3.googleusercontent.com/fife/AGXqzDlaHnxKLj6w_srgGzToVTjjfNuOhVOexF7vruAOJ2_UWwAJDtQCkQyNdOUgZPF3s2Hh88jx8Y272MxVZhFAHgafyyzeUoahCJ0ZYnpMsD099oT7QEl2gBIeOSrbsbZabkLeMo7jnqUKGW8VyIuBI1UwiEz1ycjekPxY7oujNE6DOF4_YQ0rGfHONAqu4cVg5Mp-C020Em72y2JxAvHPKQaoqYIWOhLYEdfpDSxd7bDmx5KdyJxUTdd8gqMMCdB6a8Wu1dgvQw8btgQdH6m2NlXyhDEhbkT6vQILlQy28yBpBoNbtuY4DtiBNmSjPx2w_1eIqS5fL--HXjko-fFV583WEjtS_OM1mNTfsWT7pElfabAZ6oYUKvrZSBOqzTKCfABWjtnZQhykxO6UTI27z3SPmsOMwQV8iU8ojRhg1JXH5n7JtlhYDFK5WSAufgH6b7Fk0F9Bg13LhQFtmaYTY4wVYPp7Rx1iLOZJy84PXeZdnGY7uNbVSBx9J-jGj05tFv2ZqoEu_B7EpGxZRoSXC4d-MGnUJeKj-fLDfCZz9GSGD4R3rQm8x7s1sFWzBLiHM5k3StsdM0pFLDCO95AZoXnN3dl3VG06wLfeTL9HqgNtDxZiH2cLrkyU5kV7MjB-0x044CrGbA4FzPDVePUIwQWhmTHF6_3VC8A8q3LFLYGXLIwIAFfb4tWau7wgsKCJbOYcpT-RX0YO2yEJanI005Uh-dbyU2pQ0Cf3tgAbIHlnxAy3qJAWAIuSIPsYrDazXOeEKLLy8-preGvVxgvIDQ7yx-pT-KGyKKU5A_TNd8_HVq8TxZfqNcjY9iA6ZndkNBHwxoh7Ur9u9HBV0Q5wGqXdwiVW9dHbEMZ_lpsjrYXwrG6uH-GKPlyx9QrfD5fS1MrcnS8vlk8tqSTzjfdNHt9fJd_t-WIpGdxoasacE8fAcpN7gK5WOdYoH4xMuuT-KDTlYfd7bdx4YSRqRq27_z06ukYkpnPrrBxUp1Lugbm1lSqc6lNwPml-Z2WQ5uC25f_RoXMJ_S57Zu3Z-_sN3qJNK2hSO8AFkg2bcX7EeVCyT4cuSDmSjnLHScLEeyDINe1t8E0HH9xI0cjzU0ziBrgNCwua6pREUhiYIT8hPzydUKcSpbX80S5CX-KgLpVy0gzX2XtrZqmCTSYwfJPrAo8k_DDq6eAQ66kEr8lQ6KiBikcDeTZeCThCbNq4IL-_87bhYyevSn35dqhwcfG2Efuyc4x3caPEcnAbF_iHeWnEcNpB8YRtyYuA9ChkL5r6n-me5wo1I2CCty78HaadndvVPw4Aju-ha-YHcvOQjr9w2O8c7yJ9ugMOyUDD5R8NO_kKqBA8OaR_wBPC29hnJqMJNC4l6pUJrro3CFXBD4HDaQQRegVr9Ez0pKF5F0E5JXmBgZVHO-tkKlHPdGNQTXAnj9L9dxEqTew46i7jsixpR5GbZMxsmHYU52JhxglEKleodNIc4fQSeEZzVXiE58PdIXvoirwoaEb75qlKdJGS_HNYJKPouLmrMQ=w996-h916"
education:
- degree: "BSc Computer Engineering"
institution: "Extremadura University"
duration: "06/2005 - 07/2007"
location: "Cáceres, Spain"
- degree: "MSc Computer Engineering"
institution: "Extremadura University"
duration: "06/2001 - 07/2007"
location: "Cáceres, Spain"
experiences:
- role: "DevOps"
company: "Open Robotics - RMF (Contractor)"
duration: "01/08/2022 - 14"
location: "Singapore (Remote)"
responsibilities:
- "DevOps for Open-RMF team"
- "Docker, Docker Swarm, Kubernetes"
- "Chef, Ansible, Argo CD"
- "Python3, Shell Script"
- "Debian Packaging"
- "Unit testing & Mock"
- "CI/CD, GitHub Actions, GitLab Pipelines"
- role: "Python Dev/DevOps"
company: "Univention (Contractor)"
duration: "01/09/2021 - 31/07/2022"
location: "Bremen, Germany (Remote)"
responsibilities:
- "Software developer for the core packages in Corporate Server Debian based distribution"
- "Develop of Azure MS connector with the LDAP background system"
- "Build and deploy Debian packages"
- "Python3, Shell Script"
- "Debian Packaging"
- "Unit testing & Mock"
- "Integration tests"
- "Docker, Docker Swarm"
- "GitHub Actions, GitLab Pipelines, CI/CD, Ansible"
- role: "Python Dev/DevOps"
company: "Gamma Solutions (Diggia)"
duration: "01/12/2020 - 31/08/2021"
location: "Cáceres, Spain (Remote)"
responsibilities:
- "DevOps for the project AUTONOMOUS DRIVING OF ELECTRIC VEHICLE FLEET within the 5G PILOT PROJECT: CITY OF CÁCERES"
- "Python developer for DSR architecture (Robocomp)"
- "Skills in Python3, C++, Qt, Shell Script"
- "Experience with CMake, make"
- "DSL"
- "Unit testing & Mock"
- "Docker, Docker Swarm"
- "GitHub Actions, CI/CD, Ansible"

- role: "DevOps"
company: "Robotics and Computer Vision Lab (UEX)"
duration: "11/02/2020 - 30/11/2020"
location: "Cáceres, Spain"
responsibilities:
- "DevOp tasks for the Robocomp framework (unit testing, continuous integration, architecture refactoring for plugin support)"
- "Analyst-Developer on Robocomp DSR architecture"
- "Skills in Python3, C++, Qt, Shell Script"
- "Experience with CMake, make"
- "Linux Sys. Admin"
- "DSL"
- "Unit testing & Mock"
- "Docker"
#projects:
# - icon: "\\faMedkit"
# title: "Policy Insurance Portal Solution"
# description: "It's actually a well-known company insurance portal. All the policyholders buy or renew policies, as well as provide a claim facility too for instant resolution."
# - icon: "\\faConnectdevelop"
# title: "Survey Tracking App."
# description: "A US-based client survey tracking app through which clients make a survey for an individual vehicle as per requirement."
# - icon: "\\faNewspaperO"
# title: "Insurance Policy Claim Management App."
# description: "Related to customer claim management system, through which agents report a claim related to policy along with the insurance paradigms."
# - icon: "\\faOutdent"
# title: "Game Development"
# description: "Individual game developer using hybrid and react native platforms. Currently, a total of 3 mobile games deployed on the play store."

references:
- name: "Steven! RAGNARÖK / Infrastructure Technical Lead"
email: "[email protected]"
affiliation: "Open Robotics"
- name: "Matthew Festo / General Manager"
email: "[email protected]"
affiliation: "Open Robotics"
content:
life_quote: "\"Empower the person next to you, and you'll find paths where once there were only walls. In the world of development, collaboration is not just a skill, it's our most powerful tool.\""
#life_quote: "\"Empowering each other in the DevOps community, we bridge ideas and code, embodying the open source spirit to transform challenges into progress\""
skills:
- name: "Github Actions"
level: 5
- name: "Gitlab CI/CD"
level: 4
- name: "Ros 2"
level: 4
- name: "Docker"
level: 5
- name: "Kubernetes"
level: 3
- name: "Ansible"
level: 4
- name: "Python"
level: 5
- name: "C++"
level: 4
language:
- name: "Spanish"
level: 5
- name: "English"
level: 4
tags:
- Hard-working
- Persuasive
- Team player
- Problem solver
- Self-motivated
- Fast learner
#achievements:
# - title: "Best Mobile App Developer"
# icon: "\\faTrophy"
# description: "Individual working on various mobile apps and sink to deliver before time"
# - title: "Deliver application on Time"
# icon: "\\faLineChart"
# description: "Continuously work on various platform and expand learning capability in terms of quality"
hobbies:
- title: "Photography"
icon: "\\faCamera"
description: |
I love to capture the moment and make it memorable.
Indeed, I worked as a freelance photographer for 10 years.
- title: "Roller Derby"
icon: "\\faBicycle"
description: "Have you heard about the Roller Derby? You should try it!"
colors:
- name: VividPurple
code: "008080"
- name: SlateGrey
code: "2E2E2E"
- name: LightGrey
code: "666666"
color_scheme:
- name: "heading"
color: "VividPurple"
- name: "accent"
color: "VividPurple"
- name: "emphasis"
color: "SlateGrey"
- name: "body"
color: "LightGrey"
- name: "tagline"
color: "VividPurple"
---
Loading

0 comments on commit 25b6430

Please sign in to comment.