问题标签 [gitlab-ci-runner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2131 浏览

linux - 将 gitlab-ci(或任何 CI)与 kubernetes 或 google 容器引擎一起使用(gitlab-runner 不会找到 kubectl)

我想使用 gitlab-ci (或任何其他 CI,任何工作)部署到谷歌容器引擎使用kubectl run

我在谷歌计算引擎上有一个工作的 gitlab 运行器,但无法弄清楚如何安装gcloudkubectl因此运行器在其路径中具有其可执行文件和配置。

运行pwdgitlab ci 文件显示/home/gitlab-runner并运行whoami显示 root,所以我以用户gitlab-runner和用户身份安装 kubectlroot但 gitlab-ci-multirunner 仍然抱怨

对于kubectl. 我可能对 gitlab-runner 如何生成构建有一个有缺陷的理解,但它可以访问docker安装,那么我如何让它访问 gcloud / kubectl 安装?

是否有更直接的版本可以部署到 kubernetes / google 容器引擎?

非常感谢!

0 投票
0 回答
48 浏览

gitlab-ci-runner - 阻止 GitLab.com 共享运行器启动默认服务 mysql、postgres、redis

(诚​​然,这并不重要。)

我正在使用 GitLab.com CI 的共享运行器来运行我的 CI 构建。他们似乎总是启动 mysql、postgres 和 redis 服务,即使我有这条线

在我的.gitlab-ci.yml档案中。

有没有办法阻止共享的跑步者启动这些服务?诚然,除了占用资源并在构建日志中产生几行噪音之外,它们并没有受到伤害。

0 投票
1 回答
243 浏览

gitlab - 没有可路由 IP 的 Gitlab CI Runner

我想在我的工作流程中使用 Gitlab CI,但是因为我的项目依赖于许可软件,所以我需要它在我的机器上运行,它没有公共的、可路由的 IP。我的想法是我可以在 heroku 上创建一个简单的服务器来接受 webhook 并将请求放入消息队列(例如 redis DB),我的本地机器可以轮询并实际运行 CI 作业。然而,看起来整个 Gitlab CI 系统是假设 gitlab.com 服务器可以直接与跑步者对话的情况下编写的。有人知道通过 webhook 代理 CI 构建触发器或使 gitlab-runner 拉构建作业而不是接受推送事件的概念证明吗?如有必要,我可以滚动我自己的跑步者来轮询构建事件并运行我需要的命令,但使用现有的真的很好,记录基础设施/文件格式,而不是重新发明轮子。感谢您的任何建议。

0 投票
1 回答
1608 浏览

gitlab - Gitlab CI: running the same set of tests on several machines

In high performance computing is crucial to have a code tested against many different architectures/compilers: from a laptop to a supercomputer.

Assuming that we have

  • N testing machines/workers (each one running gitlab-ci-runner);
  • M tests,

what shall be the correct layout of .gitlab-ci.yml to ensure that each of the N machines runs all the tests?

Looks to me that adding just more workers ends up in a round-robin like assignment of the jobs.

Thanks for your help.

0 投票
1 回答
905 浏览

php - How use my docker-compose configuration with gitlab CI

I have a project on gitlab, and I would use gitlab CI for unit testing. Actually, I have a other repository name "docker" with docker-compose.yml and Dockerfile for two project (because i reproduce the production configuration, the two project are interdependant)

Actually in my dev configuration

in Projects directory:

  • docker
  • project_1
  • project_2

in docker directory:

  • docker-compose.yml
  • Dockerfile-project1
  • Dockerfile-project2
  • [some config file ask in dockerFile]

docker-compose.yml have relative path as ../project_1 and ../project_2

For set up my configuration, I make :

  • cd docker
  • docker-compose up -d project1 (name in docker-compose.yml)
  • docker exec -ti project1 bash

Question ? I want know how I can pull the git repository "docker" and launch docker-compose up for the project1 since gitlab CI start ?

Thanks

0 投票
1 回答
147 浏览

gitlab-ci - gitlab-ci-runner 的结果是什么,上传了什么?

我正在为 gitlab-ci 设置做准备,但我遇到了 2 个无法找到答案的问题:

1) 如果 Windows 上不支持工件(使用 shell 执行器),构建脚本完成后会上传什么?

2)artifacts 是告诉跑步者应该上传什么的正确方法吗?或者只是告诉跑步者一些生成的垃圾可能很有趣,所以在真实结果旁边上传它会很好吗?

0 投票
2 回答
9402 浏览

git - 在 gitlab-ci 中是否可以将另一个分支构建到另一个目录?

我想用一个gitlab-runner来制作两个相似但不完全相同的版本。

git存储库中,我有几个分支:prod、test、dev。是否可以只使用一个跑步者在不同的路径上构建?

例如:

  • /home/gitlab-runner/builds/860ee11a/0/projectname- 产品
  • /home/gitlab-runner/builds/860ee11a/1/projectname- 测试
  • /home/gitlab-runner/builds/860ee11a/2/projectname- 开发

如果是这样,你是怎么做到的?

0 投票
3 回答
5505 浏览

android - 适用于 Android 项目的 GitLab.com CI 共享运行器

我想将 GitLab CI 系统用于我的 Android 应用程序 gradle 项目。项目存储库托管在GitLab.com上,因此我想使用 Gitlab Inc. 提供的共享运行器之一。
虽然官方教程提供了 NodeJS 项目运行器配置的示例,并且还有用于 Ruby 项目的共享运行器,但我找不到任何示例,甚至找不到支持 Android 应用程序的运行器。

  • 是否有GitLab.com 提供的共享运行器,它支持开箱即用的 Android 项目(通过指定image: android:4.2.2或类似的方式)?
  • 有没有办法配置GitLab.com 提供的现有共享运行器以支持 Android 项目(通过修改.gitlab-ci.yml文件)?
0 投票
1 回答
358 浏览

gitlab-ci - 如果 npm 发布失败,Gitlab-ci-multi-runner 将继续

我使用 gitlab-ci-multi-runner 将我们的工件发布到我们自己的 npm 注册表。这是 .gitlab-ci.yml 文件:

有时 npm 发布会失败。这是输出:

我希望 gitlab-ci-multi-runner 因为作业失败而停止。但事实并非如此!它报告构建成功。

如果 npm publish 失败,任何人都知道如何使构建失败?

0 投票
4 回答
14786 浏览

docker - Gitlab CI 运行器配置与 docker 上的缓存

我似乎无法在 gitlab CI 的作业之间获取缓存或工件。我怀疑这与我的配置有关,但我不确定是什么。我正在使用以下 docker-compose 配置在 docker 中运行 gitlab 和 gitlab-ci-multirunner。为简洁起见,我省略了数据库配置和一些环境变量:

运行器配置 ( config.toml) 为:

docker-bash所指的图像只是安装了 bash的官方docker:1.10图像。

我的构建过程包括 3 个步骤:

  1. npm install在官方node:5镜像中运行和测试。现在,为了测试部署,我已经离开了这一步。
  2. 构建一个包含代码的 docker 镜像
  3. 使用 ansible,通过自定义构建的 ansible docker 镜像将构建的镜像部署到生产服务器。

.gitlab-ci.yml文件如下所示:

如您所见,压缩后的 docker 映像在此处在缓存和工件部分中都被引用,但在部署步骤中实际上不可用,其中 ansible 应该将其复制到远程计算机。我试过包含一个ls命令,所以检查文件夹内容,文件显然不存在,但它肯定是构建的,我可以从 gitlab UI 下载它。这是部署作业的日志:

我怀疑我没有正确设置或使用跑步者,但是除了非常简单的案例之外,我在文档中找不到太多东西,而且我对该工具的了解还不够,无法知道它是如何在引擎盖下组合在一起的.