小编Mik*_*peg的帖子

如何覆盖 jenkinsfile 的默认参数?

有时,我们想要创建多个使用相同 Jenkinsfile 的作业,而不是单个作业。例如,这可能发生,因为我们希望维护基于参数划分的日志,而不是让单个作业查找正确的日志。

但是,在这种情况下,我们不能使用 Jenkinsfile 中的参数定义,因为我们在作业实例上定义的任何默认值都将被以下执行覆盖 Jenkinsfile 中定义的任何内容(如果我们没有定义默认值)。

所以,在这种情况下,我们唯一的办法就是去掉 Jenkinsfile 中的参数定义,直接在作业上定义参数,这不是最优的。

我的意思是,我同意在大多数情况下这是正确的行为,因为您不希望您的参数不同步并且没有版本化,但是有没有办法指定 Jenkins 跳过参数重新配置或覆盖 Jenkinsfile 中写入的默认参数?可以按作业激活/停用的东西。

jenkins jenkins-plugins jenkins-pipeline

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

如何在docker artifactory容器中将自己定位的文件夹用作卷?

我正在按照这些说明运行一个神器容器:https://www.jfrog.com/confluence/display/RTF/Running+with+Docker

它工作和神器已启动并运行,但这样我就无法使用自己的主机目录作为容器卷进行链接.该指南说要使用

-v /var/opt/jfrog/artifactory/etc
-v /var/opt/jfrog/artifactory/data
-v /var/opt/jfrog/artifactory/backup
-v /var/opt/jfrog/artifactory/logs
Run Code Online (Sandbox Code Playgroud)

运行容器时的选项,但这样我得到的卷存储在一些/ var/lib/docker/volumes/..子文件夹中.我想要的是将这些卷安装在我的主机的/ opt/artifactory /中

所以我试图以这种方式使用卷映射:

-v /opt/artifactory/etc:/var/opt/jfrog/artifactory/etc
-v /opt/artifactory/data:/var/opt/jfrog/artifactory/data
-v /opt/artifactory/backup:/var/opt/jfrog/artifactory/backup
-v /opt/artifactory/logs:/var/opt/jfrog/artifactory/logs
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误:

** ERROR: Artifactory home folder not defined or does not exists at
Run Code Online (Sandbox Code Playgroud)

有没有人以前试过这个?我该如何管理它?

谢谢,米歇尔.

artifactory docker

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

由于找不到“createEvent”,纱线测试失败(create-react-app)

我有一个使用 create-react-app 创建的简单反应项目。创建项目后,yarn test 命令工作正常,然后我开始添加一些实际的反应代码,最终在执行测试后出现此错误:

\n\n
PASS  src/test/App.test.js\n  \xe2\x9c\x93 renders without crashing (28ms)\n\nTest Suites: 1 passed, 1 total\nTests:       1 passed, 1 total\nSnapshots:   0 total\nTime:        0.729s, estimated 1s\nRan all test suites related to changed files.\n\nWatch Usage\n \xe2\x80\xba Press a to run all tests.\n \xe2\x80\xba Press p to filter by a filename regex pattern.\n \xe2\x80\xba Press t to filter by a test name regex pattern.\n \xe2\x80\xba Press q to quit watch mode.\n \xe2\x80\xba Press Enter to trigger a test run.\n/Users/mpegorar/Development/SpringApps/fluxy_frontend/node_modules/react-scripts/scripts/test.js:20\n  throw err;\n …
Run Code Online (Sandbox Code Playgroud)

reactjs create-react-app yarnpkg

5
推荐指数
0
解决办法
5136
查看次数

如何以编程方式列出 jenkins 作业脚本路径

我想创建一个在 jenkins 控制台上运行的 groovy 脚本,以列出作业定义以及使用的存储库和脚本路径(jenkinsfile),输出如下:

作业名称 -> git 仓库 -> 脚本路径

到目前为止,我能够列出作业名称和 git 存储库,但找不到获取脚本路径的方法。它似乎没有包含在 GitSCM 插件中,但我找不到通过 WorkflowJob 获取它的方法。这是我当前的代码:

Jenkins.instance.getAllItems(Job.class).each{
  jobName = it.getName()
  if(it instanceof FreeStyleProject){
   return
  }
  scm = it.getTypicalSCM();
  if (scm instanceof hudson.plugins.git.GitSCM) {
    scm.getRepositories().each{
        it.getURIs().each{
            println(jobName +"-> "+ it.toString());
        }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如何检索脚本路径?

jenkins jenkins-groovy jenkins-pipeline jenkins-api

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

如何读取詹金斯管道中的子文件夹

我正在尝试编写一个管道詹金斯作业,该作业循环遍历特定目录的子文件夹并启动某些内容。问题是访问文件系统。由于某种原因,它似乎根本不读取文件系统,也不读取它自己的工作区。

这是我正在使用的片段

node ('label') {
    workspacePath = '/opt/installersWS'
    ws(workspacePath){
        stage ("test"){
            ...some stuff...
            runtimeBuildDir = new File(workspacePath + "/components")
            echo runtimeBuildDir.getPath()
            if (runtimeBuildDir.exists()){
                echo "search for subfolders"
            } else {
                echo "main folder not existing"
            }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该文件夹当然存在于服务器上,但运行总是返回第二个回显。

更新: 我发现以这种方式给出的所有 gradle/java 指令都不是针对节点的,而是在主节点上运行的。这就是我找不到目录的原因。所以我完全误解了管道是如何工作的。

说的是……我知道如何检索它吗?例如,有没有办法从 shell 步骤设置 gradle 属性?

谢谢,米歇尔

jenkins jenkins-pipeline

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

如何在gradle插件中动态创建任务?

我正在开发一个 gradle 插件,当我尝试动态创建任务时遇到了一个问题。

这是我的代码片段:

apply plugin: BootstrapPlugin

bootstrapConfig {
    basedir = "C:/temp/unzip"
    componentList = [
        [
            zipName: "test1",
            zipVersion: "_2",
            zipNetworkLocation: "temp",
            zipUnpackLocation: "${basedir}"
        ],
        [
            zipName: "test2",
            zipVersion: "_1",
            zipNetworkLocation: "temp",
            zipUnpackLocation: "${basedir}"
        ]
    ]
}

class BootstrapPlugin implements Plugin<Project> {
    void apply(Project project){
        project.extensions.create("bootstrapConfig",BootstrapConfigPluginExtension)
        project.task("unzipAll", dependsOn: project.tasks.matching { Task task -> task.name.startsWith("unzipSingle")}){
           println "DOIT!"
        }

        project.bootstrapConfig.componentList.each { element ->
            project.task "unzipSingle${element.zipName}" (type: Copy)   {
                def artifactFile = new File(project.bootstrapConfig.shareUrl + "/" + element.zipNetworkLocation + "/" + element.zipName + …
Run Code Online (Sandbox Code Playgroud)

dynamic gradle gradle-plugin

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

如何使sematic-ui-react Tab响应?

我正在开发一个React应用程序,最近我开始使用语义ui react模块。

不幸的是,我无法使Tab对象响应...

一个非常简单的脚本可以显示以下内容:

import React from 'react'
import { withRouter } from 'react-router-dom'

import {Tab} from 'semantic-ui-react';

// import NavSection from './NavSection'

var sections = ["SectionA","SectionB","SectionC","SectionD","SectionE","SectionF"]

const NavigatorHeader = () => (
<div>
  <h1>Navigator</h1>
  <div>
    <Tab menu={{ pointing: true }} panes={getPanes(sections)} />
  </div>
</div>
)

export default withRouter(NavigatorHeader)


function getPanes(sections){
  return sections.map( function(section){
    return {
      menuItem: section,
      render: () =>
        <Tab.Pane attacched="false">
          <div>
            <p>
            Some Text that we can change tab from tab. E.g. with the title: <b>{section}</b>
            </p> …
Run Code Online (Sandbox Code Playgroud)

semantic-ui semantic-ui-css semantic-ui-react

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