Présentation
gitlab-ci-local est un outil permettant de lancer le fichier .gitlab-ci.yml
d’un projet sans dĂ©pendre ni d’un gitlab-runner ni de Gitlab lui-mĂŞme.
En somme : on développe sur notre machine et on teste sur notre machine !
Pré-requis
- docker lancé avec une interface sur
tcp://0.0.0.0:2376
Configurer Docker sous ArchLinux
sudo systemctl edit docker.service
On remplit avec :
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2376
Cela permet Ă la fois d’utiliser le socket sur notre machine et donner accès via TCP.
Installation
Sous ArchLinux
Disponible dans les dépôts AUR :
yay -S gitlab-ci-local
Configuration
Globale
Il s’agit de crĂ©er et remplir le fichier $HOME/.gitlab-ci-local/.env avec les options que vous souhaitez avoir continuellement :
# Overrides .gitlab-ci.yml as the default git ci/cd file
FILE=.gitlab-ci.yml # --file
# Always runs needed jobs, when gitlab-ci-local <job-name> is called
NEEDS=true # --needs
Ceci Ă©vite de chaque fois devoir entre les options --file
et --needs
.
Modifiez avec vos préférences.
Pour chaque dépôt
De temps en temps, dans un dĂ©pĂ´t, vous aurez besoin de personnaliser certains Ă©lĂ©ments. Notamment certaines variables d’environnement nĂ©cessaires pour le bon dĂ©roulement de votre pipeline. Par exemple CI_REGISTRY_USER, CI_REGISTRY_PASSWORD ou encore CI_REGISTRY.
Pour cela, c’est le fichier .gitlab-ci-local-variables.yml
dont vous aurez besoin. Au sein mĂŞme de votre projet.
Voici un exemple de contenu :
---
# Will be type File, because value is a file path
KNOWN_HOSTS: '~/.ssh/known_hosts'
CI_REGISTRY_USER: your_pseudo
CI_REGISTRY_PASSWORD: glpat-your_personnal_access_token
CI_REGISTRY: registry.gitlab.com
DOCKER_HOST: tcp://my_machine:2376 # complete with YOUR machine and your docker PORT
Utilisation
On liste les jobs disponibles :
gitlab-ci-local --list
Puis on en lance un au choix :
gitlab-ci-local my-job
Autocompletion
L’outil a prĂ©vu ce que de droit avec la commande gitlab-ci-local completion
.
Pour Bash
gitlab-ci-local completion >> ~/.bashrc
source ~/.bashrc
Pour ZSH
gitlab-ci-local completion >> ~/.zshrc
source ~/.zshrc