中止管道后,Jenkins 将工作区从
opt/jenkins/workspace/some-project
更改为 opt/jenkins/workspace/some-project@2
。
这对于执行另一个构建来说不是问题,但是,它会导致我们为此管道设置的外部集成(CI 可见性)出现问题。
有办法重置工作区吗?
我尝试从工作人员中删除工作区目录,但没有帮助。它存储在 Jenkins 的某个地方。我搜索了一些锁或 tmp 文件,但找不到任何东西。
非常感谢您的帮助。
您不会在 Jenkins 中重置工作区路径。 @2、@3 和其他目录仅代表同一管道的不同构建的不同工作空间 - 通常当它们同时构建时会发生这种情况,并且这绝对是预期的,因为您不希望它们重写彼此的工作空间。
您可能可以使用 customWorkspace
部分的
agent
参数,但要使其真正不可变,您需要使用 absolute 路径:
在此自定义工作区中运行此代理所应用的管道或单个阶段,而不是默认的。它可以是相对路径(在这种情况下,自定义工作区将位于节点上的工作区根目录下),也可以是绝对路径。
disableConcurrent
选项同时运行构建的功能:
禁止管道并发执行。对于防止同时访问共享资源等很有用。例如:
在管道已经有正在执行的构建时将构建排队,或
options { disableConcurrentBuilds() }
中止正在运行的构建并启动新的构建。
options { disableConcurrentBuilds(abortPrevious: true) }