如果在GitLab CI上配置了GitLab项目,有没有办法在本地运行构建?使用GitLab CI在本地运行测试?
我不想将我的笔记本电脑变成构建“跑步者”,我只是想利用Docker和.gitlab-ci.yml
在本地运行测试(即它们都是预先配置的)。另一个优点是,我确信我在本地和CI上使用相同的环境。
以下是how to run Travis builds locally using Docker的示例,我正在寻找类似于GitLab的东西。
如果在GitLab CI上配置了GitLab项目,有没有办法在本地运行构建?使用GitLab CI在本地运行测试?
我不想将我的笔记本电脑变成构建“跑步者”,我只是想利用Docker和.gitlab-ci.yml
在本地运行测试(即它们都是预先配置的)。另一个优点是,我确信我在本地和CI上使用相同的环境。
以下是how to run Travis builds locally using Docker的示例,我正在寻找类似于GitLab的东西。
因为几个月前,这是可能使用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
。
好吧。我只是为此而使用它。顺便说一下,当我想在本地运行测试时,我一个一个地运行命令。如果我想在本地使用gitlab ci只是为了解决gitlab-ci问题。它从来不应该是在本地测试事物的方式,只是寻找gitlab-ci问题的帮手。 – elboletaire
“它永远不应该是本地测试的方式”为什么? 'gitlab-ci.yml'就像一个预配置的Docker容器。正如我在我的问题中指出,它可能与特拉维斯,它运作良好:https://github.com/jolicode/JoliCi –
恕我直言,乔利奇也应该只用于Travis问题。但是,嘿,这是MHO – elboletaire
如果您使用docker镜像运行Gitlab:https://hub.docker.com/r/gitlab/gitlab-ce,可以通过使用卷选项-v /var/run/docker.sock:/var/run/docker.sock
公开本地docker.sock
来运行管道。将此选项添加到Gitlab容器将允许您的工作人员访问主机上的docker实例。
应该在最新的devel中可用,参见[gitlab-ci-multi-runner#312](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/312) – jangorecki