使用 Gitlab API 令牌的 Jenkins 自由式项目永远不会克隆存储库,没有错误,构建总是成功

nix*_*ind 2 jenkins gitlab jenkins-pipeline

我已经按照这个 gitlab教程链接将我的 jenkins 服务器连接到 Gitlab。

一切都很顺利,我已经:

  • 在我的 GitLab 个人资料中创建了个人访问令牌
  • 使用 jenkins 系统配置中的我的 GitLab 访问令牌创建了一个 GitLab API 令牌,如教程中所述
  • 创建一个自由式詹金斯作业并从下拉列表中选择我的 GitLab 连接
  • 选中将更改推送到 GitLab 时构建复选框。
  • 选中“已接受的合并请求事件”“已关闭的合并请求事件”复选框
  • 从上述自由式项目中生成了一个秘密令牌
  • 使用 freestyle jenkins 项目秘密令牌在 GitLab 项目存储库集成设置中创建 Webhook

直到那里一切都很顺利。然后我将包含 a 的代码添加并推jenkinsFile送到我的 GitLab 存储库,并进入 Jenkins WebUI 查看构建状态,但管道显示绿色表示构建成功,虽然没有任何反应,但没有从 GitLab 检索到任何代码(如附加控制台输出屏幕截图),因此没有jenkinsFile执行,也没有显示错误消息。

我尝试从 WebUI 手动运行构建,但结果相同,无法git push events从 GitLab触发我的管道

在此输入图像描述

我想我可能应该GitSource Code Management部分中选择(我将其保留None,因为教程没有提及它),但如果我选择 Git 作为 SCM,我无法选择我的 GitLab API 令牌凭据,似乎我们无法使用 GitLab 插件(API 令牌)和同一构建项目的 Git 插件。

那么我应该如何继续使用 GitLab API 令牌,使用 jenkinsFile 从 GitLab 构建我的 jenkins 项目?GitLab 教程是否遗漏了一些有用的步骤?

nix*_*ind 5

好吧,我想我现在明白了这个问题。有两组凭据:GitLab API token用于访问 GitLab Webhooks,另一组用于在构建期间克隆 git 存储库。

因此我们不能使用 来GitLab API token克隆存储库。为此,您必须使用 SSH 密钥或用户名/密码组合。此外,此下拉列表是git 插件的一部分,而不是gitlab 插件的一部分。因此gitlab 插件无法判断哪些凭据可用作此下拉列表的凭据。