==== Quelques pointeurs: ====
* [[https://www.youtube.com/watch?v=URcMBXjIr24|tuto un peu ancien mais intéressant de grafikart]]
* [[https://docs.gitlab.com/ce/ci/|aide gitlab sur ci]]
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
==== Conditionner l'exécution de la CI ====
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 sur la branche master/main… ou la branche par défaut ===
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 noter qu'on ne fait pas appel à la même variable… pour en savoir plus https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
=== Que si le commit contient un drapeau ===
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