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を指定することができます。
コメント