Jenkins:是不是可以使用 Jenkinsfile 创建常春藤工作? (管道即代码)

Posted

技术标签:

【中文标题】Jenkins:是不是可以使用 Jenkinsfile 创建常春藤工作? (管道即代码)【英文标题】:Jenkins: Is it possible to create an Ivy job using Jenkinsfile? (pipeline as code)Jenkins:是否可以使用 Jenkinsfile 创建常春藤工作? (管道即代码) 【发布时间】:2016-10-31 06:56:25 【问题描述】:

我有几个使用 Ivy 的项目,因此我创建了 Ivy 作业来构建我的工件并将其发布到存储库。

Ivy 插件非常有用,因为它以自动方式为我处理依赖关系。但是,我将这些作业转移到“管道即代码”方法,并希望使用Jenkinsfiles 为我的每个项目自动创建作业。

我的疑问是:我可以使用Jenkinsfile 创建完全相同的工作(常春藤)吗?如果没有,我可以使用Jenkinsfile 创建任何类型的 Ivy 工作吗?

【问题讨论】:

【参考方案1】:

您可以使用 Jenkinsfile 中的 Job DSL 插件来创建新作业,请参阅 https://github.com/jenkinsci/job-dsl-plugin/wiki/User-Power-Moves#use-job-dsl-in-pipeline-scripts

以下管道代码调用 Job DSL 构建步骤,然后运行 ​​ivyJob.groovy Job DSL 脚本。

node 
  step([
    $class: 'ExecuteDslScripts',
    scriptLocation: [targets: ['ivyJob.groovy']],
    removedJobAction: 'DELETE',
    removedViewAction: 'DELETE',
    lookupStrategy: 'SEED_JOB',
  ])

ivyJob.groovy 脚本随后将创建 Ivy 作业并运行 Ant 构建:

ivyJob('example') 
  ivyBuilder 
    ant 
      target('clean')
      targets(['test', 'publish'])
      buildFile('build.xml')
      antInstallation('Ant 1.9')
      prop('key', 'value')
      javaOpt('-Xmx=1G')
    
  

有关详细信息,请参阅 Job DSL API 文档: https://jenkinsci.github.io/job-dsl-plugin/#path/ivyJob

【讨论】:

以上是关于Jenkins:是不是可以使用 Jenkinsfile 创建常春藤工作? (管道即代码)的主要内容,如果未能解决你的问题,请参考以下文章

Expect Scripts 是不是可以与 Jenkins 和 Bamboo 等 CI/CD 工具配合使用?

当 github 帐户使用 2 因子身份验证时,是不是可以将 Jenkins Webhooks 与 Github 一起使用

jenkins获取凭据密码的方法

jenkins删除构建历史

如何确定一个分支是不是是 jenkins 文件中的默认分支?

Jenkins 声明性管道 - 如果不满足某些条件而不是跳过一个阶段,如何中止整个构建?