我有一堆管道作业,但是当执行时,一些工作区会保留下来,有些会被删除。詹金斯是如何做出这些决定的?
根据我到目前为止的发现:
在节点上执行的所有作业将保留其工作区,例如/home/ec2-user/workspaces/some-job
某些在master上工作的工作区保留其工作空间,但其他一些工作区在作业完成后消失。例如,在我的构建作业成功之后,如果我ssh
可以看到其工作区目录;但是我所有的e2e作业都没有工作区。
请注意,我在管道中没有使用clearWs
,deleteDir
等中的任何一个。
顺便说一句,我正在研究工作区的原因是磁盘使用率一直在增加,我想清理。我以为每次运行作业都会覆盖工作区,但是我多次收到“磁盘空间太低”警告。
答案 0 :(得分:0)
Jenkins正在为每个默认的构建作业(=运行)创建一个新的工作区。您可以在控制台日志中ws的路径中看到:/ here / is / the / ws @ buildnumber。如果您不想发生这种行为,可以将其设置为例如每个回购都相同的路径:How to set specific workspace folder for jenkins multibranch pipeline projects
答案 1 :(得分:0)
也许您的某些作业不会在Jenkins Master上执行,而是在某些连接的Node上执行(通过Jenkinsfile或Pipeline描述中的agent
指令)。如果是这种情况,您将不会在Jenkins主服务器上的此Job的工作空间内看到构建目录,而是在连接的Node上看到。
您只会在Master的/<JENKINS_HOME>/jobs/My_Job/
下获得构建结果(如工件,报告等)。
请记住,例如,如果您在Dockerfile中运行构建并已(在Jenkins配置中)配置了特定的节点标签以执行Docker构建,则也可以间接触发节点上的Jenkins构建。