パイプラインソースは、データ処理および統合システムの主要なコンポーネントです。さまざまなデータソースからデータを取得し、転送します。
背景情報
Flow は、コードソース、アーティファクトソース、および Flow パイプラインソースの設定をサポートしています。複数のソースを設定できます。
コードソース: Codeup、GitHub、GitLab を含む一般的なコードソースをサポートします。
アーティファクトソース: Alibaba Cloud DevOps Packages ソースと Alibaba Cloud Container Registry (ACR) Enterprise Edition イメージソースをサポートします。
Flow パイプラインソース: 他の Flow パイプラインをソースとして設定し、パイプラインが互いの実行をトリガーできるようにサポートします。
例
単一のパイプラインソース
以下は、単純なパイプラインソース設定の例です。
sources:
my_repo:
type: codeup
name: コードソース名
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git
branch: master
triggerEvents:
- push
- tagPush
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>
複数のパイプラインソース
以下は、複数のパイプラインソース設定の例です。
sources:
repo1:
type: codeup
name: コードソース名
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/repo1.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: master
triggerEvents:
- push
- tagPush
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>
repo2:
type: codeup
name: コードソース名
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/repo2.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: master
triggerEvents:
- push
- tagPush
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>
defaultWorkspace: repo1Packages ソースの例
以下は、Apsara DevOps Packages の汎用アーティファクトをパイプラインソースとして設定する例です。
sources:
my_packages:
type: packages
repoType: generic # リポジトリタイプ。汎用アーティファクトリポジトリのみがサポートされています。
repo: "<リポジトリ ID>, 例: flow_generic_repo" # リポジトリ ID。packages.aliyun.com ページの基本情報からリポジトリ ID を取得できます。
artifact: "<アーティファクト名>, 例: Artifacts_1418394" # アーティファクト名。
version: "<アーティファクトバージョン>, 例: 2024-03-28-11-53-39" # アーティファクトバージョン。「latest」と入力すると、最新バージョンが使用されます。
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>ACR ソースの例
以下は、Alibaba Cloud ACR Enterprise Edition イメージをパイプラインソースとして設定する例です。
sources:
my_acr:
type: acr
region: cn-hangzhou
instance: "<ACR EE インスタンス>, 例: yunxiao" # ACR インスタンス名。
namespace: default # 名前空間。
imageRepo: "<Docker レジストリ>, 例: test" # イメージリポジトリ名。
imageTag: v1.0 # イメージバージョン。
versionFilter: .* # イメージバージョンのフィルター規則。正規表現を入力します。
triggerEvents:
- pushCompleted
- scanCompleted
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>
Flow パイプラインソースの例
以下は、Flow パイプラインをパイプラインソースとして設定する例です。
sources:
ci_pipeline:
type: flowPipeline
name: Flow パイプラインソース名
flowPipeline: <Flow パイプライン ID> # 例: rfkkfe6tj1mcaqtz
build: lastSuccessfulBuild
triggerEvents: buildSuccess
詳細な説明
sources
パイプラインソースは、ソースタイプ、ソースアドレス、デフォルトブランチなど、複数のソースエントリの設定をサポートします。
defaultWorkspace
このパラメーターは、パイプラインに複数のコードソースがある場合に必要です。パイプラインタスクにワークスペースが指定されていない場合、タスクは指定されたデフォルトのワークスペースで自動的に実行されます。特定の <source_id> を入力して指定します。例:
sources:
repo1:
......
repo2:
......
defaultWorkspace: repo1
sources.<source_id>
必須。パイプラインソースの ID です。パイプラインの実行時に、ソースファイルは <source_id> ディレクトリにダウンロードされます。パスは /root/workspace/<source_id> です。ACR イメージソースはダウンロードされません。source_id には、文字、数字、アンダースコア (_) のみを含めることができます。文字で始まり、30 文字以内でなければなりません。
sources.<source_id>.type
必須。パイプラインソースのタイプです。Flow は、Codeup、GitHub、GitLab、SVN、、packages、ACR など、さまざまなパイプラインソースタイプをサポートしています。
パイプラインソースタイプ | YAML 識別子 | 備考 |
サンプルコードソース | gitSample |
|
Alibaba Cloud DevOps Codeup | codeup |
|
汎用 Git | git |
|
GitHub | githubApp |
|
GitLab | gitlab |
|
セルフホスト GitLab | customGitlab |
|
Bitbucket | bitbucket |
|
Flow パイプライン | flowPipeline |
|
Packages 汎用アーティファクト | packages |
|
Alibaba Cloud ACR Enterprise Edition イメージリポジトリ | acr |
|
sources.<source_id>.name
任意。パイプラインソースの表示名です。名前は 30 文字までです。
sources.<source_id>.endpoint
このパラメーターは、パイプラインソースがコードソースの場合に必要です。コードソースのアドレスを指定します。SSH と HTTPS の両方のアドレスがサポートされています。例: https://codeup.aliyun.com/abc/Codeup-Demo.git。
Apsara DevOps によって提供されるサンプルコードリポジトリ。コードソースのアドレスは次のとおりです:
Java: https://atomgit.com/flow-example/spring-boot.git
Go: https://atomgit.com/flow-example/go-gonic.git
Python: https://atomgit.com/flow-example/python-tornado.git
C++: https://atomgit.com/flow-example/gcc-helloworld.git
NodeJS: https://atomgit.com/flow-example/node-expressjs.git
PHP: https://atomgit.com/flow-example/php-laravel-blog.git
.Net Core: https://atomgit.com/flow-example/dotnet-core-sample.gitsources.<source_id>.branch
任意。コードソースのデフォルトブランチを指定します。このパラメーターが設定されていない場合、デフォルト値は master です。このブランチは、パイプラインがスケジュールまたは外部システムによってトリガーされるときに使用されます。ブランチ名を入力します。例:
sources:
my_repo:
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: masterサンプルコードソースは master ブランチのみをサポートします。
sources.<source_id>.branchesFilter
任意。パイプラインを実行できるブランチのフィルター規則を指定します。正規表現を入力します。フィルター規則に一致するブランチまたはタグのみがパイプラインの実行をトリガーできます。この規則は、手動、コードソース、スケジュール、および Webhook トリガーを含むすべてのトリガータイプに適用されます。
sources:
my_repo:
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: release
branchesFilter: release_* # release_ で始まるブランチのみが実行できます。sources.<source_id>.submodule
任意。このパラメーターは、パイプラインソースがコードソースの場合にサブモジュールをクローンするかどうかを指定します。デフォルト値は false です。true または false を入力します。例:
sources:
my_repo:
type: codeup
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: master
submodule: truesources.<source_id>.cloneDepth
任意。パイプラインソースがコードソースの場合、このパラメーターはクローンする最近のコミットバージョンの数を指定します。デフォルトでは、すべてのバージョンがクローンされます。カスタムのクローン深度は、ワークスペースの準備を高速化できます。値 0 は、すべてのバージョンがクローンされることを示します。0 以上の整数を入力できます。例:
sources:
my_repo:
type: codeup
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: master
cloneDepth: 10sources.<source_id>.triggerSecret
GitHub のみ。
GitHub の Webhook 設定に Secret を追加した後、同じ値をパイプライン設定に追加する必要があります。これは、Webhook が処理されるときに署名を検証するために使用されます。
値を直接入力するか、変数を使用できます。例:
triggerSecret: ${SECRET}または:
triggerSecret: theSecretsources.<source_id>.triggerEvents
任意。パイプラインをトリガーするソースイベントを指定します。デフォルトでは、パイプラインはソースイベントによってトリガーされません。パイプラインは、設定されたイベントが発生した場合にのみ実行されます。
トリガーイベント | YAML 識別子 | 備考 |
コードのプッシュ | push | |
タグの作成 | tagPush | 一部のコードソースのみ。 |
マージリクエストの完了 | mergeRequestMerged | 一部のコードソースのみ。 |
マージリクエストの作成または更新 | mergeRequestOpenedOrUpdate | 一部のコードソースのみ。 |
パイプラインの実行成功 | buildSuccess | Flow パイプラインソースのみ。 |
パイプラインの実行失敗 | buildFail | Flow パイプラインソースのみ。 |
パイプラインの実行キャンセル | buildCancel | Flow パイプラインソースのみ。 |
ACR イメージのプッシュ完了 | pushCompleted | ACR パイプラインソースのみ。 |
ACR イメージのスキャン完了 | scanCompleted | ACR パイプラインソースのみ。 |
例:
sources:
my_repo:
type: codeup
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: master
triggerEvents:
- push
- tagPushsources.<source_id>.branchFilter (非推奨)
このキーワードは 非推奨 です。代わりに sources.<source_id>.branchesFilter を使用してください。
任意。パイプラインソースがコードソースで、コードコミットトリガーが有効になっている場合、ブランチフィルター条件を設定できます。デフォルトでは、ブランチはフィルターされません。パイプラインは、条件が満たされた場合にのみ実行されます。ブランチ名を入力します。正規表現がサポートされています。例:
sources:
my_repo:
type: codeup
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: master
triggerEvents: push
branchFilter: ^feature.* # このキーワードは非推奨です。代わりに branchesFilter を使用してください。
sources.<source_id>.pathFilter
任意。パイプラインソースがコードソースで、コードコミットトリガーが有効になっている場合、コードパスフィルター条件を設定できます。デフォルトでは、コードパスはフィルターされません。パイプラインは、指定されたパス内のコードファイルがコミットされた場合にのみ実行されます。コードパスを入力します。正規表現がサポートされています。例: Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
sources:
my_repo:
type: codeup
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: master
triggerEvents: push
pathFilter: ^file_path.*sources.<source_id>.branchMode
任意。デフォルトでは、ブランチモードは無効になっています。パイプラインに複数のパイプラインソースがある場合、ブランチモードを有効にできるコードソースは 1 つだけです。
sources.<source_id>.branchMode.branchModelBranchFilter
任意。これはブランチモードのパラメーターです。コードソースでブランチモードが有効になっており、branchModelBranchFilter が設定されている場合、branchModelBranchFilter の正規表現に一致するブランチのみがパイプラインを実行できます。
sources.<source_id>.branchMode.keepIntegrationAreaBranch
任意。これはブランチモードのパラメーターです。値はブール値で、デフォルトは false です。true に設定すると、ブランチがマージされた後も統合エリアはクリアされません。
sources.<source_id>.branchMode.baseBranch
これはブランチモードのパラメーターです。コードソースでブランチモードが有効になっている場合は、baseBranch を指定する必要があります。baseBranch は、ブランチモードでリリースブランチがプルされるベースブランチです。例: Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
sources:
my_repo:
type: codeup
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: master
branchMode:
baseBranch: master
keepIntegrationAreaBranch: false
branchModelBranchFilter: feature/.*sources.<source_id>.certificate
このパラメーターは、sources.<source_id>.type が gitSample、git、または flowPipeline の場合は任意です。他のシナリオでは必須です。このパラメーターは、コードソースをクローンしたり、外部の Jenkins サービスを呼び出したりするための権限付与情報を設定します。サービス接続を使用する場合は、type を serviceConnection に設定し、サービス接続 ID を入力します。サービス接続 ID は、[エンタープライズ設定] の [サービス接続管理] から取得できます。例:
sources:
my_repo:
type: codeup
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: master
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>汎用 Git やセルフホスト GitLab などの一部のコードソースは、エンタープライズ公開鍵を使用したコードのクローンをサポートしています。この場合、type を sshKey に設定できます。例:
sources:
my_repo:
type: customGit
endpoint: https://<Apsara DevOps インスタンス ID>.devops.alibabacloudcs.com/codeup/abc/Codeup-Demo.git # Apsara DevOps インスタンス ID は 3〜8 桁の数字と文字の組み合わせです。
branch: master
certificate:
type: sshKeysources.<source_id>.flowPipeline
このパラメーターは、パイプラインソースが Flow パイプラインの場合に必要です。Flow パイプライン ID (16 文字のランダムな文字列) を入力します。例:
sources:
my_ci_pipeline:
type: flowPipeline
flowPipeline: atf******cmaofmk
......sources.<source_id>.build
このパラメーターは、パイプラインソースが Jenkins ソースまたは Flow パイプラインの場合に必要です。特定の Jenkins タスクまたは Flow パイプラインのビルド番号を入力します。
トリガーイベント | YAML 識別子 | 備考 |
最終成功実行 | lastSuccessfulBuild | Flow パイプライン |
特定の実行番号 | ビルド番号 | Flow パイプライン |
例:
sources:
my_jenkins:
type: jenkins
jenkinsJob: job-test
build: lastBuildsources.<source_id>.repoType
このパラメーターは、パイプラインソースが Packages アーティファクトソースの場合に必要です。`repoType` は、汎用アーティファクトタイプ `generic` のみをサポートします。
sources:
my_repo:
type: packages
repoType: generic
repo: flow_generic_repo
artifact: Artifacts_1418394
version: 2024-03-28-11-53-39
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>sources.<source_id>.repo
このパラメーターは、パイプラインソースが Packages アーティファクトソースの場合に必要です。特定のリポジトリ ID を入力します。リポジトリ ID は、packages.aliyun.com ページの基本情報から取得できます。
sources:
my_repo:
type: packages
repoType: generic
repo: flow_generic_repo
artifact: Artifacts_1418394
version: 2024-03-28-11-53-39
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>sources.<source_id>.artifact
このパラメーターは、パイプラインソースが Packages アーティファクトソースの場合に必要です。特定のアーティファクト名を入力します。
sources:
my_repo:
type: packages
repoType: generic
repo: flow_generic_repo
artifact: Artifacts_1418394
version: 2024-03-28-11-53-39
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>
sources.<source_id>.version
このパラメーターは、パイプラインソースが Packages アーティファクトソースの場合に必要です。特定のアーティファクトバージョン番号を入力します。
sources:
my_repo:
type: packages
repoType: generic
repo: flow_generic_repo
artifact: Artifacts_1418394
version: 2024-03-28-11-53-39
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>sources.<source_id>.region
このパラメーターは、パイプラインソースが ACR イメージソースの場合に必要です。サポートされているリージョンのみ入力できます。
sources:
my_repo:
type: acr
region: cn-hangzhou
instance: yunxiao
namespace: default
imageRepo: test
imageTag: 2024-04-07-17-18-26-YAML
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>sources.<source_id>.instance
このパラメーターは、パイプラインソースが ACR イメージソースの場合に必要です。現在のサービス接続で権限が付与されている ACR Enterprise Edition インスタンスの名前を入力します。
sources:
my_repo:
type: acr
region: cn-hangzhou
instance: yunxiao
namespace: default
imageRepo: test
imageTag: 2024-04-07-17-18-26-YAML
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>sources.<source_id>.namespace
このパラメーターは、パイプラインソースが ACR イメージソースの場合に必要です。インスタンス下の名前空間を入力します。
sources:
my_repo:
type: acr
region: cn-hangzhou
instance: yunxiao
namespace: default
imageRepo: test
imageTag: 2024-04-07-17-18-26-YAML
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>
sources.<source_id>.imageRepo
このパラメーターは、パイプラインソースが ACR イメージソースの場合に必要です。名前空間下のイメージリポジトリの名前を入力します。
sources:
my_repo:
type: acr
region: cn-hangzhou
instance: yunxiao
namespace: default
imageRepo: test
imageTag: 2024-04-07-17-18-26-YAML
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>sources.<source_id>.imageTag
このパラメーターは、パイプラインソースが ACR イメージソースの場合に必要です。イメージリポジトリ下のバージョン名を入力します。
sources:
my_repo:
type: acr
region: cn-hangzhou
instance: yunxiao
namespace: default
imageRepo: test
imageTag: 2024-04-07-17-18-26-YAML
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>sources.<source_id>.versionFilter
任意。パイプラインを実行できる ACR イメージソースバージョンのフィルター規則を指定します。正規表現を入力します。フィルター規則に一致するバージョンのみがパイプラインの実行をトリガーできます。この規則は、手動トリガー、アーティファクトソースの Webhook トリガー、スケジュールされたトリガー、および Webhook トリガーを含むすべてのトリガータイプに適用されます。
sources:
my_repo:
type: acr
region: cn-hangzhou
instance: yunxiao
namespace: default
imageRepo: test
imageTag: 2024-04-07-17-18-26-YAML
versionFilter: .*-YAML # -YAML で終わるバージョンのみが実行できます。
triggerEvents:
- pushCompleted
- scanCompleted
certificate:
type: serviceConnection
serviceConnection: <サービス接続 ID>