LoginSignup
0
0

More than 1 year has passed since last update.

Drone CIでのcron設定 (画面とコマンドと)

Last updated at Posted at 2021-09-23

はじめに

  • Droneでのcron設定は, 公式ドキュメントを含めてインターネットに情報が少ないため, 調べたことを書く
  • Droneでのcron設定は, ハマりポイントがあるため, 注意を書き残す
  • 確認バージョン: 1.9.1

cron追加方法

画面, コマンド, APIの3種類ある.

  • 画面からだと, 実行周期のタイミングが5種類 (@hourly, @daily, @monthly, @weekly, @yearly) のみ
  • コマンドからだと, 一般的なcron形式 (0 */30 * * * * とか) を使える
  • APIからのやり方は, ここでは割愛する

画面からのcron追加

drone_cron_ly.png

  1. cronを追加したいリポジトリを選択
  2. Settings」タブを選択
  3. Cron Jobs」で「Cron Job Name」「Cron Job Branch」を入力. 実行周期を選択
  4. Add A CRON JOB」を押下
  5. Cron Jobs」で追加した設定が確認できたらOK

コマンドからのcron追加

事前準備

drone CLIをインストール

以下の公式を参照

Personal Tokenを設定

  1. 右上の自分のアイコンから「User Settings」をクリック

  2. Your Personal Token」で自分のトークンを控える.
    Example CLI Usage」に記載のように環境変数を設定する.

export DRONE_SERVER=https://example.drone.skkzsh.me
export DRONE_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

コマンドからのcron追加 (例)

以下, リポジトリやcron名, 実行周期などは, 読み替えてください.

drone cron ls skkzsh/app

drone cron add skkzsh/app nightly "0 */30 * * * *" --branch develop

drone cron ls skkzsh/app
drone cron info skkzsh/app nightly

画面でも「Settings」→「Cron Jobs」で追加した設定が確認できる.

cron削除方法

コマンドで削除はできないため, 画面から消す

drone.ymlの書き方

  • 公式情報を参照

注意ポイント

Droneはデフォルトでは1時間ごとしかcron jobを確認しないらしい. そのため, 実行周期を10分ごとに設定しても1時間ごとに実行される.

Droneは実行時刻を保証しない. 何分に設定しても, 00分に実行される. そのため, 設定値より最大1時間, 実行遅延が発生する可能性がある.

タイムゾーンは JST (日本時間) でなく, UTCのため, cronの設定時刻に注意.

公式情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0