当我尝试安装 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)
我需要知道如何解决这个问题以及为什么会出现这个问题。
我有多种软件解决方案,其中有一些是基于 iOS 的应用程序。我正在利用这个机会并使用 Gitlab Runners / Docker 实现来查看我的 CI 脚本。我已经把大部分工作转移了,但我还是继续看我的 iOS 应用程序。有没有办法在 docker 容器中运行 xcodebuild?
谢谢
我正在尝试 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) 这以前确实有效!
我的管道中的部署步骤是通过 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) 这是我的.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) 我有一个私人 git 存储库。我的跑步者在一台单独的机器上,都是 ubuntu。当我尝试在 yml 文件中 ping $CI_REGISTRY 时,我在构建过程中看到 $CI_REGISTRY 域名未解析为正确的 IP 地址。我需要访问服务器的内部地址,而不是外部地址,因此我在运行 gitlab runner 的主机上设置了一个具有正确地址的主机文件,但执行器忽略了它。奇怪的是,它提供的地址是 cloudflare 网络上的内部地址,而不是我试图访问的主机的外部地址,就像我预期的那样,如果它正在进行 DNS 查找。
我怎样才能:
我正在尝试在 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) 我希望我的 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) 似乎 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
我在 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 上通过此测试?