githubのPRを使ってはてなブログの記事を更新するgithub actions

作成した下書き記事をcommit→push→PRすると、markdownを元にはてなブログの下書きを更新する。

下書き記事の作成は以下を参照。
marty-martini.hatenablog.com

詳細

今回もM-Yamashitaさんの記事を参考に、使いやすくカスタマイズした。

詳細は以下の記事を確認する。(ワークフローの説明は全部書いてある、ありがたい)

zenn.dev

仕様

  • バージョン管理されている .md を更新する
  • commit→push→Pull Requestをメインブランチ向けで作る
    • トリガーはメインブランチへのPull Request
  • ファイルの変更があったらblogsyncではてなブログの記事を更新する

工夫したところ

記事が更新されたかをフラグ管理して、不要なstepが実行されないようにした。

    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 2

      - name: Get changed files in the entries
        id: changed-files
        uses: tj-actions/changed-files@v37
        with:
          files: |
            entries/**/*.md

      - name: Has Changed files.
        if: steps.changed-files.outputs.any_changed == 'true'
        run: |
          echo "CHANGED_FILES=true" >> $GITHUB_ENV

      # 記事が更新されていれば、はてなブログ側の記事を更新する(goのインストールは省略)
      - name: Update hatena blog of draft
        if: ${{ env.CHANGED_FILES }}
        run: |
          ~/go/bin/blogsync push ${{ steps.changed-files.outputs.all_changed_files }}

まとめ

記事投稿が楽になれば書く頻度も増えるので、自動化を推進したり、ツールの移動を極力無くすのがよい。