GitHub PR 不会触发 GitLab 管道

GitHub PR doesn't trigger GitLab pipeline

我正在尝试使用 GitHub 在 PR 上触发 GitLab 管道。 实际上,当开发人员在 GitHub 中创建 PR 时,his/her 代码会针对 GitLab 管道进行测试。

我正在尝试遵循此用户指南:https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/github_integration.html

我们有白银账户,但无法使用。创建 PR 时,未触发 GitLab 管道。

哪位有这种经历的可以帮忙看看? 谢谢 乔

我已找到问题的原因。 为了 GitHub 主要在 PR 请求中以 CD/CI 的身份触发 GitLab,您需要拥有一个 Silver/Premium 帐户,并且非常重要的是,成为根所有者。

任何其他情况,您将无法在 GitLab 的集成列表中看到 github。来自 gitlab 的人有一个绝妙的主意来隐藏它而不是显示它被禁用(这将是一个提示,以了解您需要升级的许可证)

上面的视频没有解释。

首先,您需要向我们提供您的 .gitlab-ci.yaml 文件的内容。在您的问题中,您询问了 GitHub 但您正在关注完全不同的 Gitlab 文档。两者都使用 git 命令提交和推送回购协议,但 GithubGitlab 不同。

  1. 对于 Github 管道,您需要创建一个存储库,然后转到 Actions。 Github 将建议您配置一个包含 file.yaml.github/workflows 目录。在这个 .yaml 文件中,您可以对管道进行编码。根据您的项目,Github 会向您推荐几台 linux 机器,这些机器具有足够的配置来 运行 您的文件(如果它是一个 Java 项目 --> 您将被推荐maven 机器,Python --> Python 机器,React/Angular -> 安装了 npm 的机器,Docker,用于部署的 Kubernetes...)和你'据我所知,仅限于 4 个私人项目(查看最后的信息)。

  1. 对于 Gitlab 你有两个选择,你可以使用像 github 这样的预配置机器,你可以通过在你的 .gitlab-ci.yaml 文件中添加例如 tag: npm 来调用它们,调用它们安装了 npm 的机器,但你需要支付一定数量的钱。或者您可以按照 Gitlab 文档中的 gitlab 命令配置您自己的 运行ners(这是最好的选择),但是您需要好的机器和服务器才能 运行 npm - mvn - python3 - ... commands 当然,在你的 Gitlab 存储库中,最后回答你的问题这个例子,.gitlab-ci.yaml 文件有两个简单的阶段:构建和测试,only 语句指定这些管道将 运行 如果有合并请求(我在这里使用 Gitlab 的预配置机器作为示例)更多关于我的 python github 项目的详细信息 https://github.com/mehdimaaref7/Scrapping-Sentiment-Analysis and for gitlab https://docs.gitlab.com/runner/
stages: 
  - build 
  - test 

build: 
  tags: 
    - shell
    - linux
  stage: build
  script: 
    - echo "Building"
    - mkdir build 
    - touch build/info.txt 
  artifacts:
    paths:
      - build/
  only:
    - merge_requests

test: 
  tags: 
    - shell
    - linux
  stage: test 
  script:
    - echo "Testing"
    - test -f "build/info.txt"
  only:
    - merge_requests