问题标签 [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 投票
1 回答
2061 浏览

gitlab - 如何使用 GitLab CI 保护生产部署凭据?

我目前正在 GitLab 中使用受保护的生产分支设置开发工作流程,希望使用 GitLab CI 来处理构建和部署步骤。

如何保护我的生产 SSL 凭证免受项目中其他开发人员的侵害?我意识到 GitLab CI 有秘密变量,但似乎没有办法阻止开发人员在项目的另一个分支上使用测试构建转储这些变量。

我错过了什么,还是有不同的方法来锁定对生产服务器的访问?

0 投票
1 回答
1026 浏览

ruby-on-rails - 通过 gitlab ci / docker 运行构建

我已成功安装Gitlab CI并将其与我的gitlab. 我还使用docker带有服务的ruby-2.2图像配置了共享运行器mysql

以下是我通过引用https://about.gitlab.com/2015/04/17/unofficial-gitlab-ci-runner/来配置跑步者的内容:

我有一个示例 Ruby/Rails 应用程序,由于某种原因,运行器没有运行构建。这是我的.gitlab-ci.yml

0 投票
1 回答
2161 浏览

windows - Qt/OpenGL: drawing into non-exposed windows

I am using gitlab-ci-runner to automatically test a desktop Qt/OpenGL application on every commit. On Windows 8, the application is executed by a system service installed with gitlab-ci-runner, hence it is run "hidden", i.e. on no visible desktop. All the UI modules initialize and run anyway, except the OpenGL module, which never gets an "expose" event; if I try to draw into the OpenGL context without the window being exposed I get the error:

I have found out that it is rather difficult and not recommended to execute a Windows GUI application from a service on a running desktop session (see How can a Windows service execute a GUI application?).

Now, I don't need the user to see the application, I just need the OpenGL part to work correctly. Is there a way I can "pretend" to expose a window somehow, or is there any other way to get this to run correctly from a system service?

0 投票
2 回答
1316 浏览

php - 在 PHPUnit 的代码覆盖输出中禁用颜色

我想对我的一个小 PHP 项目进行自动化测试,到目前为止它运行良好,我唯一无法开始工作的是代码覆盖率报告。

在 Gitlab-Ci 中有一个选项Test coverage parsing,它接受一个正则表达式。到目前为止一切顺利,我在http://jarretbyrne.com/2015/04/gitlab-ci-phpunit-test-coverage-parsing/找到了一个正则表达式:^\s*Lines:\s*\d+.\d+\%

但正如评论所说:它不适用于启用颜色。 PHPUnit有命令行开关--colors-[always|never|auto],但此选项仅适用于正常输出。

如何关闭颜色--coverage-text?我可以使用另一个正则表达式吗?

编辑:

https://github.com/sebastianbergmann/phpunit/issues/1771上有一个未解决的问题

0 投票
2 回答
2868 浏览

git - 只有一个 GitLab CI Runner 构建

我最近安装了 GitLab 并尝试使用 GitLab CI。我在我的 GitLab 服务器中成功启用了 GitLab CI,并成功安装了 CI Runner(在 Windows 上,如果相关)。我为 Windows CI Runner 启用了一个项目,当我提交到存储库时,运行器被执行,我可以看到构建。

我按照文档安装了第二个 CI Runner(在 Debian 上)。我可以看到 Debian CI Runner 以及 Windows CI Runner 已注册。Debian CI Runner 分配了相同的项目。但是,当我提交到存储库时,只执行了 Windows CI Runner,而 Debian CI Runner 并没有尝试构建。

我犯了什么错误或者有什么额外的配置可以实现这个?我已经尝试重新注册 Debian CI Runner,但没有成功。


更新 1: Debian CI Runner 现在正在执行,但 Windows CI Runner 没有。似乎只选择了一个跑步者。

更新 2:升级到“GitLab CI 7.14.1 2dee1b3”,但相同的行为仍然存在。

更新 3:在 Scientific Linux 机器上添加了第三个运行器。它已注册并分配给项目,但只有一个运行器执行(当前是 Debian CI 运行器)。


GitLab CI 7.12.0 e96755c

0 投票
1 回答
1795 浏览

gitlab - 测试项目部署 ci-runner

下午好

我最近开始与 gitlab 合作,试图弄清楚它是否符合我们在 UX 管理团队中的需求。

我在我们的云上创建了 3 台服务器进行测试,如下所示:

  • Server_1 Gitlab 和 Gitlab-CI

  • Server_2 Gitlab 跑步者

  • Server_3 脚本存储库

想法是将以前的脚本存储库推送到 Gitlab,然后控制对它们所做的任何更改和安全问题。

我在服务器 1 上安装了 Gitlab-Omnibus 并使用他的项目 Testproject1 创建了用户“test1”,之后我将一些测试脚本推送到项目中。在此之后,我在 Server_2 上安装了运行器并针对 Gitlab 进行配置,创建了一个运行器,注册它并针对 Server3 配置了 ssh 密钥

这里的问题如下,用户 test1 对 Gitlab 的 Testproject1 上的任何脚本所做的任何更改都会触发运行器构建并将整个项目推送到 /home/user/build/"number"/number/Testproject1/ 执行这些的脚本操作位于该位置,名称为“Testproject1.sh”,其中包含如下代码:

..... 等等。

我们不希望将存储库部署在用户家中,我认为使用所需的部署路径和命令配置文件“.gitlab-ci.yml”就足够了,但我唯一实现的就是存储库是每次都部署在用户家中和 .yml 文件中所述的路径上。

任何人都知道如何修改这种行为?是否有任何环境变量或任何可以解决此问题的东西?还是我使用了错误的 CI 功能?

顺便说一下,跑步者的 yml 文件如下:

提前致谢

0 投票
1 回答
1579 浏览

gitlab-ci - 如何创建 2 个在不同平台上运行的作业?

我正在使用 Gitlab-ci-multi-runner,使用 OSX 机器(bash shell)和 Windows 7 机器(批处理命令)。每当我推动时,我都希望它在两个跑步者上构建和测试。但显然,每个平台的命令需要略有不同。我不想使用 docker。

我一直在查看http://doc.gitlab.com/ci/yaml/README.html但似乎没有关于舞台特定跑步者耦合的任何内容。

0 投票
1 回答
637 浏览

apache - 在 apache 代理后面运行 gitlabci

我的内部网络上有一个运行新版本 Gitlab 版本 8 的 ubuntu 14.04 虚拟机。为了访问我的 gitlab 实例,我有另一个带有 apache 的 ubuntu 虚拟机,它的服务几乎就像一个路由器。所有请求都转到此 VM,然后我使用 m_proxy 根据主机名将连接传递到正确的内部 ip。Gitlab 本身运行良好。我能够完成所有的推拉,一切都很顺利,但是我在配置新版本的 CI 时遇到了一些问题。我按照这里的指示https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/install/linux-repository.md 我安装了跑步者,但我似乎无法注册它。我为 gitlabci 设置了一个新主机名,它指向与主 gitlab 实例相同的服务器。然后我将该网址放入ci_external_url此处指定的选项中https://gitlab.com/gitlab-org/omnibus-gitlab/tree/master/doc/gitlab-ci

我在我的 apache 实例上创建了一个新的虚拟主机,它看起来像这样

我从代码中省略了域名和内部 IPS,但这就是 vhost 的主旨。

当尝试注册跑步者时,我输入了 gitlabci 实例的 url,然后我传递了 gitlab 给我的令牌和描述,然后它说它无法注册跑步者,也许我遇到了网络问题。

我觉得好像有一个我不知道的端口,而不是我列出的那些我需要监听的端口,但我找不到太多关于它的文档。我将不胜感激有人可以提供的任何帮助。谢谢你。

0 投票
1 回答
1356 浏览

gitlab - Gitlab multi-runner 在更新 8.0 后无法获取 git 存储库

我已将 Gitlab 更新到 8.0 版本。还将 CI 集成到 Gitlab 中。但是现在当 CI 运行器尝试获取 git 存储库时,它会得到空存储库。已弃用的跑步者(我以前使用过)和新的跑步者都发生了错误gitlab-ci-multi-runner

我有错误

两个版本的错误相同。

我检查了什么是 git 远程路径。当我试图将它克隆到我的电脑时,我收到警告说这个存储库是空的,它只创建了.git目录。

0 投票
1 回答
10346 浏览

docker - gitlab-ci-runner 选择执行者“请输入执行者:”

我已经gitlab-ci-multi-runner在 docker 的容器中运行了。

当我gitlab-ci-multi-runner register在容器中执行时,它会询问

请输入执行者:docker...?

如果我选择docker,是否意味着 docker 容器将在当前容器上运行?

对不起我的英语不好:)