注記
この GitHub アクションは、CircleCI GitHub アプリと統合されている CircleCI プロジェクトをまだサポートしていません。 CircleCI プロジェクトの URL がhttps://app.circleci.com/projects/organizations/circleci%のような場合は、CircleCI GitHub アプリと統合しており、この GitHub アクションはまだサポートされていません。 ご質問やフィードバックがございましたら、[email protected] までご連絡ください。 CircleCI プロジェクトの URL がhttps://app.circleci.com/projects/project-dashboard/github/のような場合、CircleCI の OAuth アプリ統合を使用しており、この GitHub アクションがサポートされています。
GitHub Actions を使用して、GitHub 上の任意のイベントから CircleCI パイプラインをトリガーします。
目的の CircleCI パイプラインの GitHub アクションのワークフローを作成します。
これを行うには、ワークフロー YAML ファイル ( main.yml使用します) を./.github/workflowsに追加します。
この例ではreleaseトリガーが示されています。ワークフローをトリガーするための GitHub イベントのいずれかを試してください: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
CircleCI パイプライン内の追加のコンテキスト メタデータのステップのカスタム名と ID を選択します
上: リリース: タイプ: [公開] ジョブ: トリガー-circleci: 実行: ubuntu-最新のステップ:
- 名前: <カスタマイズ名> ID: <カスタマイズ ID> 使用: CircleCI-Public/[email protected] 環境: CCI_TOKEN: ${{ Secrets.CCI_TOKEN }}パイプラインをトリガーするために使用されるパーソナル API トークンを含むCCI_TOKENという名前の暗号化されたシークレットを作成します。これはマシン ユーザーであることをお勧めします。
パイプライン パラメーターの定義を CircleCI 構成に追加します。このデータは、トリガーされたときに GitHub アクションによって入力されます。
.circleci/config.ymlファイルの先頭に次の行を追加します。バージョン2.1を指定していることを確認してください
バージョン: 2.1パラメータ: GHA_Actor: タイプ: 文字列デフォルト: "" GHA_Action: タイプ: 文字列デフォルト: "" GHA_Event: タイプ: 文字列デフォルト: "" GHA_Meta: タイプ: 文字列デフォルト: ""
パイプライン パラメーター データを使用して、ワークフローを条件付きで実行します。
参照: 例
追加のメタデータを指定できるオプションの入力パラメータ。
必須: false
description : オプションの追加メタデータ パラメーター。 CircleCI パイプラインで GHA_Meta として利用可能になります。
ジョブ: トリガー-circleci: 実行: ubuntu-最新のステップ:
- 名前: <カスタマイズ名> id: <カスタマイズ ID> 使用: CircleCI-Public/[email protected] with: GHA_Meta: "<カスタム データ>" env: CCI_TOKEN: ${{ Secrets.CCI_TOKEN }}必須: false
description : ターゲット プロジェクトの CircleCI プロジェクト スラグ (例: github/<org>/<repo> )。指定しない場合は、現在の GitHub リポジトリのスラッグが使用されます。
ジョブ: トリガー-circleci: 実行: ubuntu-最新のステップ:
- name: <カスタマイズ名> id: <カスタマイズ ID> 使用: CircleCI-Public/[email protected] with: target-slug: "gh/<org>/<repo>" # トリガーします外部プロジェクト環境のパイプライン: CCI_TOKEN: ${{ Secrets.CCI_TOKEN }}| 分野 | データ型 | 説明 |
|---|---|---|
id | 文字列 (uuid) | パイプラインの一意の ID。 |
state | 文字列 (列挙: "作成済み" "エラー" "セットアップ保留中" "セットアップ" "保留中") | パイプラインの現在の状態。 |
number | 整数 (int64) | パイプラインの番号。 |
created_at | 文字列(日付/時刻) | パイプラインが作成された日時。 |
デフォルトでは、リポジトリが CircleCI に接続されているときに、そのプロジェクトの構成内のワークフローで実行を妨げる条件やフィルターが指定されていない場合、ワークフローはデフォルトですべてのpushイベントで実行されます。
これは、CircleCI からのpushイベントや、GitHub アクションによってトリガーされた他のイベントで、ジョブを誤って 2 回実行する可能性があることを意味する可能性があります。
すべての API トリガーを提供するために GitHub Actions に依存している場合は、CircleCI 構成の各ワークフローに、実行を GitHub Action トリガーのみに制限する条件が含まれていることを確認してください。
例
ワークフロー: # このワークフローは、 # GitHub アクション経由でのみ、条件付きでトリガーされるように設定されています。 # フィルターされていないワークフローが他にない場合、通常のプッシュ イベントは無視されます。 テスト: いつ: << Pipeline.parameters.GHA_Action >> ジョブ:
- テスト