已经是最新的 gitlab 管道 ***

Posted

技术标签:

【中文标题】已经是最新的 gitlab 管道 ***【英文标题】:Already up to date gitlab pipeline *** 【发布时间】:2021-09-24 01:24:10 【问题描述】:

我正在尝试 gitlab 管道。现在我做了一些更改和代码推送到主分支 管道显示已经更新到日期,但我的代码有变化

我尝试引入三个阶段,但仍然是同样的问题 .gitlab-ci.yml

before_script:
  - echo "Before script"
building:
  stage: build
  script:
    - git pull origin master
testing:
  stage: test
  script:
    - git pull origin master
deploying:
  stage: deploy
  script:
    - git pull origin master

【问题讨论】:

【参考方案1】:

如果您的管道在您更改的同一存储库上运行,则无需使用git pull。虽然,如果您的管道触发(在 repo A 上)另一个存储库(repo B)上的另一个管道,要访问 repo A 中的文件,您必须将 repo A 拉到 repo B 管道中。

【讨论】:

【参考方案2】:

如果 gitlab-ci 工作流程从克隆您的存储库开始,那么再多的 git pull 也不会改变您已经拥有完整历史记录的事实,并且在工作流程时,这是“已经是最新的”。

换句话说,您的 gitlab-ci.yml 文件中不需要 git pull。

【讨论】:

我将更改推送到主分支并手动部署。但是管道一次又一次地显示already up to date @PirtaMatharu 是的,因为它克隆您的存储库,从而获得您刚刚推送的最新内容。 你能给我任何参考来解决这个问题吗? @PirtaMatharu,换句话说,在您的屏幕截图中的第 11 行,已经完成了 git pull origin master。您无需再次执行此操作。想想当运行 CI 时,你在一个完全干净的 docker 中,gitlab-ci 包含的第一步是克隆 repo。大多数时候,你不需要在 CI 中执行任何 git 命令。您可以专注于 QA / 测试 / 部署。不要担心这里有来源。尝试 ls -l 来检查它。 @PirtaMatharu 考虑到在克隆之后拉取几乎总是会给你一个“已经是最新的”,这里没有真正需要解决的问题。

以上是关于已经是最新的 gitlab 管道 ***的主要内容,如果未能解决你的问题,请参考以下文章

无论管道是失败还是成功,都向 GitLab 报告 Tekton 管道状态(使用 gitlab-set-status 任务)

在哪里指定 GitLab ci/cd 管道的存储库凭据?

GitLab:多项目管道中的作业工件

如何在 Gitlab 中成功的管道结束时创建合并请求?

在 gitlab 管道中运行“sudo su”

没有权限运行下游管道的用户如何从上游管道触发运行 GitLab 下游管道