Start Building for Free
CircleCI.comアカデミーブログコミュニティサポート

ワークフローのスケジュール実行からパイプラインのスケジュール実行への移行

2 months ago1 min read
クラウド
このページの内容

はじめに

ワークフローのスケジュール実行には制限事項があります。 ワークフローのスケジュール実行からパイプラインのスケジュール実行に移行すると、以下の制限事項がなくなります。

  • ワークフローのスケジュール実行では実行ユーザーを制御できないため、制限付きコンテキストは使用できない

  • パイプラインの自動キャンセル操作を制御できない

  • 複雑な対策を設けないと、ワークフローのスケジュール実行機能はダイナミックコンフィグでは使用できない

  • パイプラインをトリガーしないと、1つのブランチ上のワークフローのスケジュール実行の変更やキャンセルができない

  • スケジュールを変更しないと、スケジュール実行化されたワークフローのテスト実行を開始できない

  • ワークフローを Webhook で実行する場合は、 PR ブランチからのワークフローのスケジュール実行を制限できない

1. スケジュール実行のトリガーを見つける

ワークフローのスケジュール実行からパイプラインのスケジュール実行に移行するには、まずプロジェクトの .circleci/config.yml でスケジュール実行のトリガーを見つける必要があります。

例えば、以下のように記述されています。

daily-run-workflow:
  triggers:
    - schedule:
        # Every day, 0421Z.
        cron: "21 4 * * *"
        filters:
          branches:
            only:
              - main
  jobs:
    - test
    - build

2. 新しいスケジュールを作成する

新しいスケジュールを作成する前に、cron 式からトリガーを実行する頻度を解釈します。 その後、API または Web アプリのプリジェクト設定を使ってスケジュールを作成します。 それぞれの方法を下記でご紹介します。

API を使用する

CCI トークンを準備します、または API トークンの管理 のページに記載されている手順に従って新しいトークンを作成します。 API を使用 して新しいスケジュールを作成します。 例えば以下のようになります。

curl --location --request POST "https://circleci.com/api/v2/project/<project-slug>/schedule" \
--header "Circle-Token: <PERSONAL_API_KEY>" \
--header "Content-Type: application/json" \
--data-raw '{
    "name": "my schedule name",
    "description": "some description",
    "attribution-actor": "system",
    "parameters": {
      "branch": "main"
      <additional pipeline parameters can be added here>
    },
    "timetable": {
        "per-hour": 3,
        "hours-of-day": [1,15],
        "days-of-week": ["MON", "WED"]
    }
}'

詳細については、 API v2 に関するドキュメントスケジュール のセクションを参照してください。

Web アプリのプロジェクト設定を使用する

  1. CircleCI Web アプリで、サイドバーにある Projects に移動し、プロジェクトの隣にある 省略記号 (…) をクリックします。 Project Settings ボタンは各プロジェクトのランディングページにもあります。

  2. Triggers に移動します。

  3. 新しいスケジュールを作成するには、Add Trigger をクリックします。

  4. フォームに入力して新しいスケジュールを定義し、Save Trigger をクリックします。

このフォームでは、 パイプラインパラメーター を追加するオプションも指定します。これは、設定ファイルで最初に宣言した型指定されたパイプライン変数です。

3. トリガーのセクションを削除する

設定ファイルで、triggers の部分を削除して通常のワークフローと同じようにします。

daily-run-workflow:
  jobs:
    - test
    - build

ドキュメントの改善にご協力ください

このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。

サポートが必要ですか

CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。

または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。