小编Ste*_*ing的帖子

如何在Jenkinsfile中设置github pull request构建?

所以,我一直在使用Jenkins.我已经使用Github Pull Request Builder插件设置了许多项目,以便在有人打开拉取请求时运行测试,然后在拉取请求实际合并到主控时触发其他工作(构建,推送,部署等).

那么,有没有办法用Jenkins文件,组织文件夹或multibranch构建交易来设置它?

github jenkins jenkins-workflow jenkins-pipeline

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

使用Jenkins管道在节点之间复制构建工件

我正在尝试将现有的Jenkins构建作业移动到单个Jenkins 2管道,并想知道是否可以在构建中将文件从一个节点复制到另一个节点.我的想法是:

Node A (Windows)
  Checkout scm
  Execute ant build
  Archive artifact (or whatever required action)
Node B (Unix)
  Checkout scm
  Copy build artifact from node A --> is this possible ?
  Execute ant build
  Then followed by tests...
Run Code Online (Sandbox Code Playgroud)

我试图使用复制神器的一步,但它似乎没有正常工作,所以我不知道是否有在管道中间复制文件的方式,或者如果我要留在当前的构建体系结构(使用复制工件插件,但具有完全独立的构建作业).

jenkins jenkins-pipeline

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

在节点run_list中指定确切的cookbook版本仍然可行吗?

我在我的笔记中有这个{"run_list":["recipe[nginx@1.2.3]"]}可以明确指定要在节点run_list中使用的cookbook版本,但是我无法使它工作,并且找不到任何文档说明是否仍然支持它或者它已被弃用.

这是使用厨师11.18.0.任何人都可以确认这是否仍然可以使用以及应该配置的位置.在节点run_list或角色run_list中?

谢谢

chef-infra

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

让Jenkins管道等到服务器启动

我目前正在开始将构建转换为Jenkins构建管道.在某个时刻,我们有必要等待在docker容器中启动Web应用程序.

我的想法是使用这样的东西:

timeout(120) {
    waitUntil {
        sh 'wget -q http://server:8080/app/welcome.jsf -O /dev/null'
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这使得管道构建失败:

错误:脚本返回退出代码4

有没有简单的方法来完成这项工作?

编辑:

我设法使用以下代码使其工作,但阶段仍然标记为失败(尽管构建继续并最终标记为绿色).

timeout(120) {
    waitUntil {
        try {
            sh 'wget -q http://server:8080/app/welcome.jsf -O /dev/null'
            return true
        } catch (exception) {
            return false
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-pipeline

13
推荐指数
2
解决办法
3万
查看次数

自上次成功构建jenkins管道以来如何获得更改?

任何人都有一个Jenkins管道脚本可以填充自上次成功构建变量以来的所有更改?我正在使用git和multibranch管道作业.

jenkins jenkins-pipeline

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

当管道名称以交付结束时,如何跳过 jenkinsfile 管道中的一个阶段?

我有 2 个管道,一个用于审查,一个用于部署,所以当管道以审查结束时,我想跳过 jenkins 文件执行,但是当以部署结束时,它应该执行阶段或我尝试使用的 jenkins 文件,如果但这是声明性管道,所以当应该使用时,如果遇到部署管道结束,我想避免使用 when 条件执行阶段

#!/usr/bin/env groovy
final boolean Deploy = (env.JOB_NAME as String).endsWith("-deploy")


pipeline {
    agent any
    parameters {
        choice(
            choices: ['greeting' , 'silence'],
            description: '',
            name: 'REQUESTED_ACTION')
    }

    stages {
//how to ouse when here to use deploy vairable to avoide execution of stage below
        stage ('Speak') {

            steps {
                echo "Hello, bitwiseman!"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

jenkins-pipeline

13
推荐指数
3
解决办法
4万
查看次数

如何引用Terraform模块创建的资源

我正在使用AWS VPC Terraform模块来创建VPC.此外,我想使用aws_internet_gateway资源创建Internet网关并将其连接到此VPC .

这是我的代码:

module "vpc" "vpc_default" {
  source = "terraform-aws-modules/vpc/aws"

  name = "${var.env_name}-vpc-default"
  cidr = "10.0.0.0/16"
  enable_dns_hostnames = true
}

resource "aws_internet_gateway" "vpc_default_igw" {
  vpc_id = "${vpc.vpc_default.id}"

  tags {
    Name = "${var.env_name}-vpc-igw-vpcDefault"
  }
}
Run Code Online (Sandbox Code Playgroud)

当我运行时terraform init,我收到以下错误:

初始化模块... - module.vpc

错误:资源'aws_internet_gateway.vpc_default_igw'配置:变量vpc.vpc_default.id中引用的未知资源'vpc.vpc_default'

如何引用Terraform模块创建的资源?

terraform

13
推荐指数
1
解决办法
3591
查看次数

种子工作要求jenkins的脚本批准

我试图在jenkins中执行一个种子作业(使用groovy脚本的github url)并得到以下错误.

第一次建立.跳过更改日志.
处理DSL脚本APIServerDeployer.groovy
错误:脚本尚未批准使用
完成:FAILURE

jenkins jenkins-job-dsl

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

我可以使用协议相对的<base>标签吗?

协议相对URL可以方便地使用与原始请求相同的模式(HTTP或HTTPS)包含资源(图像,CSS,JS),同时仅保留缓存页面的单个副本.然后,用户代理决定是否使用HTTP或HTTPS(基于HTML页面的URI).

我们正在使用<base href=".." />HTML中的资源的标记和相对URL.

一个例子:

<html>
<head>
  <base href="http://example.com" />
  <script src="js/foo.js" type="text/javascript" />
</head>
Run Code Online (Sandbox Code Playgroud)

有什么办法可以把它结合起来吗?<base/>标签内的协议相对URL ?

<base href="//example.com" />
Run Code Online (Sandbox Code Playgroud)

我的实验尤其如此.有时Internet Explorer工作,有时甚至没有(有时甚至菜单链接都不起作用,有时候CSS图像没有加载).

有什么东西可以使我的工作或任何推荐,如果这是一个好主意?我无法在caniuse.com等网站上找到相关信息.

html internet-explorer http

11
推荐指数
1
解决办法
1961
查看次数

如何继续使用Jenkins声明性管道语法中的失败阶段

我想在Jenkins声明性管道语法中定义多个阶段,这些阶段可以继续通过它们中的任何一个失败.我找不到任何真正重复的现有问题,因为它们都假定或允许脚本化语法.

pipeline {
    agent any
    stages {
        stage('stage 1') {
            steps {
                echo "I need to run every time"
            }
        }
        stage('stage 2') {
            steps {
                echo "I need to run every time, even if stage 1 fails"
            }
        }
        stage('stage 3') {
            steps {
                echo "Bonus points if the solution is robust enough to allow me to continue *or* be halted based on previous stage status"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为了澄清,我不是在寻找如何在脚本语法中完成此任务.我试图理解这种流控制是否实际上是在声明性语法中支持和形式化的.为此,我将尝试准确定义我正在寻找的内容:

需要

  • 没有尝试/捕获.我不想下载到脚本模式,或者在另一个共享库或脚本块中"包装"我的声明性管道.
  • 没有post step恶作剧.我想要真正的多个阶段,而不是一个post always …

jenkins jenkins-pipeline jenkins-declarative-pipeline

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