标签: jenkins-pipeline

错误"输入设备不是TTY"

我正在运行以下命令Jenkinsfile.但是,我收到错误"输入设备不是TTY".

docker run -v $PWD:/foobar -it cloudfoundry/cflinuxfs2 /foobar/script.sh
Run Code Online (Sandbox Code Playgroud)

有没有办法Jenkinsfile从不进行交互模式运行脚本?

我基本上有一个名为的文件script.sh,我想在Docker容器中运行.

jenkins docker jenkins-pipeline

329
推荐指数
8
解决办法
19万
查看次数

如何使用Jenkinsfile(groovy)中的变量执行shell命令的输出?

我在Jenkinsfile(Groovy)上有这样的东西,我想在变量中记录stdout和退出代码,以便稍后使用这些信息.

sh "ls -l"
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做,特别是因为你似乎无法在里面运行任何类型的groovy代码Jenkinsfile

groovy jenkins-workflow jenkins-pipeline jenkinsfile

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

如何在本地测试对Jenkinsfile所做的更改?

在编写jenkins管道时,为了查看它是否有效,提交每个新更改似乎非常不方便.

有没有办法在不提交代码的情况下在本地执行这些?

jenkins jenkins-workflow jenkins-pipeline

177
推荐指数
8
解决办法
9万
查看次数

可以将评论添加到Jenkins文件中吗?

Jenkins文件中是否有注释?如果是这样,语法是什么?

我正在使用声明性管道语法.

我想在下面的"帖子"部分注释掉,直到我的SMTP服务器正常工作.

pipeline {

  agent { label 'docker-build-slave' }

  environment {
    IMAGE = 'registry.gitlab.com/XXXXX/bible-server'
    DOCKER_REGISTRY_CREDENTIALS = credentials('DOCKER_REGISTRY_CREDENTIALS')
  }

  options {
    timeout(10)
  }

  stages {

    stage('Test') {
      steps {
        sh 'yarn'
        sh 'npm test'
      }
    }

    stage('Build') {
      when {
        branch '*/master'
      }
      steps {
        sh 'docker login -u ${DOCKER_REGISTRY_CREDENTIALS_USR} -p ${DOCKER_REGISTRY_CREDENTIALS_PSW} registry.gitlab.com'
        sh 'docker build -t ${IMAGE}:${BRANCH_NAME} .'
        sh 'docker push ${IMAGE}:${BRANCH_NAME}'
      }
    }

    stage('Deploy') {
      when {
        branch '*/master'
      }
      steps {
        echo 'Deploying ..'
      }
    }
  } …
Run Code Online (Sandbox Code Playgroud)

groovy comments jenkins jenkins-pipeline

138
推荐指数
2
解决办法
8万
查看次数

Jenkins Pipeline擦除工作区

我们正在运行Jenkins 2.x并喜欢新的Pipeline插件.但是,如果存储库中有如此多的分支,则磁盘空间会很快填满.

是否有任何与Pipeline兼容的插件可以在成功的构建中消除工作空间?

workspace jenkins jenkins-pipeline

121
推荐指数
10
解决办法
16万
查看次数

如何使用GitHub Org插件从jenkins管道(jenkinsfile)触发另一个作业?

如何从内部触发另一个作业的构建Jenkinsfile

我假设这个工作是同一个github组织下的另一个存储库,一个已经有自己的Jenkins文件.

我也想在分支名称为master时执行此操作,因为触发任何本地分支的下游构建没有意义.

更新:

stage 'test-downstream'
node {
     def job = build job: 'some-downtream-job-name'
}
Run Code Online (Sandbox Code Playgroud)

仍然,执行时我得到一个错误

找不到名为some-downtream-job-name的参数化作业

我确信这个工作存在于jenkins中,并且与当前工作文件夹在同一组织文件夹下.这是另一项有自己的工作Jenkinsfile.

请注意,此问题特定于GitHub组织插件,该插件可从GitHub组织自动创建和维护每个存储库和分支的作业.

groovy jenkins jenkins-workflow jenkins-pipeline

118
推荐指数
5
解决办法
18万
查看次数

jenkins管道:代理vs节点?

jenkins管道中的代理节点之间有什么区别?

我找到了那些定义:

  • 节点:管道执行的大多数工作是在一个或多个声明的节点步骤的上下文中完成的.
  • agent:agent指令指定整个Pipeline或特定阶段在Jenkins环境中的执行位置,具体取决于agent指令的放置位置.

因此两者都用于执行管道步骤.但什么时候使用哪一个?

jenkins jenkins-pipeline

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

尝试在unix上连接到Docker守护程序套接字时获得权限被拒绝:///var/run/docker.sock

我是码头工人的新手.我只是尝试在我的本地机器(Ubuntu 16.04)中使用docker和Jenkins.

我使用下面的管道脚本配置了一个新作业.

node {
    stage('Build') {
      docker.image('maven:3.3.3').inside {
        sh 'mvn --version'
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

但它失败并出现以下错误.

在此输入图像描述

jenkins docker jenkins-pipeline

111
推荐指数
15
解决办法
10万
查看次数

Jenkins:无法在管道阶段定义变量

我正在尝试创建一个声明性的Jenkins管道脚本,但是遇到了简单变量声明的问题.

这是我的脚本:

pipeline {
   agent none
   stages {
       stage("first") {
           def foo = "foo" // fails with "WorkflowScript: 5: Expected a step @ line 5, column 13."
           sh "echo ${foo}"
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 5: Expected a step @ line 5, column 13.
           def foo = "foo"
           ^
Run Code Online (Sandbox Code Playgroud)

我在Jenkins 2.7.4和Pipeline 2.4上.

groovy jenkins jenkins-pipeline

89
推荐指数
4
解决办法
16万
查看次数

如何列出jenkins管道作业中的所有`env`属性?

鉴于jenkins 2.1构建管道,jenkins将一个env变量注入到node{}.例如,BRANCH_NAME可以使用

node {
    echo ${env.BRANCH_NAME}
    ...
Run Code Online (Sandbox Code Playgroud)

我想回显jenkins管道中的所有 env属性.

我正在寻找像这样的代码

node {
    for(e in env){
        echo e + " is " + ${e}
    }
    ...
Run Code Online (Sandbox Code Playgroud)

这会像回应一样

 BRANCH_NAME is myBranch2
 CHANGE_ID is 44
 ...
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-pipeline

88
推荐指数
11
解决办法
11万
查看次数