ジェンキンス-特定のブランチを構築する方法


94

これは、パラメーター化されたビルドを行うほど単純ではありません。これらのブランチのいずれかがGitHubにプッシュされるたびにビルドおよびデプロイされる特定のビルドプロセスがすでにあります。

ここに画像の説明を入力してください

それで、私がプッシュdevelopしてそれが正常にビルドされた場合、手動ビルドをトリガーしてそれをfeature/my-new-feature(を行わずにgit push)プルするにはどうすればよいですか?パラメータ化ビルドを有効にし、という新しい文字列branchを追加してから、新しいブランチ指定子を追加してみました*/$branch。次にビルドを実行して設定branchしましたがfeature/my-new-feature、まだdevelopます。

私はどんな助けにも感謝します!


あなたはgithub webhookについて話していますか?これはあなたの問題を解決するかもしれません。これをgithubからトリガーしますか?
Abhijeet Kamble 2015

1
いいえ、GitHub統合はすでに機能しています。特定のブランチを手動で構築する方法を知る必要があります。
ffxsam

3
私は同じ問題を抱えています。ジョブはさまざまなブランチを構築するように構成されており、gitフックによってトリガーされます。しかし、(GITに新しい変更を加えずに)特定のブランチを手動でビルドしたい場合は、[今すぐビルド]をクリックしますが、常に最新のチェックアウトされたブランチがビルドされます。さまざまなビルドプロパティも試しました。
cornz 2016年

パラメータの名前がブランチである場合$branchは、ブランチ指定子フィールドで指定するだけです。
Alexey

1
@Alexey、しかし自動的に開始されたビルド中にこれ$branchは空の文字列になると思います。
Nakilon

回答:


108

最善の解決策は次のとおりです。

既存のジョブに文字列パラメータを追加します ここに画像の説明を入力してください

次に、Source Code Managementセクションの更新で、Branches to build定義した文字列パラメーターを使用しますここに画像の説明を入力してください

のラベルが付いたチェックボックスが表示された場合は、Lightweight checkoutそれがオフになっていることを確認してください。

画像に示されている構成はmaster、デフォルトのブランチとして使用するようにjenkinsジョブに指示し、手動ビルドの場合はブランチの詳細を入力するように求めます(FYI:デフォルトではに設定されていますmasterここに画像の説明を入力してください


4
デフォルトでマスターをビルドしても、すべての開発ブランチをビルドすることになっている一般的な開発ビルドの場合は、マスターがカットされません。
static_rtti 2016年

9
なんてこった JenkinsがBranches to build適用されるいまいましいGitリポジトリのセクションを保持しないのはなぜですか?ビルドするブランチを指定するためにこれを行わなければならないのは愚かなPITAです。
Alex Zavatone 2017

9
ドンこれは機能しません(私にとって)。git.exe fetch --tags --progress origin +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH} --prune明らかに無効なブランチをチェックアウトしようとしたジェンキンスになってしまいます。
リアム

1
これはJenkinsのバグとして記録されているため、これがどのように機能するかを確認することは困難ですか?
リアム

19
@Liamバグチケットで提案されているように、これを機能させるには「軽量チェックアウト」のチェックを外す必要があります。
asmaier 2018

10

同じjenkinsジョブ内で両方を実行することはできないと思います。githubにアクセスしてブランチを取得する新しいjenkinsジョブを構成し、手動でビルドするジョブを選択できるようにする必要があります。

それをパラメーター化ビルドとしてマークし、名前を指定して、パラメーターを次のように構成します git parameter

ここに画像の説明を入力してください

そして今、あなたはgitオプションを設定することができます:

ここに画像の説明を入力してください


7
そのgitパラメータはjenkinsプラグインですか?そのタイプのパラメーターを追加するオプションが表示されません。プラグインの場合は、答えでそれを指すことができますか?
Leandro David

@LeandroDavidはいGitパラメーターはプラグインであり、パラメーターの追加の下にこのオプションが表示された後にインストールする必要があります。
ゴトサチン

9

Jenkinsスクリプトを使用してブランチをチェックアウトするには、次のコマンドを使用します。

stage('Checkout SCM') {
    git branch: 'branchName', credentialsId: 'your_credentials', url: "giturlrepo"
}

1
私はこれが問題について正確にはわかっていないことを知っていますが、私はこの情報を検索していて、グーグルはこのサイトを回答として提案し続けました。
Igor L.

こちらも同じです。あなたは正確な答えへの答えを見つけることができました
thinkingmonster

0

これはRanjithによって提供された回答の拡張です

選択パラメータのビルドを選択し、ビルドするブランチを指定することをお勧めします。 アクティブ選択パラメーター

その後、ビルドするブランチを指定できます。 構築するブランチ

これで、プロジェクトをビルドするときに、「ビルドするブランチを選択できるパラメーター付きのビルド」が提供されます。

アクティブな選択パラメーターですべてのブランチをフェッチするためのグルーヴィーなスクリプトを書くこともできます。


詳しく説明してください。TeamCityはデフォルトでこれを行いますが、ジェンキンスは自分の靴を結ぶことすらできません!!!
Cジョンソン

0

ここに画像の説明を入力してください

ビルドトリガーの下に設定のオプションがあります

GitHubブランチを確認する

フックが作成され、github Branchesを選択すると、Jenkinsから任意のブランチを構築できます ここに画像の説明を入力してください

それが役に立てば幸い :)


このセットアップでこのプラグインを使用しようとしていますが、ジョブを開始する方法が見つかりません。イベントがghから正しく送信されているかどうかを確認する別の方法はありますか?
Vito De Tullio

Run Branch Triggerオプションを取得していますか?git repoをスキャンしてすべての利用可能なブランチを探します...また、jenkinsログ-> [Manage Jenkins ...]を調べて、エラーが発生したかどうかを確認します
rohit thomas

1
詳しく説明してください。説明が短すぎて短すぎます。
Cジョンソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.