标签: gitlab-ci-runner

Gitlab 运行程序在完成之前先开始另一项工作

我为单个项目配置了一个 gitlab 运行程序。我看到的问题是,跑步者不会等到前一个作业完成,而是在与前一个作业相同的目录中进行签出,并踩踏所有内容。我已经运行了一项工作,然后另一项开发提交,从而开始了另一项工作。为什么我不能将管道配置为不运行,以免损坏已运行的工作区?

这是两个作业的日志(唯一的区别是时间戳)

[0K] Running with gitlab-runner 12.6.0 (ac8e767a)
[0K]  on gitlab.xxxx.com rz8RmGp4
[0K] section_start:1578357551:prepare_executor
[0K] Using Docker executor with image my-image-build ...
[0K] Using locally found image version due to if-not-present pull policy
[0K] Using docker image sha256:xxxxxxxxxx for my-image-build ...
[0;msection_end:1578357553:prepare_executor
[0Ksection_start:1578357553:prepare_script
[0K] Running on runner-rz8RmGp4-project-23-concurrent-0 via gitlab.xxxx.com...
section_end:1578357554:prepare_script
[0K] section_start:1578357554:get_sources
[0K[32;1mFetching changes with git depth set to 50...[0;m
Initialized empty Git repository in /builds/my-project/.git/
<proceeds to checkout and stomp over the already running runner>
Run Code Online (Sandbox Code Playgroud)

我看到的主要问题是它们都签出到Initialized …

gitlab gitlab-ci gitlab-ci-runner

3
推荐指数
1
解决办法
6271
查看次数

gitlab中如何在一台机器上并行运行多个管道?

我有一台机器,我希望多个管道在该机器上并行运行。

我怎么做?

gitlab gitlab-ci gitlab-ci-runner

3
推荐指数
1
解决办法
3486
查看次数

设置gitlab-runner在git推送后自动运行?

当我 git Push 时,我必须转到配置了 gitlab-runner 的服务器,并在终端中输入“sudo gitlab-runner run”或“gitlab-runner run”。然后管道就会启动。而且我必须始终处于运行时平台中。这违背了管道的要点。

它曾经工作过,所以当我 git Push 时,管道会自动启动,我根本不需要输入命令。那么有没有办法设置呢?

gitlab gitlab-ci gitlab-ci-runner

3
推荐指数
1
解决办法
4673
查看次数

GitLab 运行器 kubernetes 执行器需要哪些 kubernetes 权限?

我已在命名空间下的 kubernetes 集群上安装了 GitLab 运行程序gitlab-runner。像这样

# cat <<EOF | kubectl create -f -
{
  "apiVersion": "v1",
  "kind": "Namespace",
  "metadata": {
    "name": "gitlab-runner",
    "labels": {
      "name": "gitlab-runner"
    }
  }
}

# helm repo add gitlab https://charts.gitlab.io
# cat <<EOF|helm install --namespace gitlab-runner gitlab-runner -f - gitlab/gitlab-runner
gitlabUrl: https://gitlab.mycompany.com
runnerRegistrationToken: "c................Z"
Run Code Online (Sandbox Code Playgroud)

GitLab 运行程序已正确注册到 GitLab 项目,但所有作业都会失败。

快速查看 GitLab 运行程序日志告诉我,GitLab 运行程序使用的服务帐户缺乏适当的权限:

# kubectl logs --namespace gitlabrunner gitlab-runner-gitlab-runner-xxxxxxxxx
ERROR: Job failed (system failure): pods is forbidden: User "system:serviceaccount:gitlabrunner:default" cannot create resource "pods" in …
Run Code Online (Sandbox Code Playgroud)

gitlab-ci kubernetes gitlab-ci-runner

3
推荐指数
1
解决办法
7876
查看次数

GitLab 中的 Merge Train 和 Merge Result 有什么区别

我们刚刚从单一管道设置转向 Gitlab 的合并列车管道设置,这对于初学者来说非常令人困惑。

有人可以帮我理解 GitLab 中 Merge Train 和 Merge Result 之间的区别吗?

谢谢

git gitlab gitlab-ci-runner

3
推荐指数
1
解决办法
6676
查看次数

Gitlab Runner注册返回(401 Unauthorized)

我们已经在 Redhat 服务器上安装了 gitlab runner,但我们无法在 gitlab 实例中注册它,因为它受到保护(我们需要在显示 HTTPS 之前登录)。

当我们克隆项目存储库时:

git clone https://domain\.com/project.git
Run Code Online (Sandbox Code Playgroud)

它要求输入用户名和密码,以及我们是否将凭据存储在文件或缓存中,例如

git config --global credential.helper 'store --file ~/.my-credentials'
Run Code Online (Sandbox Code Playgroud)

仅当 cloning => my-credentials 将包含原始用户名/密码时,它才会第一次要求身份验证,但它解决了每次都要求身份验证的问题。

我们如何对跑步者做同样的事情,以便将其注册到我们的 gitlab :当我们跑步时

gitlab-runner register --url http://domain\.com/gitlab/ -r 1TqfdYFsJsdsdLNc-7J
Run Code Online (Sandbox Code Playgroud)

在没有询问我们用户名/密码的情况下,我们立即收到以下错误:

ERROR: Registering runner... failed                 runner=1TqfdYFs status=401 Unauthorized
PANIC: Failed to register the runner. You may be having network problems.
Run Code Online (Sandbox Code Playgroud)

我们知道,由于需要身份验证,运行程序无法访问我们的 gitlab,但我们不知道如何解决它,我们尝试了很多方法,例如将凭据保存在 git 缓存中,但似乎它们没有连接或使用相同的东西。

有什么想法吗?

https gitlab gitlab-ci gitlab-ci-runner devops

3
推荐指数
1
解决办法
5657
查看次数

“gitlab-runner”不被识别为内部或外部命令,

我使用的是 Windows 10 并使用Gitlab 的 doc安装了 gitlab-runner 。

成功安装和注册后,我尝试离开用于安装的文件夹(C:\Gitlab-Runner在我的实例中)并尝试运行gitlab-runner。我得到回应:'gitlab-runner' is not recognized as an internal or external command, operable program or batch file.

我可以在C:\Gitlab-Runner文件夹中毫无问题地运行,但在其他地方都无法运行。

根据我查看的文档和教程,我不希望出现这种行为;我应该这样做吗?

gitlab-ci-runner

3
推荐指数
1
解决办法
4472
查看次数

GitLab CI/CD 工件排除不起作用

我的 .gitlab-ci.yml 文件的工件部分是:

  script:
    - echo "creating artifact"    
  artifacts:
    name: "<name of my project>"
    paths:
      - $CI_PROJECT_DIR
    exclude:
      - $CI_PROJECT_DIR/deploy/*
      - $CI_PROJECT_DIR/git/*
Run Code Online (Sandbox Code Playgroud)

但是,我想要排除的文件仍然包括在内;当我从 git 下载工件时,部署文件夹和 .git 文件夹及其内容都存在。尽管 git 被排除在外,但在运行管道的工件阶段时,我也会收到此警告:WARNING: Part of .git directory is on the list of files to archive 。我尝试将其从 更改$CI_PROJECT_DIR/git/*$CI_PROJECT_DIR/.git/*,但这会使工件变得更大(太大以至于管道失败并且我无法下载工件)。

我还尝试从文件路径中删除 /* 并将其更改为 /**/*,但都没有解决问题。一个非常奇怪的事情是,有时伪影随着第一条路径的结束而变小,有时当它被删除时它会更小。

我该如何解决这个问题,以便排除正确的文件并且工件不那么大?或者我还能做些什么来使工件变小吗?

artifact gitlab gitlab-ci gitlab-ci-runner

3
推荐指数
1
解决办法
5907
查看次数

GitLab。使用 gitlab-ci-token 和 $CI_BUILD_TOKEN $CI_REGISTRY 导致错误

我使用 gitlab.com 已经大约一年了。我没有做任何更改,但我开始收到这样的错误:

Error response from daemon: Get "https://registry-1.docker.io/v2/": unauthorized: incorrect username or password
Run Code Online (Sandbox Code Playgroud)

我使用的命令:

 - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
Run Code Online (Sandbox Code Playgroud)

我该如何修复它?

gitlab docker gitlab-ci gitlab-ci-runner

3
推荐指数
1
解决办法
760
查看次数

在gitlab管线中使用semver或时间戳

我正在使用GitLab管道,并在.gitlab-ci.yml文件中定义了我的构建定义。

我正在用它来构建docker容器。

简单的问题。有没有一种方法可以用gitlab中的semver或时间戳标记我的docker容器。

内置变量似乎并没有给我太多帮助。

在Windows上,我以前可以GitVersion在Powershell中使用它来获取semver标签并将其放入一个变量中,以便在其余的构建过程中使用。

如果无法执行此操作,是否可以从操作系统获取时间戳并将其用于yml文件?

semantic-versioning gitlab gitlab-ci gitlab-ci-runner

2
推荐指数
2
解决办法
2634
查看次数