web-dev-qa-db-ja.com

Hudson / Jenkins Gitはすべてのブランチを構築します

ビルドしたい機能ブランチを作成する開発者がたくさんいます。毎晩、すべてのブランチで実行する必要があるコード品質ツールを実行します。また、ブランチの数は数週間ごとに変わるため、静的な構成も好ましくありません。

33
babsher

Gitの設定には、フィールド 'Branch Specifier(デフォルトではブランク):'があります。 'を配置すると、すべてのリモートからすべてのブランチが構築されます。

環境変数$ {GIT_BRANCH}を使用できること。 https://wiki.jenkins-ci.org/display/JENKINS/Build+Name+Setter+Plugin または他の目的を使用してビルドのタイトルを設定するには

39
Tomasz Bartczak

同じ問題を解決する必要がありました。具体的には、すべてのブランチのZipファイルを作成し、さまざまなテストジョブで使用するアーティファクトとして提供します。

「構築するブランチ」に「**」を入力します

次に、シェルを実行します。

while read -ra ITEM; do
  for i in "${ITEM[@]}"; do
    git checkout $i
    <do your stuff>
  done
done <<< $(git branch -r | grep -v "HEAD ->" | xargs -L 1 | cut -d'/' -f2)

これにより、ブランチのリストが読み取られ、各ブランチが個別にチェックアウトされ、各ブランチで作業を行うことができます。 <<<コマンドは、この出力を変換します。

  Origin/HEAD -> Origin/master
  Origin/branch1
  Origin/master
  Origin/secondbranch

チェックアウト使用可能リストに:

branch1
master
secondbranch
7
Squrppi

古い質問ですが、やや適切な答えです。以下のマルチブランチプラグインを使用すると、ブランチを含むサブプロジェクトをファンアウトするビルドアイテムタイプを作成し、構成を最上位からサブプロジェクトに自動的に同期できます。

https://wiki.jenkins-ci.org/display/JENKINS/Multi-Branch+Project+Plugin

やや複雑なアプローチの場合、Seedプラグインは、サブジョブを定義する際に多くの柔軟性を提供します

https://github.com/jenkinsci/seed-plugin/wiki

1
kert

**ブランチ指定子は、すべてのブランチとすべてのタグに対して実行されます。単にブランチが必要な場合は、refs/heads/*のブランチ指定子を使用します

0
Delta Echo