🟢

GitHub Actionsでcron式が書けるみたいですよ

2024/06/07に公開

はじめに

NE株式会社の山本です!
GitHub Actionsでcron式が書けます。
結論これだけですw
「そんなの知ってるよ!」って方は弊社の活用事例を見ていってください。
まわりの後輩に聞いてみると意外と知らない方もいたので、この記事をキッカケに覚えて使ってみてください!

よくやるGitHub Actionsのトリガー

  • プルリクエストができあがった時をトリガーとするもの(ユニットテストとか)
on: pull_request
  • mainにpushされた時をトリガーとするもの(デプロイとか)
on:
  push:
    branches:
      - main

GitHub Actionsで使うのってこういうのが一般的かなと思います。

cron式

このトリガーの部分にcron式を書くことで定期実行が可能になります!
便利ですね!

on:
  schedule:
    - cron: "0 0 * * *"

これは毎日0時0分(UTC)に実行するという設定です。

弊社での活用事例

じゃあこれってどういう時に使うの?っていうのを弊社事例で紹介します。

今週のKibela

弊社は社内ナレッジシェアツールにKibelaを使っています。
毎週どんなKibelaが投稿されたか
イイネ上位記事はどんなものか
をまとめて教えてくれるような使い方をしています。
毎週月曜の朝9時に投稿される設定。

on:
  schedule:
    # 00:00 UTC = 09:00 JST
    - cron: "0 0 * * MON"

プルリクエストの集計とBigQuery連携

毎日「前日にマージされたプルリクエスト」をBigQueryに集計しています。
生産性の可視化として利用しています。

まとめ

わざわざサーバ立てるのもなーと思って手元のローカルマシンでcron実行しているものとかないですか?
それで有給の日とかにPCシャットダウンしてて、その日だけ連携されてないとかないですか?
僕はよくありましたw
そういったものはGitHub Actionsにcron式で仕込んでおくとだいぶ日々の連携が楽になると思います!
大体のケースでしたら無料枠でおさまると思います。
こういう要件の時ってAWS Lambdaが選択肢にあがりがちで、個人的にはGitHub Actionsの方が楽かなーという印象でした。
もちろん良し悪しがあると思いますので選択肢の1つとして覚えておくのがいいと思います。
是非活用してみてくださいね!

NE株式会社の開発ブログ

Discussion