Pour déployer :
# on reconstruit l'image (sur la branche master) docker-compose build app-prod # et on la pousse sur le registre docker-compose push app-prod # il faut ensuite la tirer sur le serveur de prod docker pull gitlab-registry.serveur-registre.tdl/user/projet/image:tag # et l'instancier docker-compose up -d
Pointeur : https://docs.gitlab.com/ee/ci/yaml/
Pourquoi : En premier lieu pour éviter de faire tourner des serveurs pour rien, mais ça peut-être aussi pour ne déployer qu'au moment opportun… il est intéressant de conditionner l'exécution de la CI au lieu de chaque commit.
Que sa la branche master :
workflow: rules: - if: '$CI_COMMIT_BRANCH == "master"' when: always
Que sur la branche par défaut :
workflow: rules: - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
On peut conditionner l'exécution ou la non-exécution en fonction du message du commit :
Ne sera déclenché que si le texte du commit fini par -build (git cim “release, on déploie… -build”)
workflow: rules: - if: $CI_COMMIT_MESSAGE =~ /-build$/
Ne sera pas déclenché si le commit contient -draft en fin de son texte (git cim “fix: modif mineure, -draft”)
workflow: rules: - if: $CI_COMMIT_MESSAGE =~ /-draft$/ when: never