【個人開発でGitLab】GitLab CIでjobをスケジュール実行する方法

GitLab

GitLab CIで定期的にjobを実行する方法を説明します。

スポンサーリンク

GitLab CIのスケジュール設定

GitLabの左側メニューの『CI/CD』から『Schedules』をクリックして、Scheduling Pipelinesの設定画面を開きます。

Scheduling Pipelinesの設定画面右側の『New schedulechedule』をクリックすると、スケジュールの設定画面が出ます。

ここでスケジュール設定に関して各項目を入力していきます。

設定項目説明
Description新規作成するスケジュールの名前
Interval Pattern スケジュール時刻の設定
時刻設定はcron形式
例)毎朝4時 →  0 4 * * *
Cron Timezone タイムゾーン
日本時間で合わせる場合は、TokyoとかOsakaを選択
Target Branch 実行するブランチ
Variables CI実行時の変数
スポンサーリンク

スケジュール実行のみ時、実行するjobを設定する方法

何も設定が無ければ、リポジトリに何か変更があった場合にGitLab CIは動作し、設定していたjobを実行します。

今回はスケジュールの時だけ実行するjobの設定方法について説明します。

.gitlab-ci.ymlで指定する必要があります。

.gitlab-ci.ymlでjobを設定方法は、onlyでschedulesを指定します。
書き方の例は下です。

job-schedule:
  stage:
    - test
  only:
    - schedules
  script: 
    - echo 'Hello, World!'

これで、 Scheduling Pipelinesで設定した時間のGitLab CIの時のみ、job-scheduleが実行するようになります。

リポジトリ変更時には動作させず、スケジュール実行の時のみ実行させたいjobを指定することができます。

逆にスケジュール実行の時には実行させたくないjobがある場合は、.gitlab-ci.ymlを下記のように設定しましょう。

job-no-schedule:
  stage:
    - test
  except:
    - schedules
  script:
    - echo 'Hello, World!'

onlyとexceptをうまく使い分けることで、スケジュール実行で実行したいjobと実行したくないjobを指定することができます。

コメント

タイトルとURLをコピーしました