标签: cloudbees

如何在Jenkins Workflow中重复一个阶段

我正在尝试在Cloudbees上使用Jenkins来自动部署我的软件.我设置我的工作流程如下.

詹金斯工作流程

有时候我想重新部署.(假设该阶段采用手动输入参数).我如何在工作流程中这样做?这是我的Groovy脚本.

def src = 'https://git.repo.url/proj.git'

stage 'Build'
node {
    env.JAVA_HOME="${tool name: 'Pre-Installed OpenJDK 8 (Latest) on DEV@Cloud nodes', type: 'hudson.model.JDK'}"
    sh 'javac -version'
    git credentialsId: 'abcdef', url: src
    sh 'ant -f build.xml proj.jar report'
}

stage 'Generate Release Version'
input message: 'Create Tar and Push to S3', ok: 'Generate Release'
node {
    // TODO
}

stage 'QA Approved'
input message: 'Enter a Tag Name to approve this build and tag in GIT', ok: 'Approve and Tag', parameters: [[$class: 'StringParameterDefinition', …
Run Code Online (Sandbox Code Playgroud)

groovy continuous-deployment jenkins cloudbees jenkins-workflow

9
推荐指数
1
解决办法
8439
查看次数

如何使用CloudBees设置多个"环境"?

我刚刚阅读了所有CloudBees开发人员文档,并且很惊讶我没有看到任何关于为部署管道设置多个环境的信息.

我计划在本地运行我的应用程序,然后将代码提升到我的网络内的QA机器,从那里将代码更改部署到CloudBees云上的"演示"环境中会很好,客户可以在其中查看/验收测试在我设置它们之前的变化.

所以我问:如何在CloudBees上设置Demo和Production环境?

理想情况下,我希望我的Demo环境demo.myapp.example.com和生产环境一样myapp.example.com.提前致谢!

java deployment development-environment paas cloudbees

7
推荐指数
1
解决办法
207
查看次数

如何为Jenkins Bitbucket Branch Source插件添加扫描凭据?

我正在尝试设置CloudBees Bitbucket分支源插件,但我无法设置凭据.我已添加用户名和密码凭据,但下拉列表仍为空.

我正在使用Jenkins版本2.9的新安装以及Bitbucket Branch源插件版本1.5.

在此输入图像描述

这是我添加的凭据.我还在之前的尝试中添加了带有私钥的SSH用户名. 在此输入图像描述

我使用docker安装了jenkins,然后添加了插件.这是我的docker-compose文件的jenkins部分

jenkins:
image: jenkinsci/jenkins:latest
#image: arcanneero/cd-jenkins-pipeline
ports:
  - "8080:8080"
  - "50000:50000"
volumes:
  - ./jenkins/data:/var/jenkins_home
Run Code Online (Sandbox Code Playgroud)

jenkins cloudbees jenkins-pipeline

7
推荐指数
1
解决办法
2809
查看次数

如何将Grails添加到我的cloudbees Jenkins安装中?

我正在尝试按照此处的说明在Cloudbees的Jenkins服务上运行我的Grails构建:

http://wiki.cloudbees.com/bin/view/DEV/Build+and+Deploy+Grails+application

但是,当我尝试从"Grails安装"为我的构建作业选择Grails安装时,下拉列表为空,但"默认"选项除外:

在此输入图像描述

当我运行我的构建时,我收到以下错误消息,好像没有安装Grials实例:

java.io.IOException: Cannot run program "grails" (in directory "/scratch/jenkins/workspace/liza"): java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
    at hudson.Proc$LocalProc.<init>(Proc.java:244)
    at hudson.Proc$LocalProc.<init>(Proc.java:216)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:709)
    at hudson.Launcher$ProcStarter.start(Launcher.java:338)
    at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:934)
    at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:901)
    at hudson.remoting.UserRequest.perform(UserRequest.java:118)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:326)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
    at java.lang.ProcessImpl.start(ProcessImpl.java:65)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
    ... 15 more
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我需要以某种方式自己安装Grails吗?

我已经尝试检查"使用Grails包装器"复选框,但我仍然遇到类似的问题:

[liza] $ /scratch/jenkins/workspace/liza/grailsw upgrade --non-interactive
FATAL: command execution …
Run Code Online (Sandbox Code Playgroud)

grails jenkins cloudbees

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

CloudBees,可用区和灾难恢复

CloudBees调用特定区域的部署与他们(以及亚马逊)调用可用区域的区别有何不同?

据我所知,CloudBees允许您部署在2个区域/区域之一:美国和欧洲.这些是我唯一的选择(针对特定区域的部署可用区域)吗?

在美国数据中心完全失效的情况下,将备用空闲实例池部署到欧洲"区域"是一个可靠的灾难恢复计划吗?DR如何通常由CloudBees客户端处理?

java disaster-recovery paas cloudbees availability-zone

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

CloudBees和App Cell,实例和池

我试图理解之间的区别:

  • 一个app-cell
  • 一个应用实例 ; 和
  • 一个应用程序池

例如,我如何知道何时为我的应用添加更多app-cells?或者添加更多实例?或者将它们的某个子集配置到池中?提前致谢!

java pooling paas autoscaling cloudbees

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

Jenkins Groovy如何从@NonCPS方法调用方法而不结束管道

我需要在Jenkins管道中解析一些JSON并在循环中调用一些常规方法,但是脚本总是在第一次函数调用后退出.这该怎么做?

import groovy.json.JsonSlurper
import com.cloudbees.groovy.cps.NonCPS

@NonCPS
def myMethod(String json) {
    def jsonSlurper = new JsonSlurper()
    def jsonObject = jsonSlurper(json)
    jsonObject.each {
        obj ->
            switch(obj.name) {
                case "foo":
                    doAThing(obj)
                    break
                case "bar":
                    doAnotherThing(obj)
                    break
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,即使使用json对象,例如:

[{
    "name": "foo"
}, {
    "name": "bar"
}]
Run Code Online (Sandbox Code Playgroud)

...管道总是在第一次迭代后退出.这可能是由于混合同步和异步功能.有没有办法做到这一点?

groovy jenkins cloudbees jenkins-workflow

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

将groovy变量传递给shell脚本

我刚开始学习groovy.我想在svn copy命令中将svnSourcePath和svnDestPath传递给shell脚本.但URL未呈现.

node {
 stage 'Copy Svn code'

def svnSourcePath = "${svnBaseURL}${svnAppCode}${svnEnvDev}${SVN_DEV_PACKAGE}"
def svnDestPath = "${svnBaseURL}${svnAppCode}${svnEnvTest}${SVN_DEV_PACKAGE}"

print "DEBUG: svnSourcePath = ${svnSourcePath}"
print "DEBUG: svnDestPath = ${svnDestPath}"

withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: crendentialsIdSVN, passwordVariable: 'SVN_PWD', usernameVariable: 'SVN_USER']]) {
    sh '''  
    svn copy $svnSourcePath $svnDestPath -m 'promote dev to test' --username $SVN_USER --password $SVN_PWD '''
}  
}
Run Code Online (Sandbox Code Playgroud)

产量

+ svn copy -m 'promote dev to test' --username techuser --password 'xxxyyy' 
     svn: E205001: Try 'svn help' for more info
     svn: E205001: Not enough arguments provided
Run Code Online (Sandbox Code Playgroud)

shell groovy jenkins cloudbees

6
推荐指数
3
解决办法
9127
查看次数

如何从使用 Jenkinsfile (groovy) 中的 returnStdout 标志 true 执行的批处理命令的输出中删除命令本身

我正在为我的 .net 项目使用 Jenkins Pipeline。我不想使用默认内部版本号,所以我尝试在 groovy 中使用以下命令设置内部版本号。

def short_hash = bat(script: 'git log --pretty=format:\'%%h\' -n 1', returnStdout: true)
currentBuild.displayName = '0.0.' + "${env.BUILD_NUMBER}" +'.' + short_hash
Run Code Online (Sandbox Code Playgroud)

我观察到的是 short_hash 具有批处理命令的值以及结果。

此处的 jenkins 文档指出“脚本执行批处理脚本。允许多行。使用 returnStdout 标志时,您可能希望用 @ 作为前缀,以免命令本身包含在输出中。”

我尝试使用@,但在执行时出错。任何指针?

jenkins cloudbees jenkins-pipeline

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

设备上没有Jenkins和Docker的空间 - 如何正确清理

我们在Ubuntu 16.04.1服务器上运行Jenkins(版本2.60.1).我们最近遇到的一个问题是我们经常得到错误" 设备上没有剩余空间 ".

我知道在使用Docker时需要进行严格的清理过程,因为文件会留下并占用不必要的空间.

我们使用CloudBees Docker Build and Publish插件来处理构建并推送到AWS ECS.我想删除所有未使用的图像.问题是如果我登录Jenkins实例(通过SSH)并尝试运行它提供的docker命令 - "无法连接到Docker守护程序.这个主机上是否运行了docker守护程序?"

我想我需要在Jenkins环境或插件的一部分中做到这一点?

有人之前处理过此事或有过一些建议吗? - 我真的很感激.

jenkins jenkins-plugins cloudbees docker jenkins-docker

6
推荐指数
2
解决办法
7750
查看次数