有时,我们想要创建多个使用相同 Jenkinsfile 的作业,而不是单个作业。例如,这可能发生,因为我们希望维护基于参数划分的日志,而不是让单个作业查找正确的日志。
但是,在这种情况下,我们不能使用 Jenkinsfile 中的参数定义,因为我们在作业实例上定义的任何默认值都将被以下执行覆盖 Jenkinsfile 中定义的任何内容(如果我们没有定义默认值)。
所以,在这种情况下,我们唯一的办法就是去掉 Jenkinsfile 中的参数定义,直接在作业上定义参数,这不是最优的。
我的意思是,我同意在大多数情况下这是正确的行为,因为您不希望您的参数不同步并且没有版本化,但是有没有办法指定 Jenkins 跳过参数重新配置或覆盖 Jenkinsfile 中写入的默认参数?可以按作业激活/停用的东西。
我正在按照这些说明运行一个神器容器: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)
有没有人以前试过这个?我该如何管理它?
谢谢,米歇尔.
我有一个使用 create-react-app 创建的简单反应项目。创建项目后,yarn test 命令工作正常,然后我开始添加一些实际的反应代码,最终在执行测试后出现此错误:
\n\nPASS 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) 我想创建一个在 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)
如何检索脚本路径?
我正在尝试编写一个管道詹金斯作业,该作业循环遍历特定目录的子文件夹并启动某些内容。问题是访问文件系统。由于某种原因,它似乎根本不读取文件系统,也不读取它自己的工作区。
这是我正在使用的片段
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 属性?
谢谢,米歇尔
我正在开发一个 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) 我正在开发一个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) jenkins ×3
artifactory ×1
docker ×1
dynamic ×1
gradle ×1
jenkins-api ×1
reactjs ×1
semantic-ui ×1
yarnpkg ×1