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: 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: 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: 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: Create private 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 || '' }} PERSONAL_PHONE: ${{ secrets.PERSONAL_PHONE || '' }} 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: 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: Upload Private PDFs uses: actions/upload-artifact@v4 with: name: private-documents path: | resume.pdf cv.pdf