obsdconvを手動で実行するのはめんどくさいよねって話。

Hugoでノート公開までの流れで書いたように、Obsidianで公開できるノートはHugoで公開しているその過程でobsdconvを利用しているのだけれど、obsdconvを手動で実行するのはめんどくさい。

実行環境はMacなのですが、obsdconvを利用するには基本的にターミナルから実行する必要があります。 めんどうなのでGitHubActionでHugoをbuild & deployする際にobsdconvを実行できないかなぁと試してみたが、途中エラーになって断念中。

しかたないので、MacのAutomatorでobsdconvを実行するターミナルコマンドをアプリケーション化して実行している。

それすら面倒なので、フォルダアクションでターミナルコマンドを実行を試してみたが、新しくファイルを保存した場合は実行されますが、修正した場合は実行されないという罠のため断念。

obsdconvを実行して、Obsidian gitでCommit&Pushを行う…動作が多い Obsidian gitは定期的に実行するようにすれば、obsdconvさえ実行できればそのうちdeployされるのでいいかぁ

そんな現状です。

でもホントはobsdconvを自動化したい。

2022-02-15 追記

動いた。 GitHubActionで動いたよ。

jobs:
  obsdconv:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
 
      - name: Set Up
        uses: actions/setup-go@v2
        with:
          go-version: 1.17
 
      - name: obsdconv
        run: |
         go run github.com/qawatake/obsdconv@latest -src ./Hugo2Public -dst ./Hugo/content/posts -std -pub

go get とか go install で試してみてたけど記述方法がわからなかったのだけれど、go run で直接動かせるとは!

また、GitHubActionによる変更をメインリポジトリにPushしておくことをわすれずに!

      - name: Push diff
        run: |
          git remote set-url origin https://github-actions:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}
          git config --global user.name "${GITHUB_ACTOR}"
          git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com"
          if (git diff --shortstat | grep '[0-9]'); then \
            git add .; \
            git commit -m "GitHub Actions による差分を Push"; \
            git push origin HEAD:${GITHUB_REF}; \
          fi

あとはこのWorkflowが完了したら、Hugoをbuild & deployしてNetlifyに送るWorkflowを実行するようにしたら完成。