アノテーション
アノテーションは自由形式なキーと値のデータセットで、ビルドの実行設定などを定義するのに用います。YAMLのアンカーやエイリアスのサンドボックスとしても利用することができます。
例
shared:
template: example/mytemplate@stable
annotations:
foo: &bar # アンカーを作成
requires: [~pr, ~commit]
image: node:lts
jobs:
main:
<<: *bar # アンカーを参照してアノテーションで定義した設定を使用する
annotations:
screwdriver.cd/cpu: HIGH # CPUのHIGHリソースを指定
screwdriver.cd/buildPeriodically: H H(4-7) * * * # 毎日午前4:00から午前7:59(UTC)の間にジョブを実行します
ジョブレベルのアノテーション
ジョブレベルのアノテーションはビルド環境の設定を変更するために利用します。ジョブレベルのアノテーションは特定のジョブやshared
で指定することができます。
以下のアノテーションはScrewdriver.cdでメンテナンスしているプラグインでサポートしています。ご利用のScrewdriverクラスタで利用可能なアノテーションはクラスタ管理者にお問い合わせください
beta.screwdriver.cd
は deprecated となり、screwdriver.cd
となることに注意してください。ただし、今の所はbeta.screwdriver.cd
のアノテーションでも利用できます。
アノテーション | 値 | 説明 |
---|---|---|
screwdriver.cd/buildCluster | ビルドを実行するビルドクラスタ名 | 利用可能なビルドクラスタのリストは <API URL>/v4/buildclusters で確認できます。デフォルトでは managedByScrewdriver: true が設定されているクラスタにビルドがアサインされます。 あなたのリポジトリでの利用が許可されている任意のデフォルトクラスタや外部クラスタを選択することが可能です。(利用が許可されているリポジトリはscmOrganizations で設定されます) |
screwdriver.cd/buildPeriodically | CRON表記 例: H 0 * * * 注意: 共有リソースへ急激に負荷がかかることを避けるため、「分」のフィールドは常に’H’(ハッシュを表す)を指定します。(実行頻度は最高でも1時間に1回です) CRON表記については以下で確認ができます。https://crontab.guru/ |
cron表記にしたがって定期的にジョブを実行します。CRON表記のいずれの項目でも、H (あるいはH/5 やH(3-7) のような値)を指定すると、ジョブidのハッシュに基づいて、システムが該当箇所の値を指定した範囲内のものに置き換えます。例えば、H(3-5) は3, 4, 5のいずれかに置き換えられます。タイムゾーンはUTCです。 |
screwdriver.cd/collapseBuilds | true / false |
true に設定したジョブでは BLOCKED 状態のビルドが最新のものに集約されます。パイプライン全体に適用したい場合は shared に設定してください。デフォルトの挙動はクラスタ設定によるので、クラスタ管理者に確認してください。 |
screwdriver.cd/cpu | MICRO / LOW / HIGH / TURBO |
k8s executorを利用する場合、ユーザーは 0.5 (MICRO )、2 (LOW )、6 (HIGH ) 、12 (TURBO ) CPUの中から選択可能です。k8s-vm executorを利用する場合は、1 ( MICRO )、2 (LOW )、6 (HIGH )、12 (TURBO ) CPU の中から選択可能です。いずれの場合もデフォルト値は LOW となります。 |
screwdriver.cd/executor | クラスタ管理者にご確認ください | ビルドの実行環境を指定します。VMやkubernetesポッド、dockerコンテナ、Jenkinsエージェントなどでビルドを実行するように設定できます。 |
screwdriver.cd/ram | MICRO / LOW / HIGH / TURBO |
k8s executorを利用する場合、ユーザーは 1 GB (MICRO)、 2 GB (LOW)、12 GB (HIGH)、16 GB (TURBO) RAMの中から選択可能です。 k8s-vm executorを利用する場合は、1 GB (MICRO)、2 GB (LOW)、12 GB (HIGH)、 16 GB (TURBO) RAMの中から選択可能です。 いずれの場合もデフォルト値はLOWとなります。 |
screwdriver.cd/repoManifest | Git リポジトリのチェックアウト URL です。例: https://github.com/org/repo.git/manifestFilePath.xml#branch 1. チェックアウト URL: https://github.com/org/repo.git (必須)2. マニフェストファイルのパス: manifestFilePath.xml (オプション, デフォルトは default.xml )3. ブランチ名: #branch (オプション, デフォルトは #master ) |
Repo は Git 上に構築されたリポジトリ管理ツールです。この値は repo マニフェスト xml ファイルを含む Git リポジトリのチェックアウト URL です。この値が指定されていると、Screwdriver は xml ファイルの設定に従ってソースコードをチェックアウトします。 |
screwdriver.cd/timeout | 時間(分) | ビルドがタイムアウトとなる時間(分)を指定できます。デフォルト値は90 分です。 |
screwdriver.cd/dockerEnabled | true / false |
k8s executor利用時にtrue に設定するとビルドコンテナと一緒にDocker-in-Dockerコンテナが起動し、DockerビルドやDockerイメージの起動が可能になります。このフラグをユーザーのyamlで設定するのに加え、クラスタ管理者がdocker in docker機能を有効にしている必要があります。 (cluster-managementのページをご覧ください) |
screwdriver.cd/dockerCpu | MICRO / LOW / HIGH / TURBO |
k8s executorを利用していてDockerが有効な場合、Dockerコンテナで使用するCPU数を設定することができます。設定される値についてはscrewdriver.cd/cpu の説明をご覧ください。 |
screwdriver.cd/dockerRam | MICRO / LOW / HIGH / TURBO |
k8s executorを利用していてDockerが有効な場合、Dockerコンテナで使用するメモリ容量を設定することができます。設定される値についてはscrewdriver.cd/ram の説明をご覧ください。 |
screwdriver.cd/coverageScope | pipeline / job |
カバレッジプラグインを利用している場合に、プロジェクトを作成するスコープを設定できます。デフォルト値はクラスタの設定(e.g. COVERAGE_SONAR_ENTERPRISE )によるので、クラスタ管理者にご確認ください。 |
screwdriver.cd/displayName | パイプライングラフに表示するジョブ名 | パイプライングラフに表示するジョブ名を、yamlのユニーク制約に縛られない自由な名前にできます。 |
screwdriver.cd/mergeSharedSteps | true / false |
テンプレートを利用している場合に、true に設定するとsharedとjobに定義したstepsをマージします。デフォルトはfalse です。 |
screwdriver.cd/manualStartEnabled | true / false |
これがfalse に設定されていると、UIでジョブを起動することができません。デフォルトはtrue です。 |
screwdriver.cd/terminationGracePeriodSeconds | 時間(秒) | ビルドが停止する前にteardownステップを実行するための猶予時間(秒)を設定できます。デフォルトは '60' 秒で、最大は '120' 秒です。殆どの場合、デフォルト以上の時間は必要ありません。 |
screwdriver.cd/blockedBySameJob | true / false |
これがfalse に設定されていると、指定の待ち時間後に同一ジョブのビルドが同時に実行できるようになります。デフォルトの待ち時間は'5' 分で、screwdriver.cd/blockedBySameJobWaitTime アノテーションで変更することができます。 |
screwdriver.cd/blockedBySameJobWaitTime | 時間(分) | 同一ジョブのビルドを同時実行する際に発生する待ち時間を設定できます。デフォルトの待ち時間は'5' 分です。 |
screwdriver.cd/jobDisabledByDefault | true / false |
定期的にビルドが実行されているパイプラインがfork・コピーされた際に、fork先でビルドが定期的に実行されることを防ぎたい場合があります。このアノテーションをtrue に設定すると、作成されたジョブははじめdisabled となります。ユーザはUIからジョブをenabled にできます。デフォルトはfalse です。 |
screwdriver.cd/virtualJob | true / false |
特定のジョブの実行をスキップするには、これをtrue に設定します。これにより、イベントのワークフロー処理中にこれらのジョブは実行されず、成功ステータスで処理が進みます。また、キューイングと実行もスキップされ、その下流のジョブのビルドがすぐに作成されてワークフローの処理が続行されます。デフォルトはfalse です。 |
パイプラインレベルのアノテーション
パイプラインレベルのアノテーションはパイプライン全体の設定を変更するために利用します。パイプラインレベルのアノテーションの指定箇所はジョブやshared
と同じです。これらのアノテーションはパイプラインのSCMブランチで設定される必要があるため、プルリクエストでは変更できません。
アノテーション | 値 | 説明 |
---|---|---|
screwdriver.cd/restrictPR | none / all / fork / branch |
PRジョブが実行されないように制限します。none の場合は制限なしを意味します。all の場合はすべてのPRジョブ実行を制限します。fork はフォークされたリポジトリからのPRを制限します。branch はブランチからのPRを制限します。 |
screwdriver.cd/chainPR | false / true |
デフォルトはfalse です。false の場合、PRはrequires に~pr を設定しているジョブのみトリガーします。true を指定した場合、PRはrequires に~pr を設定しているジョブだけでなく、その後続のジョブも順番にトリガーします。サンプルリポジトリ: https://github.com/screwdriver-cd-test/chain-pr-example |
screwdriver.cd/pipelineDescription | パイプラインの説明文 | パイプラインページに説明文を表示します。 |
screwdriver.cd/useDeployKey | false / true |
デフォルトはfalse です。ScrewdriverのビルドをユーザーのAWSアカウントで実行する場合、git checkout のためにtrue を指定する必要があります。 |