name: Compile LaTeX Documents on: push: branches: [ main ] pull_request: branches: [ main ] permissions: contents: write packages: read jobs: build-public: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v3 - name: Cache TeX Live uses: actions/cache@v3 with: path: /tmp/texlive key: texlive-${{ runner.os }}-${{ hashFiles('**/*.tex') }} restore-keys: | texlive-${{ runner.os }}- - name: Set up TeX Live uses: xu-cheng/latex-action@v3 with: root_file: | resume.tex cv.tex latexmk_use_xelatex: false - name: Create public info file run: | cat > personal_info.tex << EOL % Public version of personal information \\newcommand{\\personalName}{Sean O'Connor} \\newcommand{\\personalEmail}{sean@soconnor.dev} \\newcommand{\\personalPhone}{} \\newcommand{\\personalWebsite}{soconnor.dev} \\newcommand{\\personalSchoolEmail}{sso005@bucknell.edu} \\newcommand{\\personalHomeAddressLineOne}{} \\newcommand{\\personalHomeAddressLineTwo}{} \\newcommand{\\personalSchoolAddressLineOne}{} \\newcommand{\\personalSchoolAddressLineTwo}{} \\newcommand{\\personalSchoolAddressLineThree}{} EOL - name: Upload Public PDFs as Release uses: softprops/action-gh-release@v1 with: files: | resume.pdf cv.pdf name: Latest PDFs tag_name: latest body: | Latest version of resume and CV (public version) prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} build-private: runs-on: ubuntu-24.04 if: github.actor == github.repository_owner steps: - uses: actions/checkout@v3 - name: Cache TeX Live uses: actions/cache@v3 with: path: /tmp/texlive key: texlive-${{ runner.os }}-${{ hashFiles('**/*.tex') }} restore-keys: | texlive-${{ runner.os }}- - name: Set up TeX Live uses: xu-cheng/latex-action@v3 with: root_file: | resume.tex cv.tex latexmk_use_xelatex: false - name: Create private info file env: PERSONAL_EMAIL: ${{ secrets.PERSONAL_EMAIL }} PERSONAL_PHONE: ${{ secrets.PERSONAL_PHONE }} PERSONAL_SCHOOL_EMAIL: ${{ secrets.PERSONAL_SCHOOL_EMAIL }} PERSONAL_HOME_ADDRESS_LINE1: ${{ secrets.PERSONAL_HOME_ADDRESS_LINE1 }} PERSONAL_HOME_ADDRESS_LINE2: ${{ secrets.PERSONAL_HOME_ADDRESS_LINE2 }} PERSONAL_SCHOOL_ADDRESS_LINE1: ${{ secrets.PERSONAL_SCHOOL_ADDRESS_LINE1 }} PERSONAL_SCHOOL_ADDRESS_LINE2: ${{ secrets.PERSONAL_SCHOOL_ADDRESS_LINE2 }} PERSONAL_SCHOOL_ADDRESS_LINE3: ${{ secrets.PERSONAL_SCHOOL_ADDRESS_LINE3 }} run: | cat > personal_info.tex << 'EOL' % Private version of personal information \\newcommand{\\personalName}{Sean O'Connor} \\newcommand{\\personalEmail}{sean@soconnor.dev} \\newcommand{\\personalPhone}{${PERSONAL_PHONE}} \\newcommand{\\personalWebsite}{soconnor.dev} \\newcommand{\\personalSchoolEmail}{sso005@bucknell.edu} \\newcommand{\\personalHomeAddressLineOne}{${PERSONAL_HOME_ADDRESS_LINE1}} \\newcommand{\\personalHomeAddressLineTwo}{${PERSONAL_HOME_ADDRESS_LINE2}} \\newcommand{\\personalSchoolAddressLineOne}{${PERSONAL_SCHOOL_ADDRESS_LINE1}} \\newcommand{\\personalSchoolAddressLineTwo}{${PERSONAL_SCHOOL_ADDRESS_LINE2}} \\newcommand{\\personalSchoolAddressLineThree}{${PERSONAL_SCHOOL_ADDRESS_LINE3}} EOL envsubst < personal_info.tex > personal_info.tex.tmp mv personal_info.tex.tmp personal_info.tex - name: Upload Private PDFs uses: actions/upload-artifact@v4 with: name: private-documents path: | resume.pdf cv.pdf