🗂

【GitHubActions】workflow_dispatchとcronのサンプル

2024/08/04に公開

はじめに

GitHub Actionsは、ビルド、テスト、およびデプロイメント パイプラインを自動化できる継続的インテグレーションおよび継続的デリバリープラットフォームです。
基本的にGitHub上で動いてくれるので、Jenkinsなどのように自前のサーバを用意してワークフロー等を実行する必要がないところが嬉しいです(学習コスト的にも)

ワークフローとは

GitHub Actionsのワークフローは、ソフトウェア開発ライフサイクルタスク(SDLC)を自動化するためにリポジトリに設定するプロセス(?)です。
このワークフローを使用すると、いろんなプロジェクトをビルド、テスト、パッケージリリース、およびデプロイできます。
ワークフローの記述スタイルとしては、YAMLで書けるようになっています。

本記事では

本記事では、ワークフローを実行するにあたっての使用することのできるトリガー(workflow_dispatch, cron)について書いてみます。

workflow_dispatch(手動実行が可能)をトリガーとするワークフロー

下記は、ワークフローを手動で実行する際のファイル。
URLからアクセスし、Manual Hello Echo を押下し、Run Workflow を選択して実行をするとワークフローが動作するはずです。
できなかったら、自分ので試してみてください。

name: Manual Hello Echo

on:
  workflow_dispatch:  # 手動実行のトリガー

jobs:
  say-hello:
    runs-on: ubuntu-latest
    steps:
      - name: Echo Hello
        run: echo "hello"
  • workflow_dispatch イベントを使用して手動実行可能に
  • 単純に "hello" という文字列をecho

URL:https://github.com/yyoosshh/sandbox-githubactions/actions

cron(定期実行)をトリガーとするワークフロー

下記は、毎時0分に echo を実行するワークフローです。

name: Hourly Time Echo

on:
  schedule:
    - cron: '0 * * * *'  # 毎時0分に実行

jobs:
  echo-time:
    runs-on: ubuntu-latest
    steps:
      - name: Get current time
        run: echo "Current time is $(date)"
  • schedule イベントを使用して、cron式で毎時0分に実行されるように設定
  • date コマンドを使用して現在時刻を出力

ワークフローが配置されているレポジトリ

こちらのレポジトリに上述したワークフローが配置されており、cronは定期実行されています。

URL:https://github.com/yyoosshh/sandbox-githubactions/actions/workflows/cron-workflow.yaml

GitHubで編集を提案

Discussion