【问题标题】:Jenkins GitHub plugin Scan Organization TriggersJenkins GitHub 插件 扫描组织触发器
【发布时间】:2020-07-14 03:59:17
【问题描述】:

在 Jenkins GitHub (v1.28.0) 插件组织的 Configuration 页面上,有一个部分可以设置 Jenkins 定期扫描组织。我已关闭此选项,因为我不希望 Jenkins 定期构建 PR 或分支。

但是,这并没有改变组织内存储库的选项。在存储库中,有一个 View Configuration 选项,它仍然显示此内容。

我可以在此处取消选中该选项,但没有没有保存按钮View Configuration 确实让它听起来像是只读的。即使我从 Jenkins 配置中删除了存储库,然后重新添加它,它仍然会出现并选中该框。

如何阻止 Jenkins 自动在这些存储库上运行构建?

【问题讨论】:

    标签: jenkins github


    【解决方案1】:

    您可以做的是保留组织本身的触发器并禁用“儿童扫描触发器”。所以你最终会得到这样的结果。

    但是,如果您取消选中“如果不以其他方式运行,则定期运行”,您的子触发器(存储库本身)将被禁用。

    这应该可以防止自动触发 Org repos。但是,此解决方案并非万无一失。如果您的 Jenkins 重新启动存储库触发器将执行并执行分支索引,这反过来将触发构建。

    【讨论】:

      【解决方案2】:

      虽然无法在 UI 中执行此操作,但您可以使用 Groovy 脚本执行此操作。

      // Update the PeriodicFolderTrigger of each job inside of a Cloudbees folder.
      // Useful for updating individual repos as you cannot do this through the UI.
      // Adapted from https://github.com/cloudbees/jenkins-scripts/blob/6eb3bfe58b2c87081966b77f91b0be06da7daad3/setOrgFolderIndex.groovy
      import com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger
      import jenkins.model.Jenkins
      import jenkins.branch.OrganizationFolder
      
      println "Multibranch Items\n-------"
      Jenkins.instance.getAllItems(org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject.class).each { it.triggers
             .findAll { k,v -> v instanceof com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger }
             .each { k,v -> setInterval(it) }                                                                                               
      }
      
      def setInterval(folder) {
        println "[INFO] : Updating ${folder.name}... " 
        folder.getTriggers().find {triggerEntry ->
          def key = triggerEntry.key
          if (key instanceof PeriodicFolderTrigger.DescriptorImpl){
            println "[INFO] : Current interval : " + triggerEntry.value.getInterval()
            // Valid intervals are here:
            // https://github.com/jenkinsci/cloudbees-folder-plugin/blob/master/src/main/java/com/cloudbees/hudson/plugins/folder/computed/PeriodicFolderTrigger.java#L261-L278
            def newInterval = new PeriodicFolderTrigger("28d")
            folder.addTrigger(newInterval)
            folder.save()
            println "[INFO] : New interval : " + newInterval.getInterval()
          }
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-28
        • 2018-07-17
        • 2017-02-06
        • 1970-01-01
        • 2020-12-15
        • 1970-01-01
        • 2017-10-09
        • 2020-12-19
        相关资源
        最近更新 更多