検索

25.5. ジョブブランチの上書き

download PDF

プロジェクトは、scm_branch フィールドでソースコントロールから使用するブランチ、タグ、または参照を指定します。これらは、Type Details フィールドで指定された値によって表されます。

プロジェクトの分岐を重視

ジョブの作成または編集時には、Allow Branch Override オプションがあります。このオプションをオンにすると、プロジェクト管理者は、そのプロジェクトを使用するジョブテンプレートにブランチの選択を委任でき、use_role プロジェクトのみが必要です。

25.5.1. ソースツリーのコピー動作

実行されるすべてのジョブには独自のプライベートデータディレクトリーがあります。このディレクトリーには、ジョブが実行されている特定の scm_branch のプロジェクトソースツリーのコピーが含まれています。ジョブはプロジェクトフォルダーに自由に変更を加え、実行中にその変更を利用できます。このフォルダーは一時的なフォルダーであり、ジョブの実行の終了時に削除されます。

Clean オプションをオンにすると、変更されたファイルは Automation controller のリポジトリーのローカルコピーから削除されます。対応の Ansible モジュールで、git または Subversion に関連する Force パラメーターを使用することで削除します。

関連情報

詳細は、Ansible ドキュメントの パラメーター セクションを参照してください。

25.5.2. プロジェクトのリビジョンの動作

プロジェクトの更新中、デフォルトブランチ (プロジェクトの SCM Branch フィールドで指定) のリビジョンが更新時に保存されます。ジョブにデフォルト以外の SCM Branch (コミットハッシュやタグではない) を指定すると、ジョブが開始される直前に、最新のリビジョンがソースコントロールリモートから取得されます。このリビジョンは、ジョブとそのプロジェクトの更新の Source Control Revision フィールドに表示されます。

ジョブ出力オーバーライドの例

その結果、デフォルト以外のブランチではオフラインジョブを実行できません。ジョブがソースコントロールからの静的バージョンを実行していることを確認するには、タグまたはコミットハッシュを使用します。プロジェクトの更新ではすべてのブランチが保存されるのではなく、プロジェクトのデフォルトブランチのみが保存されます。

SCM Branch フィールドは検証されていないため、プロジェクトを更新して有効であることを確認する必要があります。このフィールドが指定されたり、要求されたりした場合には、ジョブテンプレートの Playbook フィールドは検証されず、ジョブテンプレートを起動して、必要とされる Playbook が存在するかを確認する必要があります。

25.5.3. Git Refspec

SCM Refspec フィールドは、更新がリモートからダウンロードする必要がある追加の参照を指定します。以下に例を示します。例としては次のようなものがあります。

  • refs/:refs/remotes/origin/: これは、リモートのリモートを含むすべての参照を取得します。
  • refs/pull/:refs/remotes/origin/pull/ (GitHub 固有): これは、すべてのプルリクエストのすべての ref を取得します。
  • refs/pull/62/head:refs/remotes/origin/pull/62/head: これは、1 つの GitHub プルリクエストの参照を取得します。

プロジェクトの規模が大きく、先ほどの 1 例目と 2 例目を使用する場合には、パフォーマンスへの影響を考慮する必要があります。

SCM Refspec パラメーターはプロジェクトブランチの可用性に影響を与え、他の方法では利用できない参照へのアクセスを可能にすることができます。前の例では、SCM Branch からプルリクエストを提供できますが、これは SCM Refspec フィールドがなければ不可能です。

Ansible git モジュールは、デフォルトで refs/heads/ をフェッチします。これは、SCM Refspec が空白の場合、プロジェクトのブランチ、タグ、コミットハッシュを SCM ブランチ として使用できます。SCM Refspec フィールドに指定された値により、どの SCM Branch フィールドをオーバーライドとして使用できるかが左右されます。プロジェクトの更新 (タイプを問わず) は、追加の git fetch コマンドを実行して、その refspec をリモートからプルします。

最初または 2 番目の refspec サンプルを使用して、ブランチオーバーライドを有効にするプロジェクトを設定できます。これを、SCM ブランチ を求めるジョブテンプレートで使用します。その後、クライアントは新しいプルリクエストの作成時にジョブテンプレートを起動でき、pull/N/head ブランチを提供して、ジョブテンプレートは、提供された GitHub プルリクエスト参照に対して実行できます。

関連情報

詳細は、Ansible git モジュール を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.