Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git Jenkins多分支管道卡在旧Jenkins文件上_Git_Docker_Jenkins_Jenkins Pipeline_Multibranch Pipeline - Fatal编程技术网

Git Jenkins多分支管道卡在旧Jenkins文件上

Git Jenkins多分支管道卡在旧Jenkins文件上,git,docker,jenkins,jenkins-pipeline,multibranch-pipeline,Git,Docker,Jenkins,Jenkins Pipeline,Multibranch Pipeline,我正在使用cowsay作为本地git存储库的应用程序来实践CI工作流。 我有一个docker compose,它构建了三个docker容器:一个Jenkins、一个gitLab和一个Artifactory。这三个卷都使用命名卷来存储一致的数据。 我正在运行一个基于Jenkins文件(声明性)和推送事件webhook的多分支管道。 到现在为止,一直都还不错。但是,Jenkins仍然停留在Jenkins文件的旧版本上。 我尝试过的解决方案: 我手动清空了jenkins home中我能找到的所有版本的

我正在使用cowsay作为本地git存储库的应用程序来实践CI工作流。 我有一个docker compose,它构建了三个docker容器:一个Jenkins、一个gitLab和一个Artifactory。这三个卷都使用命名卷来存储一致的数据。 我正在运行一个基于Jenkins文件(声明性)和推送事件webhook的多分支管道。 到现在为止,一直都还不错。但是,Jenkins仍然停留在Jenkins文件的旧版本上。 我尝试过的解决方案:

  • 我手动清空了jenkins home中我能找到的所有版本的jenkins文件(我查看了~/jobs/和~/caches)
  • 我完全删除了Jenkins并重新构建了图像,包括一个卷修剪
  • 我手动将文件迁移到新的存储库中
  • 我使用“git filter branch”从所有分支和提交中删除Jenkinsfile的所有版本
  • 我手动重写(而不是复制粘贴)Jenkins文件
  • 我绝望地无缘无故地清理了我的整个浏览器缓存
  • Jenkins拒绝重新缓存,并以某种奇怪的方式继续运行这条线路: “docker build-t cowsay/master。”这在Jenkins文件中不存在

    除此之外,我再也找不到其他要清理的缓存了。 帮忙

    编辑: 我没有运行任何命令。这种配置使得Jenkins作业在“git推送”到任何分支时运行。 我看到的错误是这一行: +docker build-t'cowsay'。 它是一行,以前在某个阶段的Jenkins文件中,但至少在最后5次提交/推送中不是。
    这一行导致错误,导致作业失败。

    我自己从未经历过这种失败,但这里有几件事我会尝试调试出问题:

  • 我首先要确保配置为使用git中的Jenkins文件,而不是静态脚本。要做到这一点,请转到您的多分支管道,单击“配置”,在“构建配置”块中,它应该说模式是“by Jenkinsfile”,路径是您的Jenkinsfile在repo中的相对路径。如果您转到每个分支的构建作业,并单击“查看配置”,您应该看到它们的管道定义是“来自多分支配置的管道”
  • 我将验证您看到的问题是否与Jenkins文件缓存有关,而不是与您的某个脚本运行的命令有关(例如,如果您运行shell脚本或make文件,他们可能会调用失败的命令)。为此,我将在jenkins文件的顶部添加一个echo,构建作业并查看该echo是否在作业输出中。如果是,您将从Jenkins获取最新信息,其他内容将调用您从Jenkins文件中删除的命令
  • 如果您没有看到步骤2中提到的echo命令,那么您肯定不会得到最新的消息。您提到您使用本地git回购。您是如何配置git scm的?jenkins是否可能正在等待来自远程服务器的推送通知,而您没有将本地更改推送到该服务器?如果您看到构建在每次提交时都会自动触发,这可能会消除这种情况

  • 请张贴您的详细信息;复制所需的所有代码、发出的命令以及看到的错误。因此,如果这是一个具体的问题,已经简化为一个最小的工作示例,那么这是唯一的地方。我不确定这是可能的。。。我可以在一些repo中发布我的文件,但问题似乎非常特定于一些我找不到的缓存。我还加入了其他阵营