如何更改工作区并在Jenkins上构建记录根目录?

Yan*_*fer 32 workspace jenkins

我希望将Jenkins的数据写入驱动器"E:",因为这是服务器上的大型驱动器.Jenkins本身安装在"C:"上.

我怎么做?

我看到的默认配置是:

工作区根目录: $ {ITEM_ROOTDIR}/workspace
构建记录根目录: $ {ITEM_ROOTDIR}/builds

以下更改是否有助于我实现我的需求?

工作区根目录: E:/ Jenkins /工作区
构建记录根目录: E:/ Jenkins/builds/$ {ITEM_FULL_NAME}

另外,"$ {ITEM_FULL_NAME}"是什么意思?

Yan*_*fer 33

我想到了.要将Jenkins数据保存在其他驱动器上,您需要执行以下操作:

工作区根目录: E:\ Jenkins\$ {ITEM_FULL_NAME}\workspace
构建记录根目录: E:\ Jenkins\$ {ITEM_FULL_NAME}\builds

更改目录

  • 看起来这个选项已从 jenkins UI 中消失,请改用 /sf/answers/3597636941/ (2认同)

c32*_*dge 24

编辑:其他评论,"高级..."按钮似乎已在更新的Jenkins版本中删除.如果您的版本没有,请参阅knorx的答案.

我遇到了同样的问题,即使在找到这个旧的拉取请求后,我仍然无法在系统级别找到指定工作区根目录或构建记录根目录的位置,而不是为每个作业指定自定义工作区.

设置这些:

  1. 导航到Jenkins- > Manage Jenkins- >Configure System
  2. 在顶部,在下面Home directory,单击Advanced...按钮: 主目录下的高级按钮
  3. 现在出现工作区根目录和构建记录根目录的字段: 其他目录选项
  4. 如果单击每个选项左侧的帮助气泡,则显示的信息非常有用.特别是(来自Workspace Root Directory帮助):

    该值可能包括以下变量:

    • ${JENKINS_HOME} - Jenkins主目录的绝对路径
    • ${ITEM_ROOTDIR} - Jenkins存储给定作业的配置和相关元数据的目录的绝对路径
    • ${ITEM_FULL_NAME} - 给定作业的全名,可以是斜线分隔的,例如文件夹foo中作业栏的foo/bar


    该值通常应包括${ITEM_ROOTDIR}${ITEM_FULL_NAME},否则不同的作业将最终共享相同的工作区.

  • 看起来他们在某个时候删除了"高级"按钮.请参阅@adil ameen的答案,直接在config.xml文件中进行更改. (3认同)
  • 对我来说,Jenkins忽略了工作区根目录的变化,即使在重启奴隶后也是如此 (2认同)

小智 17

您可以修改config.xml默认目录中文件的路径

<projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
<workspaceDir>D:/Workspace/${ITEM_FULL_NAME}</workspaceDir>
<buildsDir>D:/Logs/${ITEM_ROOTDIR}/Build</buildsDir>
Run Code Online (Sandbox Code Playgroud)


kno*_*orx 10

你需要的变量在jenkins wiki中解释:https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties

默认变量ITEM_ROOTDIR指向jenkins安装中的目录.正如您已经发现的那样,您需要:

  • 工作区根目录:E:/ myJenkinsRootFolderOnE/$ {ITEM_FULL_NAME}/workspace
  • 构建记录根目录:E:/ myJenkinsRootFolderOnE/$ {ITEM_FULL_NAME}/builds

您需要通过config.xml nowerdays实现此目的.引用上面链接的wiki页面:

这曾经是一个UI设置,但在2.119中被删除,因为它不支持现有构建记录的迁移,并且可能导致与重建之前的构建相关错误.