我试图在每次詹金斯重新启动时运行一项新工作。我想通过“init.groovy”脚本来做到这一点。例如,假设我重新启动詹金斯服务器,它将执行一个显示“Hello world”的作业。我必须从我的 init.groovy 脚本创建这个作业。
到目前为止我有这个代码
import jenkins.model.Jenkins
import org.jenkinsci.plugins.workflow.job.WorkflowJob
WorkflowJob job = Jenkins.instance.createProject(WorkflowJob, 'my-pipeline2')
Run Code Online (Sandbox Code Playgroud)
现在我不知道如何在不进入 GUI 的情况下配置这个作业实例。我想向其中添加管道脚本。就像回声“Hello world”一样。然后我想最终完成这项工作。我想通过这个 init.groovy 脚本来完成所有这些工作。我在互联网上找不到任何解决方案。因此,非常感谢任何帮助。谢谢
所以我终于用下面的常规脚本完成了这个任务。
#!groovy
import jenkins.model.*
import hudson.security.*
import jenkins.install.*;
import hudson.triggers.SCMTrigger;
import org.jenkinsci.plugins.workflow.job.WorkflowJob;
def instance = Jenkins.getInstance()
println "--> creating local user 'admin'"
def hudsonRealm = new HudsonPrivateSecurityRealm(false)
hudsonRealm.createAccount('admin','admin')
instance.setSecurityRealm(hudsonRealm)
def strategy = new FullControlOnceLoggedInAuthorizationStrategy()
instance.setAuthorizationStrategy(strategy)
instance.save()
jenkins = Jenkins.instance;
workflowJob = new WorkflowJob(jenkins, "workflow2");
jobName = "create-dsl-job2";
gitTrigger = new SCMTrigger("* * * * *");
dslProject = new hudson.model.FreeStyleProject(jenkins, jobName);
dslProject.addTrigger(gitTrigger);
jenkins.add(dslProject, jobName);
job = jenkins.getItem(jobName)
builders = job.getBuildersList()
hudson.tasks.Shell newShell = new hudson.tasks.Shell("echo \"Hello\" ")
builders.replace(newShell)
gitTrigger.start(dslProject, true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4981 次 |
| 最近记录: |