标签: jenkins

Jmeter 仪表板在 Jenkins HTML 报告发布时为空

我通过 maven jmeter 插件成功生成了一个 jmeter 仪表板。我在 Jenkins 上配置了这个构建来运行,它也成功生成了仪表板,并显示了所有图形/数据。我现在尝试使用 HTML 发布器发布此仪表板,以便可以从 Jenkins 构建访问它。该插件正常工作并将生成的仪表板和所有必需的文件夹/文件移动到存档位置,并在构建页面上显示一个指向 index.html 的链接。

但是,如果我单击该链接,它会打开索引页面,但所有内容都是空的……仅显示标题/导航,例如: 通过 jenkins 清空仪表板 。如果我通过构建服务器打开完全相同的仪表板索引页面,它会显示正常,并且一切都会显示并正常工作。

我在 jenkins.xml 中添加了以下内容,希望它是 css 等权限问题:

-Dhudson.model.DirectoryBrowserSupport.CSP=

但这并没有起到任何作用。

任何想法为什么 jmeter 仪表板报告可能无法通过 Jenkins 正确显示,但在通过服务器直接访问时却显示正确?作为旁注,我还以完全相同的方式发布 jacoco 和 surefire 报告,并且它们显示良好。我也在使用性能插件,它还可以从 jmeter 中提取数据并显示一些图表……但我也希望漂亮的仪表板能够正常工作。

谢谢!

jmeter jenkins jenkins-plugins jmeter-maven-plugin

0
推荐指数
1
解决办法
4097
查看次数

AWS Lambda 创建别名

根据 AWS 文档,我可以创建一个新的 lambda 函数别名,例如: aws lambda create-alias \ --region us-west-2 \ --function-name helloworld \ --description "sample alias" \ --function-version "\$LATEST" \ --name DEV \ --profile adminuser

据我了解,此命令基本上将代码部署到最新的 lambda 别名。所以我相信一旦我部署它,它就会变得活跃。但我会在让它上线之前对其进行测试。我的问题是,将它置于中间阶段以便它可以等到我的 Jenkins 测试完成然后激活它的最简单方法是什么?我应该创建另一个像 $PRE_LATEST 这样的函数版本吗?

alias jenkins aws-lambda

0
推荐指数
1
解决办法
1114
查看次数

Jenkins 库:java.lang.NullPointerException:无法在空对象上调用方法 xxx

我正在使用声明性管道和单独的管道助手。在助手之一,我有一个文件vars/getTriggerCause.groovy

/**
* Checks for cause of the job trigger and returns respective cause
* @return user, scm, time or other
*/
def String getCause() {
    echo "CAUSE ${currentBuild.rawBuild.getCauses().properties}"
    def cause = "${currentBuild.rawBuild.getCauses()}"
     if (cause =~ "UserIdCause") {
         return "user"
    }
}

/**
* Checks if trigger cause of the job is the timer
* @return true if trigger is timer
*/
def boolean isTime() {
    return this.call() == "time"
}
Run Code Online (Sandbox Code Playgroud)

现在我想像这样使用 Jenkisfile 中的函数

echo getTriggerCause().isTime()
Run Code Online (Sandbox Code Playgroud)

这会导致 NPE: …

jenkins

0
推荐指数
1
解决办法
4432
查看次数

Jenkins 脚本管道是否支持用户输入?

我想用这个input步骤提示用户输入字符串,我在我的Jenkinsfile中使用了脚本管道,即顶层块是node而不是pipeline,但是当我把这input一步放在stage块中时,蓝海只是报告失败而不是提示我输入。

input步骤是否仅支持声明性而不是脚本化?

代码如下:

node {
  input {
    message "Should we continue?"
    ok "Yes, we should."
    parameters {
      string(name: 'PERSON', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?')
    }
  }
  echo "Hello, ${PERSON}"
}
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-pipeline

0
推荐指数
1
解决办法
3675
查看次数

在 Jenkinsfile shell 中转义 JSON 字符串

我试图在 jenkinsfile 中转义 json 字符串,但我在线检查的示例有点复杂。

sshagent(credentials: ['keypair']) {
            sh """
                ssh ansible@ansible-server \
                '
# vars
src_env="${params.source_env}"
dest_env="${params.destination_env}"
src_prefix="${params.source_s3_prefix}"
dest_prefix="${params.destination_s3_prefix}"
region="${region}"
ch="${ch}"
aws_account="${aws_account}"

# Run ECS task
echo "---- Run ECS task ----"
task_id=$(aws ecs run-task \
  --cluster cluster-\${ch}-\${dest_env} \
  --task-definition \$td_id \
  --region \${region} \
  --overrides {\\\"containerOverrides\\\": [{\\\"name\\\": \\\"s3-sync\\\", \\\"environment\\\": [{\\\"name\\\": \\\"SRC_ENV\\\", \\\"value\\\": \\\"$${src_env}\\\"}, {\\\"name\\\": \\\"DEST_ENV\\\", \\\"value\\\": \\\"$${dest_env}\\\"}, {\\\"name\\\": \\\"SRC_PREFIX\\\", \\\"value\\\": \\\"$${src_prefix}\\\"}, {\\\"name\\\": \\\"DEST_PREFIX\\\", \\\"value\\\": \\\"$${dest_prefix}\\\"}]}], \\\"taskRoleArn\\\":  \\\"arn:aws:iam::$${aws_account}:role/$${ch}-$${dest_env}\\\"} \
  --query 'tasks[0].taskArn' \
  --output text | cut -d'/' -f 2) …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-plugins jenkins-pipeline

0
推荐指数
1
解决办法
3125
查看次数

唯一的詹金斯工作/管道标识符

想知道 Jenkins 中是否存在诸如唯一作业/管道 ID 之类的东西,在创建作业时生成一次,只有读取访问权限,因此此 ID 可以唯一标识作业以进行身份​​验证。

提前致谢,

胡安

jenkins jenkins-pipeline

0
推荐指数
1
解决办法
3388
查看次数

无法使用 androidx 库与 Jenkins 构建 apk

由于我将我的应用程序迁移到 androidx,因此当我启动任务组合时,Jenkins 出现错误。这是错误:

Program type already present: 
android.support.v4.app.INotificationSideChannel$Stub$Proxy
Run Code Online (Sandbox Code Playgroud)

但是我在 Android Studio 上没有这个错误,我可以毫无问题地构建 apk。

因此,我尝试从 google play 服务中排除 support-v4 模块:

implementation( "com.google.android.gms:play-services-maps:16.0.0"){
    exclude module: 'support-v4'
}
implementation ("com.google.android.gms:play-services-location:16.0.0"){
    exclude module: 'support-v4'
}
implementation ("com.google.android.gms:play-services-places:16.0.0"){
    exclude module: 'support-v4'
}
Run Code Online (Sandbox Code Playgroud)

然后生成apk,但在启动应用程序时出现此错误:

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArraySet;
   at com.google.android.gms.common.api.internal.c.<init>(Unknown Source:45)
   at com.google.android.gms.common.api.internal.c.a(Unknown Source:33)
   at com.google.android.gms.common.api.e.<init>(Unknown Source:51)
   at com.google.android.gms.common.api.e.<init>(Unknown Source:13)
   at com.google.android.gms.location.b.<init>(Unknown Source:8)
   at com.google.android.gms.location.f.a(Unknown Source:2)
Run Code Online (Sandbox Code Playgroud)

但是再一次,在 Android Studio 上一切正常,自从迁移到 Androidx 以来,问题只出现在 Jenkins 上。

谢谢你的帮助

android jenkins android-support-library androidx

0
推荐指数
1
解决办法
452
查看次数

Makefile 中的源环境变量文件

所以从我的本地机器我可以做到这一点:

 . env_vars.env
Run Code Online (Sandbox Code Playgroud)

它工作正常:

猫 env_vars.env

#!/bin/bash
export abce=def
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在 makefile 中反映相同时,它不返回任何内容:

SHELL=/bin/bash

print-env-vars:
        . env_vars.env
        echo ${abce}
Run Code Online (Sandbox Code Playgroud)

我还尝试在 makefile 中使用 source env_vars.env 但输出仍然相同。想知道如何在 makefile 中获取变量。

linux bash makefile jenkins

0
推荐指数
1
解决办法
2680
查看次数

Jenkins 声明式管道 - 将 Docker 映像推送到私有 docker hub 存储库

我尝试从 Jenkins 推送到一个私有的 dockerhub 存储库,但我猜我总是因为授权而出错。

这是相关的 Jenkins 管道:

pipeline {
  agent {
    // run this pipeline inside an docker image with node 8 and git installed
    docker {
      image 'node/8-alpine'
      registryUrl 'https://registry.hub.docker.com'
      registryCredentialsId 'dockerhub' // the id of username/password credentials I have in Jenkins
    }
  }
  environment {
    registry = '<my-org>/<my-project>'
    tag_beta = "${currentBuild.displayName}-${env.BRANCH_NAME}"
  }
  stages {

    stage("Docker") {
      steps {
          script {
            // NPM_TOKEN was set as environment variable inside Jenkins
            def image = docker.build("${env.registry}:${env.tag-beta}",  "-e NPM_TOKEN=${env.NPM_TOKEN}")
            /* Push …
Run Code Online (Sandbox Code Playgroud)

jenkins docker

0
推荐指数
1
解决办法
8100
查看次数

通过 Jenkins 将 iOS .ipa 文件上传到 testflight

我可能会迟到 CI/CD 聚会,但迟到总比不到好。到目前为止,我能够在不包含 XCode 的单独 MAC 上设置 Jenkins。我将此 MAC 用作 24x7 小型服务器以进行小型操作。很多时间都浪费在存档然后上传到我的 iOS 应用程序的 testflight 上,所以我想设置一个 CI/CD 过程。

在 Jenkins 设置之后,我能够为指定的目标(发布/调试)生成 .ipa 文件。

现在我想将此 .ipa 文件上传到 Testflight。这是我已经知道的:

  1. 通过 ALTool:根据这个答案,我应该使用 AlTool。AlTool 只不过是 XCode 中的应用程序加载器。我不想在这个单独的 MAC 上安装 XCode,所以这不是我可以使用的。
  2. 通过shell脚本:如果你看到上点答案的问题,用户已经提到了一个脚本。我也试过了,但失败了。
  3. 通过深圳: 已被弃用。在 Github 页面本身,他们提到使用 Fastlane。
  4. 通过 Testflight 插件: 也已弃用。

所以基本上,我觉得 Jenkins 本身无法将 iOS 构建分发到 testflight,除非我们使用需要安装 XCode 的 ALTool。是否有一种解决方法可以完全通过詹金斯来完成?

xcode continuous-integration ios jenkins jenkins-pipeline

0
推荐指数
1
解决办法
1870
查看次数