GitHub Actionsに定期実行ができるスケジュールがあると聞き、GASで定期的にweb hookを叩いていたスクリプトを移行した。GASでも満足していたのだが、コミュニティの成果物であったのでパブリックな場所に持っていきたかったことと、それに伴い自分しかいじれないようになっていたため移行した。
やりかた
トリガーイベントの1つであるscheduleを使っていく。これはcronのように記述しGitHub Actionsを実行できる。GitHub Actionsなので、.github/workflows/hoge.yml
の形でファイルには記述する。ファイルの中身は次のようになる。
name: schedule on: schedule: - cron: '0 22 * * *' jobs: build: runs-on: ubuntu-latest steps: - name: post netlify build hook run: curl -X POST -d {} ${{ secrets.WEBHOOK_URL }}
https://github.com/yoshitaku-jp/api-wbew/blob/master/.github/workflows/main.yml
今回は決められた時間にNetlifyのbuild hookを叩きたかったのでstepの中でcurlしている。on.scheduleにcronと記述し、実行したい時間を書いていくだけで終わる。参考情報にURLを載せさせてもらったがmottoさんがやりたかったことを既にやられていたので、ほぼすべて同じスクリプトになってしまった。ありがとうございます。
自分なりの情報としては、scheduleで実行する時間に注意が必要であることが言え、実行時間がUTCであるため日本の時間に変換する必要がある。上に貼り付けたスクリプトでは日本時間の朝7時に実行されるようになっている。
また簡単なTipsとして、GitHubのブラウザ画面からから編集しようとすると、実行時間のプレビューが出てくるのでcronに慣れていない人は少し便利かもしれない。