エンジニア

JobDescriptionの導入とGitHubActionsでPDF化を自動化した話

JobDescriptionの導入とGitHubActionsでPDF化を自動化した話

こんにちは、ハンズラボの清水です。東急ハンズのECサイトを担当しています。
今回はチームでのJobDescriptionの導入とPDF化を自動化したことを話そうかなと思います。

なぜJobDescriptionを導入したのか

私の所属するCRMチームで採用活動をするにあたり、採用情報を言語化しようといった経緯でJobDescriptionの作成を開始しました。
内容は以下のとおり

  • どんな人にきて欲しいか
  • どのような技術を使用しているのか
  • どのような仕事に携われるか

などの情報をGitHubのREADME.mdを使用して管理しています。

可能であればリポジトリをオープンにして公開したいのですが、まだCRMチームが先駆けてJobDescriptionの作成を行っているので他チームが出揃ってから公開したいと思っています。

全く見せないのもあれなのでチラ見せ。

GitHubActionsでPDF化を自動化

実際に採用活動が始まり、面接に来ていただいた方に作成したJobDescriptionを印刷してお渡ししています。

しかし、マークダウン形式で管理しているので印刷が少し面倒です。
今までは

  1. GitHubからclone or pull
  2. VScode拡張やCLIを使用してマークダウンファイルをPDFファイルに変換する
  3. PDFファイルを印刷する

といったような流れでした。
なのでGitHubActionsを使用して、release/hogehugaのブランチにpushされたら、PDFファイルをGitHubのreleaseにアップロードします。

CRMチームではGitHubActionsを積極的に採用しています。
GithubActionsのブログはこちら

GitHubActionsを作成

主な流れは以下のとおり

  1. releases/hogehuga ブランチにpushされる
  2. マークダウンからPDFファイルを作成する
  3. releasesを作成する
  4. 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バックエンドエンジニアを募集しています。

一覧に戻る