标签: gitlab-ci-runner

致命:无法启动 gitlab-runner:访问被拒绝

当我尝试安装 gitlab runner 时,收到以下错误消息:

Microsoft Windows (Version 18618362778) 
(c) 2019 Microsoft Corporation. All rights reserved.

C:\gitlab runner>gitlab-runner.exe install 
Runtime platform arch=i386 windows pid-11732 revision=4c96e5ad version-12.9.6
FATAL: Failed to install gitlab-runner: Access is denied.

C:\gitlab_runner
Run Code Online (Sandbox Code Playgroud)

我需要知道如何解决这个问题以及为什么会出现这个问题。

git gitlab gitlab-ci-runner

5
推荐指数
1
解决办法
2万
查看次数

docker 容器中的 xcodebuild

我有多种软件解决方案,其中有一些是基于 iOS 的应用程序。我正在利用这个机会并使用 Gitlab Runners / Docker 实现来查看我的 CI 脚本。我已经把大部分工作转移了,但我还是继续看我的 iOS 应用程序。有没有办法在 docker 容器中运行 xcodebuild?

谢谢

xcodebuild docker gitlab-ci-runner

5
推荐指数
0
解决办法
2819
查看次数

术语“CI=false”未被识别为 cmdlet、函数、脚本文件或可操作程序的名称

我正在尝试 gitlab 的 CI/CD 并正在制作一个构建项目的 yml 文件。问题是我得到以下信息:

$ npm run build
 > myreactapp@0.1.0 build C:\GitLab-Runner\builds\QLuLhspz\0\I416547\s4-software-fun-frontend
 > react-scripts build
 Creating an optimized production build...
 Treating warnings as errors because process.env.CI = true.
 Most CI servers set it automatically.
 Failed to compile.
 ./src/Components/Task/TaskList.js
   Line 120:15:  'currentTasks' is assigned a value but never used                                 no-unused-vars
   Line 175:25:  Headings must have content and the content must be accessible by a screen reader  jsx-a11y/heading-has-content
 ./src/Components/House/House.js
   Line 150:16:  'Address' is assigned a value but never used …
Run Code Online (Sandbox Code Playgroud)

node.js npm reactjs gitlab-ci gitlab-ci-runner

5
推荐指数
1
解决办法
2万
查看次数

来自共享 Gitlab 运行程序的 SSH 停止工作

这以前确实有效!

我的管道中的部署步骤是通过 SSH 连接到 DO 框并从 Docker 注册表中提取代码。如前所述,这之前是有效的,这是我当时deploy的一步,从这里.gitlab-ci.yml得到了很好的灵感:Using SSH

deploy:
  stage: deploy
  image: docker:stable-dind
  only:
    - master
  services:
    # Specifying the DinD version here as the latest DinD version introduced a timeout bug
    # Highlighted here: https://forum.gitlab.com/t/gitlab-com-ci-stuck-on-docker-build/34401/2
    - docker:19.03.5-dind
  variables:
    DOCKER_DRIVER: overlay2
    DOCKER_TLS_CERTDIR: ""
  environment:
    name: production
  when: manual
  before_script:
    - mkdir -p ~/.ssh
    - echo "$DEPLOYMENT_SERVER_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
    - chmod 600 ~/.ssh/id_rsa
    - eval "$(ssh-agent -S)"
    - …
Run Code Online (Sandbox Code Playgroud)

ssh openssh gitlab gitlab-ci gitlab-ci-runner

5
推荐指数
1
解决办法
1647
查看次数

gitlab-runner exec with dind (docker in docker) 最小工作示例

这是我的.gitlab-ci.yml文件:

image: docker:18

varibales:
  DOCKER_DRIVER: "overlay2"
  DOCKER_HOST: tcp://docker:2375

test:
  services:
    - "docker:18-dind"
  script:
    - docker info
Run Code Online (Sandbox Code Playgroud)

我运行它:

gitlab-runner exec docker --docker-privileged --docker-pull-policy if-not-present --docker-tlsverify=false test
Run Code Online (Sandbox Code Playgroud)

它有效。


但我想使用当前的 docker 版本。所以我读了这个文档

gitlab-runner exec docker --docker-privileged --docker-pull-policy if-not-present --docker-tlsverify=false test
Run Code Online (Sandbox Code Playgroud)

我用与上面相同的方式运行它:

gitlab-runner exec docker --docker-privileged --docker-pull-policy if-not-present --docker-tlsverify=false test
Run Code Online (Sandbox Code Playgroud)

不幸的是,这以错误结束:

错误:无法连接到位于 tcp://docker:2375 的 Docker 守护进程。docker 守护进程是否正在运行?

我已经看到这个问题和许多其他问题。但我找不到一个可以gitlab-runner exec docker在每个 UNIX 系统上使用docker:19的最小工作示例docker:19-dind

编辑:
gitlab-runner --version(来自 Manajaro 仓库):

Version:      13.0.0
Git revision: HEAD
Git …
Run Code Online (Sandbox Code Playgroud)

docker gitlab-ci gitlab-ci-runner docker-in-docker

5
推荐指数
0
解决办法
684
查看次数

Gitlab 运行程序、私有存储库、docker 执行程序不使用主机的主机文件

我有一个私人 git 存储库。我的跑步者在一台单独的机器上,都是 ubuntu。当我尝试在 yml 文件中 ping $CI_REGISTRY 时,我在构建过程中看到 $CI_REGISTRY 域名未解析为正确的 IP 地址。我需要访问服务器的内部地址,而不是外部地址,因此我在运行 gitlab runner 的主机上设置了一个具有正确地址的主机文件,但执行器忽略了它。奇怪的是,它提供的地址是 cloudflare 网络上的内部地址,而不是我试图访问的主机的外部地址,就像我预期的那样,如果它正在进行 DNS 查找。

我怎样才能:

  • 强制docker执行器使用主机的hosts文件
  • 传入执行程序可以用来正确解析地址的环境变量(或其他变量)

docker gitlab-ci gitlab-ci-runner

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

如何从 Gitlab-CI 运行 Ansible-Playbook?

我正在尝试在 Gitlab-ci 中创建一个管道来运行 ansible-playbook。这是我的 .gitlab-ci.yml 文件:

    image: "my_ansible_image"
    
    before_script:
        - eval $(ssh-agent -s)
        - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
        - mkdir -p ~/.ssh
        - chmod 700 ~/.ssh    
    
    build:
        script:
          - ansible-playbook -i inventory -u root --private-key "$SSH_PRIVATE_KEY" playbook.yml -vv
Run Code Online (Sandbox Code Playgroud)

该剧本尝试执行一个简单的 ping 模块:

---
   - name: Ping test ## name of the first task
     ping:  ##ping is a special case that do not requieres any attributs
Run Code Online (Sandbox Code Playgroud)

由于某种原因,ssh 连接总是失败,并出现以下错误:

$ ansible-playbook -i inventory -u root --private-key /builds/my_name/rhe7_set-up-rpm/private_key playbook.yml …
Run Code Online (Sandbox Code Playgroud)

ansible gitlab-ci gitlab-ci-runner

5
推荐指数
1
解决办法
2万
查看次数

基于正则表达式的规则子句在 GitLab CI 中不起作用

我希望我的 Gitlab CI 作业在提交消息以特定字符串开头时不运行:[maven-scm]

因此,我的.gitlab-ci.yaml文件中有以下配置:

image: maven:3.6.3-jdk-11-slim

stages:
  - test

test:
  stage: test
  cache:
    key: all
    paths:
      - ./.m2/repository
  script:
    - mvn clean checkstyle:check test spotbugs:check
  rules:
    - if: '$CI_COMMIT_MESSAGE !~ /^\[maven-scm\] .*$/'
Run Code Online (Sandbox Code Playgroud)

我的提交消息是:[maven-scm] I hope the test job does not run

但测试工作仍然让我感到沮丧。我查看了 GitLab 文档中的规则,但找不到该作业仍然运行的原因。我不确定我是否遗漏了一些东西。

如果有人能指出我正确的方向,那就太好了。

更新:

我尝试了 only/ except 子句而不是规则。我将 yaml 文件修改为以下内容:

image: maven:3.6.3-jdk-11-slim

stages:
  - test

test:
  stage: test
  cache:
    key: all
    paths:
      - ./.m2/repository
  script:
    - mvn clean checkstyle:check test spotbugs:check …
Run Code Online (Sandbox Code Playgroud)

continuous-integration gitlab gitlab-ci gitlab-ci-runner

5
推荐指数
1
解决办法
5305
查看次数

.gradle:gitlab CI 中的目录不为空

似乎 gradle 恶魔不允许在顺序构建之前清除 .gradle 文件夹,从而出现以下错误。

如何确保 gradle 恶魔不会锁定 .gradle 目录并且可以将其删除?

Running with gitlab-runner 12.2.0 (a987417a)
  on xe runner eRm5EUTW
Using Shell executor...
00:00
Running on DEMU-MAC01-2.local...
00:02
rm: /Users/xx/workspace/builds/eRm5EUTW/0/xx/xx/.gradle: Directory not empty
00:25
rm: /Users/xx/workspace/builds/eRm5EUTW/0/xx/xx: Directory not empty
ERROR: Job failed: exit status 1
Run Code Online (Sandbox Code Playgroud)

continuous-integration android gradle gitlab-ci gitlab-ci-runner

5
推荐指数
0
解决办法
399
查看次数

gitlab-ci.yml:“脚本:-pytest”命令无法识别

我在 Windows 上实现在 .gitlab-ci.yml 中运行 pytest 的示例程序时遇到问题:

使用 Shell 执行器...

请找到下面的.gitlab-ci.yml:

# .gitlab-ci.yml

test_sample:
  stage: test
  tags: 
    - test_sam
  script:
    - echo "Testing"
    - pytest -s Target\tests 
  when: manual
Run Code Online (Sandbox Code Playgroud)

CI/CD端子输出:

pytest is not recognized as the name of a cmdlet, function, script file, or operable program.
Run Code Online (Sandbox Code Playgroud)

运行测试的Windows操作系统上已经安装了Python和pytest,但测试仍然失败。我已经尝试了下面线程中建议的解决方案,但它不起作用: gitlab-ci.yml: 'script: -pytest 找不到任何要检查的测试'

您能否建议如何在 Windows 上通过此测试?

python pytest gitlab gitlab-ci gitlab-ci-runner

5
推荐指数
1
解决办法
7020
查看次数