ざるごのブログ

Resume(職務経歴書)をLaTeXで書いて、個人情報を伏せ字にしたPDFがGitHub Pagesから自動配信されるようにした(GitHub Actions使用)

投稿日時: 2023/03/08 17:11

最終更新日時: 2023/03/08 17:11

GitHubリポジトリ

https://github.com/zalgo3/resume

やったこと

LaTeXスタイルファイルのmoderncvを使ってResumeを作成

ここでは詳しい使い方は解説しないが、非常に美しいResumeが直観的に作れる。

個人情報に関わるファイルを別ファイルに切り分け、.gitignoreに追加

住所などの個人情報がWeb上に公開されては困るので、.personal_data.texというファイルを作り、.gitignoreに追加の上、\inputコマンドで読み込んだ。

ただし、そのまま読み込むと、.personal_data.texが存在しない時にエラーになるため、\IfFileExistsコマンドを使い、

\IfFileExists{.personal_data.tex}{ \input{.personal_data.tex} } {%Else \input{.personal_data_sample.tex} }

とし、.personal_data_sample.texには、

\address{***DUMMY ADDRESS***}{} \mobile{***-****-****} \email{***dummy***@example.com}

のように、ダミーデータを入力した。

GitHub Actionsを使い、自動コンパイル、自動デプロイを行う

.github/workflows/gh-pages.ymlに以下のワークフローを記述。

name: github-pages on: push: branches: - master jobs: deploy: name: github-pages runs-on: ubuntu-latest container: zalgo3/texlive steps: - name: Checkout repository uses: actions/checkout@v2 - name: Build PDF file run: latexmk resume.tex && latexmk -c && mkdir -p pdf && cp resume.pdf ./pdf/ - name: Deploy pages uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./pdf

ここで、LaTeXの環境には、Dockerコンテナ[zalgo3/texlive](https://github.com/zalgo3/texlive)(arcatdmz/texliveを自分用にカスタマイズしたもの)を用い、GitHub Pagesへのデプロイには、[peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages)を使った。

注意点としては、GITHUB_TOKENの権限が、デフォルトではReadしかないため、リポジトリのSettings->Actions->Workflow Permissionsから、Read and write permissionsを選択してやる必要がある。

Actionsが正常に走れば、gh-pagesブランチが作られ、PDFがpushされる。

リポジトリのSettings->Pages->Sourceから、gh-pagesブランチを選択し、再度Actionsを実行してやると、https://zalgo3.github.io/resume/resume.pdfからPDFが配信されるはずである。

注意点として、GitHub Pagesのルートディレクトリにアクセスしても、PDFを見ることができない。

この解決策としては、index.htmliframeタグなどを用いてPDFを埋め込むことなどが考えられるが、単に直接PDFにアクセスしたほうが見やすいと思うので、ここでは特に対策は行っていない。