我目前让Jenkins设置了许多工作,但事实证明很难备份,因为工件存储在作业目录中。我想分别备份作业配置和工件。我确定我记得在某个地方读过Jenkins现在可以选择将它们存放在工作之外,但我找不到这个。
是否有任何配置选项可以在Jenkins界面上的作业中显示工件? (即,而不仅仅是一个将工件复制到其他地方的加载项)
答案 0 :(得分:12)
转到jenkins配置页面,例如
http://mybuildserver.acme.com/configure
在配置页面的顶部有一个"主目录"设置。点击"高级..."它下方的按钮。
现在设置"工作区根目录"到e:\jenkins-workspaces\${ITEM_FULL_NAME}
和"构建记录根目录"到e:\jenkins-builds\${ITEM_FULL_NAME}
或类似的东西。
警告:我运行Jenkins 2.7.2并注意到在配置Jenkins之后某些功能无法正常工作。我看到了problems with folders和problems with the multi-branch project plugin。如果您依赖这些功能,请检查这些问题的状态。
答案 1 :(得分:6)
正如你所能see here,有许多插件可以在任何你想要/需要的地方部署工件,在FTP,CIFS,Confluence,Artifactory ......尤其是允许你制作的ArtifactsDeployer Jenkins Home中的工件副本。
答案 2 :(得分:1)
尝试Use Custom Workspace
构建选项。来自Jenkins popup帮助:
对于Jenkins的每个职位,Jenkins都会分配一个独特的“工作区” 目录。“这是检出代码的目录 构建发生了。通常你应该让Jenkins分配和清理 工作区目录,但在几种情况下这是有问题的, 在这种情况下,此选项允许您指定工作空间位置 手动
此选项也可在多配置项目构建的高级项目属性下使用。
答案 3 :(得分:1)
谢谢Sam,您的帖子使我朝正确的方向解决了我的问题。 一直在寻找一种方法,使我可以与多分支项目的构建的Job-Archive建立符号链接。到目前为止,我们一直在文件系统中手动搜索正确的文件夹基本名称,并将其添加到Jenkinsfile中。 现在,我可以简单地使用
jobOutputFolder = currentBuild.rawBuild.artifactsDir.path
并在我的脚本中使用它。 如果出于安全考虑,我可以另外将其实现为共享库。
答案 4 :(得分:0)
“准备运行的环境”下的groovy脚本将始终在主服务器上运行,并且该groovy脚本可以创建符号链接到您真正希望将工件归档到mTextureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() {
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
// is called only once, isn't called after reopening activity
Log.i(TAG, "mTextureView onSurfaceTextureAvailable");
surface.setDefaultBufferSize(cameraWidth, cameraHeight)
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
// isn't called on Android 7, 8
Log.i(TAG, "mTextureView onSurfaceTextureDestroyed");
return true;
}
...
});
的位置,该工件应包括作业名称和内部版本号:
archive_to
当然,(很遗憾)当詹金斯清除旧版本时,遗留了旧的工件,因为即使詹金斯拥有符号链接和目标(耻辱),詹金斯在清除时也不会遵循符号链接。
我的解决方法是将符号链接从新的存档目录中指向,然后,当詹金斯清除它的存档目录时,新的符号链接将悬挂起来,然后cron作业可以随后删除新的作业存档目录
答案 5 :(得分:-1)
复制工件插件(https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin)添加了一个构建步骤,用于将文件从另一个项目的工作区检索到当前工作并从那里开始工作。