JobDescriptionの導入とGitHubActionsでPDF化を自動化した話
こんにちは、ハンズラボの清水です。東急ハンズのECサイトを担当しています。
今回はチームでのJobDescriptionの導入とPDF化を自動化したことを話そうかなと思います。
なぜJobDescriptionを導入したのか
私の所属するCRMチームで採用活動をするにあたり、採用情報を言語化しようといった経緯でJobDescriptionの作成を開始しました。
内容は以下のとおり
- どんな人にきて欲しいか
- どのような技術を使用しているのか
- どのような仕事に携われるか
などの情報をGitHubのREADME.mdを使用して管理しています。
可能であればリポジトリをオープンにして公開したいのですが、まだCRMチームが先駆けてJobDescriptionの作成を行っているので他チームが出揃ってから公開したいと思っています。
全く見せないのもあれなのでチラ見せ。
GitHubActionsでPDF化を自動化
実際に採用活動が始まり、面接に来ていただいた方に作成したJobDescriptionを印刷してお渡ししています。
しかし、マークダウン形式で管理しているので印刷が少し面倒です。
今までは
- GitHubからclone or pull
- VScode拡張やCLIを使用してマークダウンファイルをPDFファイルに変換する
- PDFファイルを印刷する
といったような流れでした。
なのでGitHubActionsを使用して、release/hogehugaのブランチにpushされたら、PDFファイルをGitHubのreleaseにアップロードします。
CRMチームではGitHubActionsを積極的に採用しています。
GithubActionsのブログはこちら
GitHubActionsを作成
主な流れは以下のとおり
- releases/hogehuga ブランチにpushされる
- マークダウンからPDFファイルを作成する
- releasesを作成する
- releasesにPDFファイルをアップロードする
マークダウンからPDFへの変換はmarkdown-pdfを使用しました。
.github/workflows/create_pdf.yml
name: Convert Markdown to PDF
# releases/hogehugaにpushされた時だけ行う
on:
push:
branches:
- 'releases/**'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
# npmを使用するのでnode.jsを入れる
- name: Use Node.js 10.x
uses: actions/setup-node@v1
with:
node-version: 10.x
# markdown-pdfをインストールしPDFに変換
- name: Convert Markdown to PDF
run: |
npm -g install markdown-pdf
markdown-pdf README.md
# releasesを作成
- name: Create Release
id: create_release
uses: actions/create-release@v1.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
# releasesにPDFファイルをアップロード
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./README.pdf
asset_name: README.pdf
asset_content_type: application/pdf
# Slackへ通知
- name: Notify Result to Slack
uses: homoluctus/slatify@master
if: always()
with:
type: ${{ job.status }}
job_name: ':korekamo: CRMのJobDescriptionが更新されたカモ'
channel: '#team_crm'
url: ${{ secrets.SLACK_WEBHOOK }}
いざ実行
とりあえずブランチ名をrelease/shimizuでpushします。
README.pdfが作成されました。Slackにも通知が来ています。
作ったあとで思ったのですがGitHub上でreleaseを作成をトリガーにしてPDFファイルを作成してもよかったですね。
終わりに
ハンズラボのCRMチームは、東急ハンズのEC領域とポイント領域の開発・運用を担当するチームです。
技術選定をチームの裁量で行っており、AWSの各種サービスを積極的に導入しています。
現在CRMチーム内でEC領域を担当していただくWebバックエンドエンジニアを募集しています。