Github ActionsでGoプログラムを定期実行させてみる。

Github ActionsでGolangのプログラムを定期実行させてみました。
この記事を読むことで、Goのプログラムを定期実行させられるようになります。

目次

定期実行するGolangプログラムを準備する

main.goを用意します。

package main

import (
    "log"
)

func main() {
    log.Println("run main.")
}

「run main」とログ出力するだけのプログラムです。

workflowsを準備する

リポジトリ内に.github/workflowsという名前でディレクトリを作成し 、以下のようなymlファイルを配置します。

on:
  schedule:
    - cron: '*/5 * * * *'

jobs:
  run:
    name: run
    runs-on: ubuntu-latest
    steps:
      - name: Set Up
        uses: actions/setup-go@v2
        with:
          go-version: 1.19

      - name: Checkout
        uses: actions/checkout@v2

      - name: Run
        run: go run main.go

ymlファイルの概要

on

プログラムを実行するトリガを設定します。

  • schedule : 定期実行の間隔を指定できます。
    分(00-59) 時(0-23) 日(1-31) 月(1-12) 曜日(0-6)の順で設定します。
    以下の*/5などのようにすると「5分ごとに」という設定ができます。
  schedule:
    // 9時から21時の間に5分間隔で実行
    - cron: "*/5 0-12 * * *"
その他のよく使うトリガ
  • push : プッシュ時
  • deployment : デプロイ時
  • pull_request : プルリクエストアクションが行われた時
  • release : リリースアクションが行われた時

jobs

実行するジョブを指定します。複数指定可能で、実行順序の指定もできるらしいです。
ジョブは仮想環境でインスタンスで実行されます。

name

ジョブ名

runs-on

ジョブのランナー

steps

アクションの集合。
同一ジョブのstepsは同一の仮想環境で実行される。

アクション

ジョブが実行する処理。
コマンド実行や公開アクションの実行ができる。

おわりに

簡単な定期実行を試してみました。
github actionsで色んなことしてみたいです。
https://docs.github.com/ja/actions