gitlab-ci - tutorial - gitlab ci yml
¿Usar GitLab CI para ejecutar pruebas localmente? (2)
Si un proyecto de GitLab está configurado en GitLab CI, ¿hay alguna forma de ejecutar la compilación localmente?
No quiero convertir mi computadora portátil en un "corredor" de compilación, solo quiero aprovechar Docker y .gitlab-ci.yml
para ejecutar pruebas localmente (es decir, todo está preconfigurado). Otra ventaja de esto es que estoy seguro de que estoy usando el mismo entorno localmente y en CI.
Aquí hay un ejemplo de cómo ejecutar las construcciones de Travis localmente usando Docker , estoy buscando algo similar con GitLab.
Desde hace unos meses, esto es posible usando el gitlab-runner
:
gitlab-runner exec docker my-job-name
Tenga en cuenta que necesita que tanto la gitlab-runner
docker como el gitlab-runner
instalados en su computadora para que esto funcione.
También necesitará la clave de image
definida en su archivo .gitlab-ci.yml
. De lo contrario no funcionará.
Aquí está la línea que actualmente uso para probar localmente usando gitlab-runner
:
gitlab-runner exec docker test --docker-volumes "/home/elboletaire/.ssh/id_rsa:/root/.ssh/id_rsa:ro"
Edición: debido a la confusión, gitlab-runner --help
aquí el gitlab-runner --help
, para que pueda ver que gitlab-runner puede hacer construcciones localmente:
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
Como puede ver, el comando exec
es execute a build locally
.
Si está ejecutando Gitlab utilizando la imagen de la ventana acoplable allí: https://hub.docker.com/r/gitlab/gitlab-ce , es posible ejecutar tuberías al exponer el docker.sock
local con una opción de volumen: -v /var/run/docker.sock:/var/run/docker.sock
. Si agrega esta opción al contenedor de Gitlab, sus trabajadores podrán acceder a la instancia de la ventana acoplable en el host.