GitHub Actionを使って、Markdownで書いた職務経歴書を自動でPDFにして出力しておく
今回は、GitHub Actionを使って、Markdownで書いた職務経歴書を自動でPDFにして出力しておく設定をしていきます。
職務経歴書をGitHubで管理する記事はこちら
www.techstation.jp
GitHub Actionsを触ってみる
まずは、GitHub Actionsのサンプルを触っていきたいと思います。
help.github.com
リポジトリのTOP画面に、Actionsというタブがあります。
クリックするとActionのGet start画面が表示されます。
workflowを設定するとこの画面に実行履歴が表示されます。
では、「Sample workflow」からworkflowを作成していきます。
ymlファイルの編集画面になります。
このサンプルのymlですが、masterにpushすると、workflowが走るようになっているみたいです。
on: push: branches: [ master ]
とりあえず、workflowが動くことを確認してみたいので、Start commitでcommitしてしまいます。
無事、workflowが実行されました!
コミットしたymlファイルには、「Hello, world!」とか、「Add other ......」とかをecho出力する記述がありました。
なので、きちんと出力されているかを確認していきます。
リンクを辿って詳細をみていきます。
きちんとechoで文言が出力されていますね。
さて、サンプルの確認もできたので、どんどん修正していこうと思います。
workflowの構成
今回の構成を構築するにあたり、下記のサイトを大いに参考にさせていただきました。
結果、下記のようなworkflowになりました。
# This is a basic workflow to help you get started with Actions name: Create PDF # Controls when the action will run. Triggers the workflow on push or pull request # events but only for the master branch on: push: branches: [ master ] # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 # node.jsのセットアップ - name: Use Node.js 10.x uses: actions/setup-node@v1 with: node-version: 10.x # markdown-pdfをインストールしPDFに変換 - name: Create PDF run: | npm -g install markdown-pdf markdown-pdf resume.md # workflowの成果物としてPDFをアップロードしておく - uses: actions/upload-artifact@v1 with: name: create-pdf path: ./resume.pdf
これくらいの処理であれば、スッキリかけてとても良いですね。
実行結果
成功!
そしてきちんとPDFもアップロードされていました!
slackにも通知したい
せっかくなので、実行されたら結果をslackに通知するようにしましょう。
理由は特にありませんが、CIは回したらslackに通知しておくものと先生がいってました。
今回は、私が個人開発用に使用している個人slackに通知を飛ばします。
あらかじめ、slackのwebhookURLを取得し、リポジトリのSecretsに登録しておきます。
さらにymlファイルに以下の記述を追記しておきます。
通知するためのライブラリはこちらを使用させていただきました。
# Slackへ通知 - name: Notify Result to Slack uses: 8398a7/action-slack@v3 if: always() with: status: ${{ job.status }} job_name: '職務経歴書のPDFが作成されました!' icon_emoji: ':octocat:' channel: '#integration' fields: repo,message,commit,author,action,eventName,ref,workflow # selectable (default: repo,message) env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
すると、こんな感じで通知がきました!
いくつか設定が聞いてなさそうですが、一旦スルーしちゃいます。
まとめます
GitHub Actionsとっても便利ですね。
一応、利用しているプランごとに制限があるようなのですが、現状では特にきにする必要はありませんでした。
今回で、職務経歴書をCIするための基盤が完成しました。
次回以降で、校正ツールによるCIなども入れていきたいと思います。
今回は以上です。