小编mko*_*bit的帖子

确定文件夹的"存储ID"以使用CLI上载和列出凭据

我正在使用带有嵌套文件夹的CloudBees文件夹插件和用于管理不同管道作业的秘密的Credentials插件.假设我有一个像这样的Jenkins文件夹结构.

folder1/
    folder2/
        job1
Run Code Online (Sandbox Code Playgroud)

文件夹插件允许我将凭据域和凭据范围限定到文件夹,以便只有这些文件夹中的作业才能访问这些凭据.

我可以通过UI执行此操作,但我们经常轮换这些凭据并希望自动执行部分操作.

我们想到这样做的一种方法是使用Jenkins CLI.

这里的凭证插件提供了各种不同的命令.例如:

list-credentials - 列出特定商店中的凭据

java -jar jenkins-cli.jar -s http:// localhost:8080 / list-credentials STORE

列出特定商店中的凭据

商店:商店ID


list-credentials-context-resolvers - 列出凭据上下文解析器

java -jar jenkins-cli.jar -s http:// localhost:8080 / list-credentials-context-resolvers

列出凭据上下文解析器


list-credentials-providers - 列出凭据提供程序

java -jar jenkins-cli.jar -s http:// localhost:8080 / list-credentials-providers

列出凭据提供程序


Jenkins全局范围的存储由我查看源代码确定,它显示了它system::system::jenkins.

如果我运行一些命令,我​​可以开始提取一些信息:

? java -jar credential-management/build/jenkinsAutomation/Localhost/cli/jenkins-cli.jar -s http://localhost:8080 list-credentials-context-resolvers --username admin --password password
Run Code Online (Sandbox Code Playgroud)

结果是: CLI命令list-credentials-context-resolvers的结果

运行以下内容:

? java -jar credential-management/build/jenkinsAutomation/Localhost/cli/jenkins-cli.jar -s …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-plugins jenkins-pipeline

5
推荐指数
1
解决办法
1129
查看次数

Gradle依赖json-simple错误

我是Gradle的新手,所以我正在尝试构建一个Java项目并且不确定依赖项.我从来没有让Gradle配置为能够进行我的测试或现在是一个jar文件来编译和运行.

我的build.gradle:

apply plugin: 'java'
apply plugin: 'maven'

repositories {
   jcenter()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.25'
    compile 'org.json:json:20160212'
    testCompile 'junit:junit:4.12'
}
Run Code Online (Sandbox Code Playgroud)

这就是我在控制台上得到的声明,它没有看到我的导入:

 error: package org.json.simple does not exist
 import org.json.simple.JSONParser;
Run Code Online (Sandbox Code Playgroud)

这是我的班级:

import org.json.simple.*;
import java.io.*;
import java.util.*;
import java.lang.*;

public class FileLoader {
  @SuppressWarnings("unchecked")
  public static void main(String args[]) {
    JSONParser parser = new JSONParser();
    int count = 0;

    try {
      Object obj = parser.parse(new FileReader(
          "Consumers.json"));

      JSONObject jsonObject = (JSONObject) obj;
      JSONArray array = jsonObject.getJSONArray("people");
    } catch …
Run Code Online (Sandbox Code Playgroud)

junit dependencies gradle json-simple build.gradle

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

干净的方式退出声明詹金斯管道成功?

我正在寻找退出声明性Jenkins管道的最简洁方法,具有成功状态.虽然使用错误步骤退出时出错,但我找不到任何与成功代码一样退出的方法.例如:

stage('Should Continue?') {
  when {
    expression {skipBuild == true }
  }
  steps {
    echo ("Skiped Build")
    setBuildStatus("Build complete", "SUCCESS");
    // here how can I abort with sucess code?
    // Error Would have been:
    // error("Error Message")

  }
}
stage('Build') {
  steps {
    echo "my build..."
  }
}
Run Code Online (Sandbox Code Playgroud)

对于带脚本化构建的示例,我可以使用以下代码实现它:

if (shouldSkip == true) {
  echo ("'ci skip' spotted in all git commits. Aborting.")
  currentBuild.result = 'SUCCESS'
  return
}
Run Code Online (Sandbox Code Playgroud)

虽然我知道能够在我的声明性pipieline中添加脚本步骤,但我希望找到一种更清洁的方式.

另一种方法可能是抛出错误并将其捕获到某个地方,但同样又非常混乱.

有更干净的方式吗?

jenkins jenkins-pipeline jenkins-declarative-pipeline

5
推荐指数
1
解决办法
3145
查看次数

Jenkins管道-用于docker-compose的环境变量

我正在尝试将docker-compose环境变量用于由设置的图像名称,Jenkinsfile但是它不起作用。

我有一个Jenkinsfile包含

node() {

  stage('Checkout') {
    cleanWs()
    git credentialsId: 'xxx', url: 'ssh://git@...'
  }

  stage('Build') {
    withMaven(maven: 'maven-3.5.3') {
      sh 'mvn clean package'
      def pom = readMavenPom file:'pom.xml'
      JAR_FILE = pom.artifactId + "-" + pom.version + ".jar"
      JAR_VERSION = pom.version
    }
  }

  stage('Build Docker Image') {
    echo "Docker Build ..."
    docker.withTool('docker') {
      app = docker.build("microservices/my-service:${JAR_VERSION}","--build-arg JAR_FILE=${JAR_FILE} .")
    }
  }

  stage('Running Docker Container') {
    echo "Docker Run ..."
    withEnv(['VERSION=1.0.0']) {
      docker.withTool('docker') {
        sh "docker-compose rm -f …
Run Code Online (Sandbox Code Playgroud)

jenkins docker docker-compose jenkins-pipeline

5
推荐指数
1
解决办法
4083
查看次数

Gradle使用servlet-api 2.5而不是3.0.1创建war

我正在使用Gradle 1.9(下面的额外详细信息)来构建一个将在Jetty 9(jetty-9.0.5.v20130815)上运行的WAR.

它配置为web.xml-

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
...
Run Code Online (Sandbox Code Playgroud)

build.gradle有这种依赖 -

repositories {
    mavenCentral()
}
dependencies {
    providedCompile 'javax.servlet:javax.servlet-api:3.0.1'
    compile 'org.springframework:spring-webmvc:3.2.2.RELEASE'
    compile 'javax.mail:mail:1.4.7'
    compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
    compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
    compile 'commons-net:commons-net:3.3'
    compile 'mysql:mysql-connector-java:5.1.26'
    compile 'org.springframework:spring-jdbc:3.2.4.RELEASE'
    compile 'commons-fileupload:commons-fileupload:1.3'
    compile 'commons-pool:commons-pool:1.6'
    compile 'commons-dbcp:commons-dbcp:1.4'
    compile 'log4j:log4j:1.2.17'
    compile 'org.slf4j:slf4j-api:1.7.5'
    compile 'org.slf4j:slf4j-log4j12:1.7.5'
    runtime 'javax.servlet:jstl:1.1.2'
}
Run Code Online (Sandbox Code Playgroud)

building using使用in gradle clean war生成一个WAR文件.servlet-api-2.5.jarWEB-INF/lib/

更多环境细节 -

Build time:   2013-11-19 08:20:02 UTC
Build number: none
Revision:     7970ec3503b4f5767ee1c1c69f8b4186c4763e3d

Groovy:       1.8.6
Ant:          Apache Ant(TM) version …
Run Code Online (Sandbox Code Playgroud)

java jetty war gradle

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

嵌入的 json 对象上的唯一索引

我现在正在测试 Postgresql 9.4 beta2。我想知道是否可以在嵌入式 json 对象上创建唯一索引?

我创建了一个表名products

CREATE TABLE products (oid serial primary key, data jsonb)
Run Code Online (Sandbox Code Playgroud)

现在,我尝试将 json 对象插入到数据列中。

{
    "id": "12345",
    "bags": [
        {
            "sku": "abc123",
            "price": 0,
        },
        {
            "sku": "abc123",
            "price": 0,
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是,我希望sku包包独一无二。这意味着 json 不能插入到 products 表中,因为sku在这种情况下它不是唯一的。

我试图创建一个像下面这样的唯一索引,但它失败了。

CREATE UNIQUE INDEX product_sku_index ON products( (data->'bags'->'sku') )
Run Code Online (Sandbox Code Playgroud)

有什么建议?

postgresql indexing json unique-index postgresql-9.4

4
推荐指数
1
解决办法
2616
查看次数

自动将发电机表卸载到云搜索域

我正在大量使用Dynamo DB来处理我正在构建的服务.出现了需要云搜索的新客户端请求.我看到可以通过AWS控制台从发电机表创建云搜索域.

我的问题是:

有没有办法通过API或指定的时间间隔自动将数据从发电机表卸载到云搜索域?

我更喜欢这个手动将dynamo文件卸载到cloudsearch.所有帮助非常感谢!

amazon-web-services amazon-dynamodb amazon-cloudsearch

4
推荐指数
1
解决办法
4047
查看次数

GSI 与表的区别

我无法理解全局二级索引和表之间的区别。

  • 为什么我要使用全局二级索引,为什么不创建另一个表?
  • 我必须为两者指定读取和写入吞吐量。当对带有 GSI 的表进行写入时,我必须同时写入表和索引。我的问题是为什么 GSI 不创建另一个表而不是全局二级索引?
  • 使用 GSI 有什么好处?

amazon-web-services amazon-dynamodb

4
推荐指数
2
解决办法
1531
查看次数

如何在Jenkins Pipeline工作中获取UID

如何UID在詹金斯管道作业中访问变量?

null什么时候做的:

pipeline {

    agent any
    environment {
        def userId = "${env.UID}";
    }
    stages {
        stage('Print UID') { 
            steps {
                script {
                   echo "${userId}"
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jenkins托管在Ubuntu 16.04上

ubuntu-16.04 jenkins-pipeline

4
推荐指数
2
解决办法
2201
查看次数

访问 jenkins 共享库类中的插件

我想在/src目录中创建一个可以访问 docker 和其他插件步骤的类。

所以我有一个看起来像这样的课程;

class someClassName implements Serializable {
    def env
    def steps
    def docker

    someclassName(env, steps, docker){
        this.step = step
        this.docker = docker
        this.env = env
    }

    def runCommands(String img, List commands){
       docker.image(img).inside {
           commands.each {
             steps.sh it
           }
       }
    }
Run Code Online (Sandbox Code Playgroud)

现在在Jenkinsfile我将有

@Library('name@branch') _
def x = new com.JenkinsLibrary.someClassName(env, steps, docker)
x.runCommands('maven:latest', ['mvn clean', 'mvn test'])
Run Code Online (Sandbox Code Playgroud)

我不喜欢的是我如何为每个对象创建一个构造函数,以便我可以调用属于该对象的方法。有没有更好的对象可以用于我的构造函数,而不必使用 env、steps、docker 等?

此外,steps 对象下有哪些管道步骤可用?环境一样吗?

jenkins jenkins-pipeline jenkins-shared-libraries

4
推荐指数
1
解决办法
1146
查看次数