Skip to content

Upload Resume to Website #69

Upload Resume to Website

Upload Resume to Website #69

Workflow file for this run

name: Resume Builder
on:
# Allows running this workflow from other workflows
workflow_call:
outputs:
skip:
description: "tells downstream jobs if they should be skipped"
value: ${{ jobs.generate-resume.outputs.skip || ! jobs.generate-resume.outputs.changed }}
# Allows running this workflow from GitHub Actions tab
workflow_dispatch:
env:
# TODO: change the order of sections and show/hide sections here
RESUME_SCHEMA: "profile,education,experience,projects,skills"
RESUME_MARGIN: 6
jobs:
generate-resume:
name: Generate Resume
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.check_updates.outputs.changed }}
skip: ${{ steps.generate.outputs.skip }}
steps:
- name: Install dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: pandoc wkhtmltopdf poppler-utils fonts-roboto
version: 1.0
- name: Checkout repository
uses: actions/checkout@v4
- name: Run resume generation script
id: generate
env:
RESUME_SCRIPT: "./resume/${{ github.repository_owner }}.py"
run: |
if [[ -f "${RESUME_SCRIPT}" ]]; then
fc-cache -fv
export PYTHONPATH=$PYTHONPATH:$PWD/src/
python3 -m resumake.builder ${{ env.RESUME_SCRIPT }} -o ./static/assets -s ${{ env.RESUME_SCHEMA }} -m ${{ env.RESUME_MARGIN }}
FILENAME=$(basename $(ls ./static/assets/Resume_*.pdf) .pdf)
echo | pandoc -t html --template=./src/resources/index.html --metadata title="${FILENAME}" --variable filename="${FILENAME}" -o ./static/index.html
echo "skip=false" >> "${GITHUB_OUTPUT}"
else
echo "File '${RESUME_SCRIPT}' not found. Couldn't build resume."
echo "skip=true" >> "${GITHUB_OUTPUT}"
fi
- name: Check for resume changes
id: check_updates
if: steps.generate.outputs.skip == 'false'
run: |
RESUME_CHANGED=$(git diff ./static/assets | grep md | head -n 1)
INDEX_CHANGED=$(git diff ./static | grep index.html | head -n 1)
UPDATE=$(python3 -c "print(str('${RESUME_CHANGED}'.endswith('.md') or '${INDEX_CHANGED}'.endswith('html')).lower())")
echo "Re-upload resume: ${UPDATE}"
echo "changed=${UPDATE}" >> "${GITHUB_OUTPUT}"
- name: Commit changes
if: steps.generate.outputs.skip == 'false' && steps.check_updates.outputs.changed == 'true'
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git commit -a -m "pipeline: update resume"
- name: Upload resume files
if: steps.generate.outputs.skip == 'false' && steps.check_updates.outputs.changed == 'true'
uses: ad-m/github-push-action@master
with:
branch: main
github_token: ${{ secrets.GITHUB_TOKEN }}