我正在使用gitlab CI runner来测试我的代码并生成一些文件.我只是想通过CI runner将生成的文件推送到gitlab存储库.有没有办法做到这一点?
是否有可能覆盖全球before_script使用空before_script作业中?
我正在使用Gitlab CI 8.0和gitlab-ci-multi-runner 0.6.0.我有一个.gitlab-ci.yml类似于以下的文件:
before_script:
- npm install
server_tests:
script: mocha
client_tests:
script: karma start karma.conf.js
Run Code Online (Sandbox Code Playgroud)
这有效,但这意味着在每个测试作业之前独立安装依赖项.对于具有许多依赖项的大型项目,这会增加相当大的开销.
在Jenkins中,我将使用一个作业来安装依赖项,然后对它们进行TAR,然后创建一个构建工件,然后将其复制到下游作业.类似的东西可以与Gitlab CI一起使用吗?有推荐的方法吗?
我在Windows Gitlab运行器上通过HTTP克隆大型存储库时遇到了一些麻烦.我已经尝试了几种方法来做浅克隆或禁用克隆压缩.仍然没有运气.
通过SSH克隆相同的存储库非常适合作为临时解决方案,我希望在我们的Gitlab CI过程中实现这一点.
现在问题就在于我不知道如何使用SSH作为gitlab-multi-runner的克隆方法.它似乎只是使用HTTP作为默认值,我唯一关于克隆的选项是它是完成克隆还是获取.

有人可以解释我如何通过SSH而不是HTTP来使克隆/获取工作在跑步者身上?
Gitlab版本:GitLab社区版8.10.7
谢谢!
我使用 GitLab Runner 在 AWS EC2 Spot 实例上运行 CI 作业,并使用 Docker Machine 的自动缩放功能。
突然,今天 GitLab CI 无法运行作业,并向我显示了我想要启动的所有作业的以下作业输出:
Running with gitlab-runner 14.9.1 (f188edd7)
on AWS EC2 runner ...
Preparing the "docker+machine" executor
10:05
ERROR: Preparation failed: exit status 1
Will be retried in 3s ...
ERROR: Preparation failed: exit status 1
Will be retried in 3s ...
ERROR: Preparation failed: exit status 1
Will be retried in 3s ...
ERROR: Job failed (system failure): exit status 1
Run Code Online (Sandbox Code Playgroud)
我在 AWS 控制台中看到 EC2 …
amazon-web-services docker gitlab-ci gitlab-ci-runner docker-machine
据我所知,主要区别在于gitlab-ci是opensource(你可以在自己的服务器上安装)而travis-ci则不是.
那么后者总是基于云/服务.它对于开源项目是免费的.
但是GitLab.com(公司,而不是软件)也有一个你不需要安装的云版本:ci.gitlab.com.我猜这个版本只能用于你的Gitlab帐户中发布的公共存储库.
但是,那里几乎没有关于以这种方式运行GitLab CI的文档.我找到的大多数文档都是关于安装GitLab CI服务器或跑步者.但是如何配置ci.gitlab.com的跑步者?他们有什么操作系统?我可以拥有Windows/Mac跑步者吗?(该软件显然支持这些操作系统,但未指定ci.gitlab.com服务提供的跑步者.)
我想在我的Android应用程序gradle项目中使用GitLab CI系统.项目存储库托管在GitLab.com上,所以我想使用Gitlab Inc. 提供的一个共享运行器.
虽然官方教程提供了NodeJS 项目运行器配置的示例,并且还有用于Ruby项目的共享运行器,I找不到任何支持Android应用程序的示例甚至是跑步者.
image: android:4.2.2或类似的东西)?android gitlab android-gradle-plugin gitlab-ci gitlab-ci-runner
只有在合并请求时才能从gitlab-ci运行一个工作?现在,我们有一个重型测试的大型单一项目,但我们只想在合并到分支主机之前运行测试.
与我的同事一起,我们致力于开发一个每天变得越来越重要的C++库.我们已经通过gitlab-ci.yml文件构建了持续集成实用程序,让我们:
各种让我们选择GitLab的东西!
我们希望对整个库进行概述,并将基准推送到一个单独的项目中.我们已经使用SSH密钥方法完成了类似的文档,但是这次我们想避免这种情况.
我们尝试了这样的脚本:
test_ci_push:
tags:
- linux
- shell
- light
stage: profiling
allow_failure: false
only:
- new-benchmark-stage
script:
- git clone http://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.mycompany.home/developers/benchmarks.git &> /dev/null
- cd benchmarks
- touch test.dat
- echo "This is a test" > test.dat
- git config --global user.name "${GITLAB_USER_NAME}"
- git config --global user.email "${GITLAB_USER_EMAIL}"
- git add --all
- git commit -m "GitLab Runner Push"
- git push http://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.mycompany.home/developers/benchmarks.git HEAD:master
- cd ..
Run Code Online (Sandbox Code Playgroud)
我们还尝试了一个基本 …
gitlab-ci-multi-runner register
Run Code Online (Sandbox Code Playgroud)
给我
couldn't execute POST against https://xxxx/ci/api/v1/runners/register.json:
Post https://xxxx/ci/api/v1/runners/register.json:
x509: cannot validate certificate for xxxx because it doesn't contain any IP SANs
Run Code Online (Sandbox Code Playgroud)
有没有办法禁用认证验证?
我正在使用Gitlab 8.13.1和gitlab-ci-multi-runner 1.11.2.