この記事では、以下のことを記載します。
はじめに(職務経歴書をMarkdownで記述、GitHubで管理する)
いままで職務経歴書をGoogle Docsで管理していたのですが、
普段Markdownに書き慣れているため、
「職務経歴書もMarkdownで書きたい」という衝動に駆られました。
また、以下の記事や、
エンジニアの登壇を応援する会のSlackワークスペースにて、
求職者の方がGitHubに職務経歴書を公開・レビューしている様子を見て、
と思い、自分も昨年から、
Markdownで職務経歴書を記述、GitHubで管理することにしました。
GitHub ActionsでPDFを生成する
昨今は職務経歴書をPDF化して送ることが多いのではないかと思います。
(印刷して持ってきて...みたいなことは少なくなったと思いたい)
ただ、Markdownファイルを手元でPDF化して送付するのは手間です。
そのため、 パブリックリポジトリなら無料で利用できるGitHub Actionsを用いて、
というワークフローを構築してみました。
md-to-pdf
でMarkdown→PDF出力
README.mdをPDFに変換出力するスクリプトを作成する上で、
md-to-pdf
というライブラリを使用しました。
Markdown→PDFのライブラリは探すといくつか見つかるのですが、
色々設定しなくとも、PDFに出力した後のレイアウトがよさげだったので、
md-to-pdf
を採択しました。
手順
では構築手順を記載していきます。
1. README.mdに職務経歴書を記述する
のリポジトリをforkし、README.mdに自分の職務経歴を記述します。
2. md-to-pdf
をインストール、PDF出力するスクリプトを作成する
gitignore.ioからNode.js用のgitignoreテンプレを取得、
.gitignore
にコピペします。
# https://www.gitignore.io/api/node の内容をコピペする
# Node.jsのバージョン固定 nodenv install 13.6.0 nodenv local 13.6.0 # package.json作成 npm init # md-to-pdfのインストール npm i md-to-pdf
スクリプト内でimport
を用いるため、
package.json
に "type": "module"
を追記します。
// package.json
{
〜省略〜
+ "type": "module",
〜省略〜
}
index.js
にスクリプトを記述します。
// index.js import mtp from "md-to-pdf"; mtp("./README.md", { dest: "README.pdf" }).then(() => { console.log("mtp Done"); });
node index.js
を実行し、README.pdf
が出力されていればOKです。👍
3. ワークフローを記述する
以下のようなワークフロー文を記述します。
- pushをトリガー(起動条件)とする
- ソースをチェックアウトする
- Node.jsの環境構築し、
node ./index.js
でPDF出力スクリプトを実行する - 生成されたPDF(
README.pdf
)をアップロード(ダウンロード可能)とする
実際に記述したワークフローは以下となります。
# .github/workflows/create_pdf.yml name: Create PDF on: push jobs: lint: name: Create PDF runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 1 - uses: actions/setup-node@v1 with: node-version: "13.6.0" - run: | node -v npm install node ./index.js - uses: actions/upload-artifact@v1 with: name: create-pdf path: ./README.pdf
4. git push
でワークフローを実行、PDFがダウンロードできるか確認する
諸々の編集が済んだら、コミット→git push
します。
ブラウザでリポジトリへ遷移→Actionsのリンクをクリックします。
直近で実行されたワークフロー(Create PDFと書かれてる部分)をクリックし、
赤枠のcreate-pdfをクリック→ダウンロード、
PDFが生成されていれば設定完了です。
おわり
以上になります。
PanDocというドキュメント変換ツールを用いたアクションが既にありますので、
そちらを用いるのもありかと思います。
気になる点等ありましたら、FBいただけると助かります。🙏