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 env: PERSONAL_NAME: ${{ secrets.PERSONAL_NAME || github.repository_owner }} PERSONAL_EMAIL: ${{ secrets.PERSONAL_EMAIL || '' }} PERSONAL_WEBSITE: ${{ secrets.PERSONAL_WEBSITE || '' }} PERSONAL_SCHOOL_EMAIL: ${{ secrets.PERSONAL_SCHOOL_EMAIL || '' }} run: | cat > personal_info.tex << 'EOL' % Public version of personal information \\newcommand{\\personalName}{${PERSONAL_NAME}} \\newcommand{\\personalEmail}{${PERSONAL_EMAIL}} \\newcommand{\\personalPhone}{} \\newcommand{\\personalWebsite}{${PERSONAL_WEBSITE}} \\newcommand{\\personalSchoolEmail}{${PERSONAL_SCHOOL_EMAIL}} \\newcommand{\\personalHomeAddressLineOne}{} \\newcommand{\\personalHomeAddressLineTwo}{} \\newcommand{\\personalSchoolAddressLineOne}{} \\newcommand{\\personalSchoolAddressLineTwo}{} \\newcommand{\\personalSchoolAddressLineThree}{} EOL envsubst < personal_info.tex > personal_info.tex.tmp mv personal_info.tex.tmp personal_info.tex - 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_NAME: ${{ secrets.PERSONAL_NAME || github.repository_owner }} PERSONAL_EMAIL: ${{ secrets.PERSONAL_EMAIL || '' }} PERSONAL_PHONE: ${{ secrets.PERSONAL_PHONE || '' }} PERSONAL_WEBSITE: ${{ secrets.PERSONAL_WEBSITE || '' }} 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}{${PERSONAL_NAME}} \\newcommand{\\personalEmail}{${PERSONAL_EMAIL}} \\newcommand{\\personalPhone}{${PERSONAL_PHONE}} \\newcommand{\\personalWebsite}{${PERSONAL_WEBSITE}} \\newcommand{\\personalSchoolEmail}{${PERSONAL_SCHOOL_EMAIL}} \\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