首页 文章

使用GitLab CI在本地运行测试?

提问于
浏览
31

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

我不想把我的笔记本电脑变成一个构建"runner",我只是想利用Docker和 .gitlab-ci.yml 在本地运行测试(即's all pre-configured). Another advantage of that is that I'确定我在本地和CI上使用相同的环境 .

这是一个how to run Travis builds locally using Docker的例子,我正在寻找与GitLab类似的东西 .

2 回答

  • 2

    几个月前,这可以使用 gitlab-runner

    gitlab-runner exec docker my-job-name
    

    请注意,您需要在计算机上安装dockergitlab-runner才能使其正常工作 .

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

    这是我目前用于使用_580108进行本地测试的行:

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

    编辑:您可以避免在/etc/gitlab-runner/config.toml中默认使用密钥设置添加--docker-volumes . 有关详细信息,请参阅官方文档 .

    由于评论中的混淆,我在这里粘贴了 gitlab-runner --help 结果,因此您可以看到gitlab-runner可以在本地进行构建:

    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 <ayufan@ayufan.eu> 
    
    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 .

    请注意,此过程是使用您自己的计算机使用docker容器运行测试 . 这不是定义自定义运行器 . 为此,只需转到您的repo的CI / CD设置并阅读其中的文档 . 如果您想确保您的跑步者被执行而不是gitlab.com中的跑步者,请向跑步者添加自定义且唯一的标签,确保它只运行已标记的作业并标记您希望跑步者负责的所有作业 .

  • 30

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

相关问题