mirror of
https://github.com/soconnor0919/resume-cv.git
synced 2026-02-04 21:06:31 -05:00
Compare commits
11 Commits
release-26
...
release-36
| Author | SHA1 | Date | |
|---|---|---|---|
| 8aeb6a4745 | |||
| 7749d8c332 | |||
| 0549f77c4d | |||
| 7bebaea133 | |||
| 5f77e4e68c | |||
| 8f0ff2df68 | |||
| de9dfe2d7f | |||
| dd9c4c09ee | |||
| eed1e8714b | |||
| 7397a0177f | |||
| d0813ce1c6 |
73
.github/workflows/compile-latex.yml
vendored
73
.github/workflows/compile-latex.yml
vendored
@@ -12,9 +12,13 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-public:
|
build-public:
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-latest
|
||||||
|
container: ghcr.io/xu-cheng/texlive-alpine:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Install system dependencies
|
||||||
|
run: apk add --no-cache git gettext bash nodejs
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Create public info file
|
- name: Create public info file
|
||||||
env:
|
env:
|
||||||
@@ -40,7 +44,7 @@ jobs:
|
|||||||
mv personal_info.tex.tmp personal_info.tex
|
mv personal_info.tex.tmp personal_info.tex
|
||||||
|
|
||||||
- name: Cache TeX Live
|
- name: Cache TeX Live
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
/tmp/texlive
|
/tmp/texlive
|
||||||
@@ -52,56 +56,50 @@ jobs:
|
|||||||
- name: Create TeX Live directory
|
- name: Create TeX Live directory
|
||||||
run: mkdir -p /tmp/texlive
|
run: mkdir -p /tmp/texlive
|
||||||
|
|
||||||
- name: Set up TeX Live
|
- name: Compile LaTeX
|
||||||
uses: xu-cheng/latex-action@v3
|
run: |
|
||||||
with:
|
latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex
|
||||||
root_file: |
|
latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode cv.tex
|
||||||
resume.tex
|
|
||||||
cv.tex
|
|
||||||
latexmk_use_xelatex: false
|
|
||||||
|
|
||||||
- name: Upload Public PDFs as Release
|
- name: Upload Public PDFs as Release
|
||||||
uses: softprops/action-gh-release@v1
|
uses: ncipollo/release-action@v1.14.0
|
||||||
with:
|
with:
|
||||||
files: |
|
artifacts: "*.pdf"
|
||||||
resume.pdf
|
|
||||||
cv.pdf
|
|
||||||
name: Latest PDFs
|
name: Latest PDFs
|
||||||
tag_name: latest
|
tag: latest
|
||||||
body: |
|
body: |
|
||||||
Latest version of resume and CV (public version)
|
Latest version of resume and CV (public version)
|
||||||
|
|
||||||
This release is automatically updated with each push to main. For versioned releases, see the numbered releases.
|
This release is automatically updated with each push to main. For versioned releases, see the numbered releases.
|
||||||
prerelease: false
|
prerelease: false
|
||||||
draft: false
|
draft: false
|
||||||
fail_on_unmatched_files: true
|
allowUpdates: true
|
||||||
generate_release_notes: false
|
replacesArtifacts: true
|
||||||
env:
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
# Create a numbered release for version history
|
# Create a numbered release for version history
|
||||||
- name: Create Numbered Release
|
- name: Create Numbered Release
|
||||||
uses: softprops/action-gh-release@v1
|
uses: ncipollo/release-action@v1.14.0
|
||||||
with:
|
with:
|
||||||
files: |
|
artifacts: "*.pdf"
|
||||||
resume.pdf
|
|
||||||
cv.pdf
|
|
||||||
name: Release ${{ github.run_number }}
|
name: Release ${{ github.run_number }}
|
||||||
tag_name: release-${{ github.run_number }}
|
tag: release-${{ github.run_number }}
|
||||||
body: |
|
body: |
|
||||||
Version ${{ github.run_number }} of resume and CV (public version)
|
Version ${{ github.run_number }} of resume and CV (public version)
|
||||||
prerelease: false
|
prerelease: false
|
||||||
draft: false
|
draft: false
|
||||||
fail_on_unmatched_files: true
|
allowUpdates: true
|
||||||
generate_release_notes: false
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
build-private:
|
build-private:
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-latest
|
||||||
|
container: ghcr.io/xu-cheng/texlive-alpine:latest
|
||||||
if: github.actor == github.repository_owner
|
if: github.actor == github.repository_owner
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Install system dependencies
|
||||||
|
run: apk add --no-cache git gettext bash nodejs
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Create private info file
|
- name: Create private info file
|
||||||
env:
|
env:
|
||||||
@@ -133,7 +131,7 @@ jobs:
|
|||||||
mv personal_info.tex.tmp personal_info.tex
|
mv personal_info.tex.tmp personal_info.tex
|
||||||
|
|
||||||
- name: Cache TeX Live
|
- name: Cache TeX Live
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
/tmp/texlive
|
/tmp/texlive
|
||||||
@@ -145,16 +143,13 @@ jobs:
|
|||||||
- name: Create TeX Live directory
|
- name: Create TeX Live directory
|
||||||
run: mkdir -p /tmp/texlive
|
run: mkdir -p /tmp/texlive
|
||||||
|
|
||||||
- name: Set up TeX Live
|
- name: Compile LaTeX
|
||||||
uses: xu-cheng/latex-action@v3
|
run: |
|
||||||
with:
|
latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex
|
||||||
root_file: |
|
latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode cv.tex
|
||||||
resume.tex
|
|
||||||
cv.tex
|
|
||||||
latexmk_use_xelatex: false
|
|
||||||
|
|
||||||
- name: Upload Private PDFs
|
- name: Upload Private PDFs
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: private-documents
|
name: private-documents
|
||||||
path: |
|
path: |
|
||||||
|
|||||||
@@ -15,8 +15,12 @@ This project demonstrates professional DevOps practices while providing a beauti
|
|||||||
## Latest PDFs
|
## Latest PDFs
|
||||||
|
|
||||||
The most recent public versions are always available at:
|
The most recent public versions are always available at:
|
||||||
- Resume: `https://github.com/USERNAME/resume-cv/releases/download/latest/resume.pdf`
|
- Resume: `https://github.com/soconnor0919/resume-cv/releases/download/latest/resume.pdf`
|
||||||
- CV: `https://github.com/USERNAME/resume-cv/releases/download/latest/cv.pdf`
|
- CV: `https://github.com/soconnor0919/resume-cv/releases/download/latest/cv.pdf`
|
||||||
|
|
||||||
|
If mirroring to Gitea:
|
||||||
|
- Resume: `https://git.soconnor.dev/soconnor/resume-cv/releases/download/latest/resume.pdf`
|
||||||
|
- CV: `https://git.soconnor.dev/soconnor/resume-cv/releases/download/latest/cv.pdf`
|
||||||
|
|
||||||
Replace `USERNAME` with your GitHub username after forking.
|
Replace `USERNAME` with your GitHub username after forking.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check if building specific CV variant
|
||||||
|
CV_VARIANT=""
|
||||||
|
if [ "$1" = "cv-upenn" ]; then
|
||||||
|
CV_VARIANT="cv-upenn"
|
||||||
|
echo "Building UPenn-optimized CV..."
|
||||||
|
fi
|
||||||
|
|
||||||
# Source secrets if the file exists
|
# Source secrets if the file exists
|
||||||
if [ -f .secrets ]; then
|
if [ -f .secrets ]; then
|
||||||
source .secrets
|
source .secrets
|
||||||
@@ -78,7 +85,7 @@ EOL
|
|||||||
|
|
||||||
build_local resume.tex
|
build_local resume.tex
|
||||||
build_local cv.tex
|
build_local cv.tex
|
||||||
|
|
||||||
mv resume.pdf output/resume-private.pdf 2>/dev/null || true
|
mv resume.pdf output/resume-private.pdf 2>/dev/null || true
|
||||||
mv cv.pdf output/cv-private.pdf 2>/dev/null || true
|
mv cv.pdf output/cv-private.pdf 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
@@ -99,12 +106,19 @@ cat > personal_info.tex << EOL
|
|||||||
\newcommand{\personalSchoolAddressLineThree}{~}
|
\newcommand{\personalSchoolAddressLineThree}{~}
|
||||||
EOL
|
EOL
|
||||||
|
|
||||||
build_local resume.tex
|
# Build specific CV variant if requested
|
||||||
build_local cv.tex
|
if [ "$CV_VARIANT" = "cv-upenn" ]; then
|
||||||
|
build_local cv-upenn.tex
|
||||||
|
mv cv-upenn.pdf output/cv-upenn.pdf
|
||||||
|
echo "UPenn CV build complete! Generated: output/cv-upenn.pdf"
|
||||||
|
else
|
||||||
|
build_local resume.tex
|
||||||
|
build_local cv.tex
|
||||||
|
|
||||||
mv resume.pdf output/resume-public.pdf
|
mv resume.pdf output/resume-public.pdf
|
||||||
mv cv.pdf output/cv-public.pdf
|
mv cv.pdf output/cv-public.pdf
|
||||||
|
|
||||||
echo "Build complete!"
|
echo "Build complete!"
|
||||||
echo "Generated files in output/:"
|
echo "Generated files in output/:"
|
||||||
ls -l output/
|
ls -l output/
|
||||||
|
fi
|
||||||
|
|||||||
1
cv.tex
1
cv.tex
@@ -32,6 +32,7 @@ I'm passionate about human-robot interaction and developing technologies that ma
|
|||||||
\item Developing HRIStudio, a novel web-based platform addressing reproducibility challenges in Wizard-of-Oz HRI studies, with two first-author publications at IEEE RO-MAN 2024 and 2025
|
\item Developing HRIStudio, a novel web-based platform addressing reproducibility challenges in Wizard-of-Oz HRI studies, with two first-author publications at IEEE RO-MAN 2024 and 2025
|
||||||
\item Designed modular architecture enabling cross-platform robot control without specialized programming knowledge, lowering technical barriers for HRI researchers across disciplines
|
\item Designed modular architecture enabling cross-platform robot control without specialized programming knowledge, lowering technical barriers for HRI researchers across disciplines
|
||||||
\item Implemented comprehensive data logging and playback capabilities for experimental analysis, supporting rigorous scientific methodology in human-robot interaction studies
|
\item Implemented comprehensive data logging and playback capabilities for experimental analysis, supporting rigorous scientific methodology in human-robot interaction studies
|
||||||
|
\item Currently developing honors thesis evaluating platform effectiveness and impact on interdisciplinary HRI research accessibility
|
||||||
\item Conducted literature review identifying key challenges in WoZ methodology reproducibility, informing platform design decisions and feature prioritization
|
\item Conducted literature review identifying key challenges in WoZ methodology reproducibility, informing platform design decisions and feature prioritization
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
|
|
||||||
\textbf{beenvoice - Professional Invoicing Application} \hfill \textbf{TypeScript/Next.js}
|
\textbf{beenvoice - Professional Invoicing Application} \hfill \textbf{TypeScript/Next.js}
|
||||||
\begin{itemize}[noitemsep,topsep=2pt]
|
\begin{itemize}[noitemsep,topsep=2pt]
|
||||||
\item Built full-stack invoicing app with secure authentication, client management, and invoice generation deployed at beenvoice.vercel.app
|
\item Built full-stack invoicing app with secure authentication, client management, and invoice generation
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\textbf{Formula One Performance Prediction Using Machine Learning} \hfill \textbf{Python/ML}
|
\textbf{Formula One Performance Prediction Using Machine Learning} \hfill \textbf{Python/ML}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
\setlength{\parindent}{0pt}
|
\setlength{\parindent}{0pt}
|
||||||
\setlength{\parskip}{0em}
|
\setlength{\parskip}{0em}
|
||||||
\usepackage{enumitem}
|
\usepackage{enumitem}
|
||||||
\usepackage{hyperref}
|
\usepackage[colorlinks=true,linkcolor=black,urlcolor=black,citecolor=black]{hyperref}
|
||||||
\usepackage[utf8]{inputenc}
|
\usepackage[utf8]{inputenc}
|
||||||
\usepackage[T1]{fontenc}
|
\usepackage[T1]{fontenc}
|
||||||
\usepackage[letterpaper,left=0.5in,top=0.5in,right=0.5in,bottom=0.5in]{geometry}
|
\usepackage[letterpaper,left=0.5in,top=0.5in,right=0.5in,bottom=0.5in]{geometry}
|
||||||
|
|||||||
Reference in New Issue
Block a user