2017-07-19 24 views
0

Jenkinsジョブをリモートで起動するときにビルドするブランチを指定できるかどうか疑問に思っています。私は、特定のJenkinsビルドを実行することを含むPythonスクリプトを書いています。リモートで特定のJenkinsブランチをビルドする

スクリプトからビルドを正常に実行できますが、ビルドを特定のブランチに対して実行する方法があるのだろうかと思います。

ビルドはJenkins上で実行されています。私はソースコード管理にTFSを使用しています。

これは私がジョブを呼び出す方法です - パラメータを追加しようとしましたが、これは何もしませんでした。

crumb=CrumbRequester(username="admin", password="2fa99c1e2aa61671d6b4334c8f0e77af", baseurl='http://localhost:8080/') 
a = Jenkins('http://localhost:8081/', username="admin", password="2fa99c1e2aa61671d6b4334c8f0e77af", requester=crumb) 
job = a.get_job("Project PR_DataCollectionWeb") 
job.invoke(build_params={'GIT_BRANCH': git_branch}) 

私はこの仕事が事前に決定することはできません実行する必要がブランチとして実行したときに構築されるように枝を指定することはできません。

答えて

0

Easy-peasyでは、そのためのビルドパラメータを使用します。たとえば、あなたは(Groovyの-似擬似コードを使用して)ジェンキンスに次のジョブ定義を持って言うことができます:

あなたのデフォルト値または要求スクリプトが提供するものを使用するためのいずれかの機能を提供します
[Project PR_DataCollectionWeb] 
    parameters: { GIT_BRANCH: typeof(String), defaultValue: 'master' } 

    sourceCodeManagement: { 
     repositoryUrl: 'https://github.com/.../awesome.git', 
     branchSpecifier: '*/$GIT_BRANCH' 
    } 

パラメータでビルドします。

要点は、$VARIABLE_NAMEまたは${VARIABLE_NAME}の構文を使用して、Jenkinsのジョブ構成ページのどこでもビルドパラメータを簡単に参照できます。

希望に役立ちます。

P.S.また、JenkinsのParametrized Buildプラグインに関する簡単なガイドもあります。

+0

ありがとうございました!元の投稿でコードを使用してビルドパラメータをチェックすると、表示されません。それで、実際にビルドのパラメータとして登録されることは決してありません。どこでも使用することはできません。私は、パラメータ化されたビルドをインストールし、私はデフォルト値を持っているので、実行する唯一のものです。 – kicksticks

+0

これは、ビルドパラメータがクエリ文字列内を移動できないためです。フォームのエンコードされた形式eqの要求の本体でのみです。 'GIT_BRANCH = feature-a&PARAM_A = xyz&PARAM_B = xoxo&...'それはPOST要求でなければなりません。 – pabloduo

1

BRANCH

(私はここにgitを参照しています、TFSのために必要な変更を行います)ソースコード管理セッションの下の「構築する支店」に変数$ {BRANCH}を追加すると呼ばれる文字列パラメータを追加します。

トリガーに次のURLを使用してください

http://<jenkins url>/job/<job name>/buildWithParameters?token=<your token>&BRANCH=<your branch> 
関連する問題