我分開了很小的詹金斯工作。是否可以從Powershell或Bash或Groovy腳本執行Jenkins作業?
現在我需要配置另一個根據用戶參數選擇的作業(可能通過複選框選擇)來執行其中的一些作業。
我想從Powershell或Bash或Groovy腳本啓動它們。可能嗎?
我分開了很小的詹金斯工作。是否可以從Powershell或Bash或Groovy腳本執行Jenkins作業?
現在我需要配置另一個根據用戶參數選擇的作業(可能通過複選框選擇)來執行其中的一些作業。
我想從Powershell或Bash或Groovy腳本啓動它們。可能嗎?
如果您在Postbuild/pipeline步驟中使用Groovy,則可以通過Jenkins API啓動作業。
例如,像這樣的無參數的構造:
import hudson.model.*
Jenkins.instance.getItem("My Job").scheduleBuild(5)
而且像這樣的參數構建:
import hudson.model.*
Jenkins.instance.getItem("My Job").scheduleBuild(5, new Cause.UpstreamCause(currentBuild), new ParametersAction([ new StringParameterValue("My Parameter Name", "My Parameter Value") ]));
您還可以使用Jenkins Rest API爲休息。例如,通過點擊以下網址:
無參數:
curl -X POST JENKINS_URL/job/JOB_NAME/build
參數:
curl -X POST JENKINS_URL/job/JOB_NAME/buildWithParameters?MyParameterName=MyParameterValue
樣本:
import hudson.model.*
def actions=[]
def plist=[ ];
["ok":"ok","label":"master"].each {k,v->
plist << new hudson.model.StringParameterValue(k,"$v","");
}
actions.add(new hudson.model.ParametersAction(plist));
def future = Jenkins.instance.getItemByFullName("samples/testPipeline").scheduleBuild2(0,actions as hudson.model.Action[]);
future.get().getLog()
謝謝!是否可以設置Jenkins作業參數(Jenkins.instance.getItem(「我的作業」)參數?)。我想使用當前工作中的參數。 – matandked
是的!我用更多的例子更新了答案。 :) –
請問您能否在您的示例中添加「import hudson.model。*」以避免「無法解決課程」異常? – matandked