Apsara DevOps Flow パイプラインは、Pipeline as Code をサポートしており、YAML ファイルでパイプライン構成を定義できます。一般的なパイプラインには、コードソース、ステージ、ジョブ、ステップなどの要素が含まれます。このトピックでは、主にパイプライン YAML の一般的な構造と、そのノードの構文規則について説明します。
はじめに
パイプライン YAML の全体的な構造をすぐに理解できるように、Java アプリケーションをホストグループにビルドしてデプロイするための YAML ファイルの例を次に示します。
name: demo-pipeline # パイプラインの表示名
sources: # パイプラインソースノードを構成する
my_repo: # パイプラインソースの一意の識別子
type: codeup # パイプラインソースのタイプ
name: Name of the code source # コードソースの表示名
endpoint: <your-codeup-repository-url> # コードソースの URL
branch: master # コードソースのデフォルトブランチ
triggerEvents: push # コードソースのリスナーイベント
certificate: # 認証情報
type: serviceConnection # 認証タイプはサービス接続
serviceConnection: <your-service-connection-id> # サービス接続 ID
stages: # パイプラインステージを構成する
build_stage: # パイプラインステージの識別子
name: Build stage # パイプラインステージの表示名
jobs: # パイプラインジョブを構成する
build_job: # パイプラインジョブの識別子
name: Build job # パイプラインジョブの表示名
runsOn: public/cn-beijing # パイプラインジョブが実行されるクラスタ環境
steps: # パイプラインステップを構成する
build_step: # パイプラインステップの識別子
step: JavaBuild # 実行ステップを選択する
name: Java build # 実行ステップの表示名
with: # ステップのパラメータ
run: |
mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip
upload_step:
step: ArtifactUpload
name: Upload build output
with:
uploadType: flowPublic
artifact: default
filePath:
- target/
- deploy.sh
deploy_stage:
name: Deployment stage
jobs:
deploy_job:
name: Host group deployment job
component: VMDeploy # 実行コンポーネントを選択する
with: # 実行コンポーネントのパラメータ
artifact: $[stages.build_stage.build_job.upload_step.artifacts.default]
machineGroup: <your-machine-group-id>
artifactDownloadPath: /home/admin/app/package.tgz
executeUser: root
run: |
mkdir -p /home/admin/application/
tar zxvf /home/admin/app/package.tgz -C /home/admin/application/
sh /home/admin/application/deploy.sh restart
上記の YAML ファイルの主要なノードについて、以下に説明します。
ノード | ノードの説明 |
name | パイプラインの名前。 |
sources | パイプラインソース。ソースタイプ、ソースアドレス、デフォルトブランチなど、複数のパイプラインソース情報を構成できます。 |
sources.<souce_id> | パイプラインソース ID。パイプラインソースを一意に識別します。 |
sources.<souce_id>.type | パイプラインソースのタイプ。 codeup、github、gitlab、jenkins など、さまざまなパイプラインソースタイプをサポートしています。 |
sources.<souce_id>.name | パイプラインソースの表示名。 |
stages | パイプラインステージ。パイプラインステージは、1 つ以上のジョブで構成されます。 |
stages.<stage_id> | パイプラインステージ ID。パイプラインステージを一意に識別します。 |
stages.<stage_id>.name | パイプラインステージの表示名。 |
stages.<stage_id>.jobs | パイプラインジョブ。パイプラインジョブは、複数のステップの組み合わせ (複数のステップがワークスペースを共有して特定のタスクを完了する) またはコンポーネントの呼び出し (コンポーネントを呼び出して特定のタスクを実行する、コンポーネントタスクは再試行、スキップなどの操作をサポート) にすることができます。 |
stages.<stage_id>.jobs.<job_id> | パイプラインジョブ ID。パイプラインジョブを一意に識別します。 |
stages.<stage_id>.jobs.<job_id>.name | パイプラインジョブの表示名。 |
stages.<stage_id>.jobs.<job_id>.runsOn | パイプラインジョブが実行されるクラスタ環境。 Apsara DevOps が提供するパブリッククラスタ環境を使用するか、プライベートビルドクラスタを使用できます。 |
stages.<stage_id>.jobs.<job_id>.steps | パイプラインステップ。パイプラインジョブは、1 つ以上のステップで構成できます。 |
stages.<stage_id>.jobs.<job_id>.steps.<step_id> | パイプラインステップ ID。パイプラインステップを一意に識別します。 |
stages.<stage_id>.jobs.<job_id>.steps.<step_id>.step | パイプラインの実行ステップを選択します。 |
stages.<stage_id>.jobs.<job_id>.steps.<step_id>.name | パイプラインステップの表示名。 |
stages.<stage_id>.jobs.<job_id>.steps.<step_id>.with | パイプラインステップのパラメータ。 |
stages.<stage_id>.jobs.<job_id>.component | パイプラインコンポーネント。パイプラインジョブは、コンポーネントを呼び出して関連操作を実行できます。 |
stages.<stage_id>.jobs.<job_id>.with | パイプラインコンポーネントのパラメータ。 |
構文規則
詳細については、「パイプラインソース」をご参照ください。
詳細については、「パイプラインステージ」をご参照ください。
詳細については、「パイプラインジョブ」をご参照ください。
詳細については、「パイプラインステップ」をご参照ください。
詳細については、「パイプラインコンポーネント」をご参照ください。
詳細については、「パイプラインプラグイン」をご参照ください。
詳細については、「ステップアーティファクト」をご参照ください。