相关疑难解决方法(0)

在Jenkins管道中使用Groovy迭代地图是不可能的

我们正试图迭代Map,但没有任何成功.我们将问题简化为这个最小的例子:

def map = [
           'monday': 'mon',
           'tuesday': 'tue',
           ]
Run Code Online (Sandbox Code Playgroud)

如果我们尝试迭代:

map.each{ k, v -> println "${k}:${v}" }
Run Code Online (Sandbox Code Playgroud)

仅输出第一个条目: monday:mon


我们知道的替代方案甚至无法进入循环:

for (e in map)
{
    println "key = ${e.key}, value = ${e.value}"
}
Run Code Online (Sandbox Code Playgroud)

要么

for (Map.Entry<String, String> e: map.entrySet())
{
    println "key = ${e.key}, value = ${e.value}"
}
Run Code Online (Sandbox Code Playgroud)

失败,都只显示异常java.io.NotSerializableException: java.util.LinkedHashMap$Entry.(这可能与提出'真实'例外时发生的异常有关,阻止我们知道发生了什么).

我们正在使用最新的稳定jenkins(2.19.1),截至今天(2016/10/20)所有插件都是最新的.

是否有解决方案来迭代MapJenkins管道Groovy脚本中的元素?

groovy dictionary jenkins jenkins-pipeline

14
推荐指数
2
解决办法
1万
查看次数

为什么stash/unstash在这个Jenkins文件中不起作用?

我有一个在现场运行的Jenkins服务器,它使用Jenkins文件管理一个管道,该管道使用并行测试执行器插件在几个代理上运行所有JUnit测试以加快测试速度.我们有一个刀片服务器(比买一个便宜!)并且我们的测试从接近2小时到22分钟加速.JUnit插件适用于并行测试.

然而,Jacoco Plugin却没有.所以我试图将覆盖文件合并到一个文件,以便Jacoco插件可以发布覆盖结果.Stash/unstash正在存储源代码,但是当我尝试存储不同的Jacoco输出文件以在master上取消它们时,它无法正常工作.

有什么想法吗?

这是我的Jenkinsfile:

#!/usr/bin/env groovy

def branch
def hash

node('remote') {
  sh 'echo starting'

  branch = env.gitlabBranch ?: '**'
  echo "Branch: $branch"

  checkout([$class: 'GitSCM',
        branches: [[name: "$branch"]],
        extensions: [
          [$class: 'PruneStaleBranch'],
          [$class: 'CheckoutOption', timeout: 120],
          [$class: 'CloneOption', depth: 0, noTags: true, shallow: true, timeout: 180]
        ],
        doGenerateSubmoduleConfigurations: false,
        submoduleCfg: [],
        userRemoteConfigs: [[credentialsId: 'gitlabLabptop', url: 'git@gitlab.com:protocase/my_project_url.git']]
       ]
      )

  hash = sh (script: 'git rev-parse HEAD', returnStdout: true).trim()

  ### - this stash works fine -###
  stash name: 'sources', includes: '**', …
Run Code Online (Sandbox Code Playgroud)

java git groovy jenkins jacoco

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

groovy ×2

jenkins ×2

dictionary ×1

git ×1

jacoco ×1

java ×1

jenkins-pipeline ×1