2015-10-04 134 views
24

如果在GitLab CI上配置了GitLab项目,有没有办法在本地运行构建?使用GitLab CI在本地运行测试?

我不想将我的笔记本电脑变成构建“跑步者”,我只是想利用Docker和.gitlab-ci.yml在本地运行测试(即它们都是预先配置的)。另一个优点是,我确信我在本地和CI上使用相同的环境。

以下是how to run Travis builds locally using Docker的示例,我正在寻找类似于GitLab的东西。

+3

应该在最新的devel中可用,参见[gitlab-ci-multi-runner#312](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/312) – jangorecki

回答

16

因为几个月前,这是可能使用gitlab-ci-multi-runner

gitlab-runner exec docker my-job-name 

请注意,您需要在计算机上安装两个码头工人和gitlab-ci-multi-runner得到这个工作。

您还需要在.gitlab-ci.yml文件中定义的image密钥。否则将无法正常工作。

这里的本地使用gitlab-runner我目前使用的测试线:

gitlab-runner exec docker test --docker-volumes "/home/elboletaire/.ssh/id_rsa:/root/.ssh/id_rsa:ro" 

编辑:由于混乱,我贴在这里gitlab-runner --help结果,所以你可以看到,gitlab亚军可以建立本地:

gitlab-runner --help 
NAME: 
    gitlab-runner - a GitLab Runner 

USAGE: 
    gitlab-runner [global options] command [command options] [arguments...] 

VERSION: 
    1.1.0~beta.135.g24365ee (24365ee) 

AUTHOR(S): 
    Kamil Trzciński <[email protected]> 

COMMANDS: 
    exec   execute a build locally 
    list   List all configured runners 
    run   run multi runner service 
    register  register a new runner 
    install  install service 
    uninstall  uninstall service 
    start  start service 
    stop   stop service 
    restart  restart service 
    status  get status of a service 
    run-single  start single runner 
    unregister  unregister specific runner 
    verify  verify all registered runners 
    artifacts-downloader download and extract build artifacts (internal) 
    artifacts-uploader create and upload build artifacts (internal) 
    cache-archiver create and upload cache artifacts (internal) 
    cache-extractor download and extract cache artifacts (internal) 
    help, h  Shows a list of commands or help for one command 

GLOBAL OPTIONS: 
    --debug   debug mode [$DEBUG] 
    --log-level, -l "info" Log level (options: debug, info, warn, error, fatal, panic) 
    --cpuprofile   write cpu profile to file [$CPU_PROFILE] 
    --help, -h   show help 
    --version, -v  print the version 

正如你所看到的,exec命令是execute a build locally

+0

好吧。我只是为此而使用它。顺便说一下,当我想在本地运行测试时,我一个一个地运行命令。如果我想在本地使用gitlab ci只是为了解决gitlab-ci问题。它从来不应该是在本地测试事物的方式,只是寻找gitlab-ci问题的帮手。 – elboletaire

+0

“它永远不应该是本地测试的方式”为什么? 'gitlab-ci.yml'就像一个预配置的Docker容器。正如我在我的问题中指出,它可能与特拉维斯,它运作良好:https://github.com/jolicode/JoliCi –

+0

恕我直言,乔利奇也应该只用于Travis问题。但是,嘿,这是MHO – elboletaire

0

如果您使用docker镜像运行Gitlab:https://hub.docker.com/r/gitlab/gitlab-ce,可以通过使用卷选项-v /var/run/docker.sock:/var/run/docker.sock公开本地docker.sock来运行管道。将此选项添加到Gitlab容器将允许您的工作人员访问主机上的docker实例。

相关问题