Exemple de fichier gitlab-ci.yml

Posté le Dimanche 29 octobre 2017 - 17:27
Dernière mise à jour le Vendredi 26 janvier 2018 - 18:35

.gitlab-ci.yml

  1. stages :
  2. - predeploy
  3. - deploy
  4. - postdeploy
  5. - scheduled
  6.  
  7.   prod_backup_db:
  8.   script:
  9. - ssh <a href="mailto:user@serveur">user@serveur</a> 'drush @kg cr'
  10. - ssh <a href="mailto:user@serveur">user@serveur</a> 'drush @kg sql-dump --gzip > "/home/site/db/`date +%Y-%m-%d_%H-%M-%S`-kgaut.net-$(hostname).sql.gz"'
  11.   only:
  12. - master
  13.   stage : predeploy
  14.   environment:
  15.   name: preprod
  16.  
  17.   prod_diff_git:
  18.   script:
  19. - ssh <a href="mailto:user@serveur">user@serveur</a> 'bash -s' < scripts/deploy/2-diff.sh
  20.   only:
  21. - master
  22.   except:
  23. - schedules
  24.   stage : predeploy
  25.   environment:
  26.   name: preprod
  27.  
  28.   prod_diff_config:
  29.   script:
  30. - ssh <a href="mailto:user@serveur">user@serveur</a> 'bash -s' < scripts/deploy/3-diff-config.sh
  31.   only:
  32. - master
  33.   except:
  34. - schedules
  35.   stage : predeploy
  36.   environment:
  37.   name: preprod
  38.  
  39.   prod_deploy:
  40.   script:
  41. - ssh <a href="mailto:user@serveur">user@serveur</a> 'bash -s' < scripts/deploy/4-deploy.sh
  42.   only:
  43. - master
  44.   except:
  45. - schedules
  46.   stage : deploy
  47.   environment:
  48.   name: preprod
  49.  
  50.   dump:
  51.   only:
  52. - schedules
  53.   stage : scheduled
  54.   script:
  55. - ssh <a href="mailto:user@serveur">user@serveur</a> 'find "/home/kgaut_net/db" -type f -mtime +"3" -delete'

2-diff.sh

  1. #!/bin/bash
  2. set -e
  3. cd website
  4. if [[ $(git diff) ]]; then
  5. FILENAME="$(date +"%Y-%m-%d_%H-%M-%S")-diff.patch"
  6. git diff > "/home/site/diffs/$FILENAME"
  7. echo "---------------------------------";
  8. echo "modifications en prod detectées, patch créé : $FILENAME";
  9. echo "Modifications de fichier en prod detectées, patch créé" | mail -s "Fichiers modifiés" -a "/home/site/diffs/$FILENAME" <a href="mailto:moi@email.com">moi@email.com</a>
  10. echo "Liste des fichiers modifiés : ";
  11. echo $(git diff --name-only)
  12. echo "---------------------------------";
  13. git checkout ./
  14. else
  15. if [[ $(git ls-files --others --exclude-standard) ]]; then
  16. echo "---------------------------------";
  17. echo "Fichiers non versionnés : "
  18. echo $(git ls-files --others --exclude-standard)
  19. echo "---------------------------------";
  20. FAIL;
  21. else
  22. echo "Pas de modification en prod à signaler"
  23. fi
  24. fi

3-diff-config.sh

  1. #!/bin/bash
  2. set -e
  3.  
  4. cd /home/site/website
  5. drush @kg cr
  6. drush @kg config-export sync -y
  7. if [[ $(git diff files/config/) ]]; then
  8. echo "---------------------------------";
  9. FILENAME="$(date +"%Y-%m-%d_%H-%M-%S")-config.patch"
  10. git diff files/config/ > "/home/site/diffs/$FILENAME"
  11. echo "Modifications de configuration en prod detectées, patch créé : $FILENAME";
  12. echo "Configuration modifiée, patch créé" | mail -s "Configuration modifiée" -a "/home/site/diffs/$FILENAME" <a href="mailto:contact+kgn@kgaut.net">contact+kgn@kgaut.net</a>
  13. git checkout ./
  14. echo "---------------------------------";
  15. #FAIL;
  16. fi
  17.  
  18. cd /home/site/website/files/config
  19. if [[ $(git ls-files --others --exclude-standard) ]]; then
  20. echo "---------------------------------";
  21. FILENAME="$(date +"%Y-%m-%d_%H-%M-%S")-config.tar"
  22. echo "Config en prod non versionnée : "
  23. echo $(git ls-files --others --exclude-standard)
  24. tar -zcvf "/home/site/diffs/$FILENAME" ./
  25. echo "Archive crée : $FILENAME";
  26. echo "Configuration modifiée, non versionnée, patch créé" | mail -s "Configuration non versionnée" -a "/home/site/diffs/$FILENAME" <a href="mailto:contact+kgn@kgaut.net">contact+kgn@kgaut.net</a>
  27. rm ./*/*.yml
  28. git checkout ./
  29. echo "---------------------------------";
  30. #FAIL;
  31. fi

4-deploy.sh

  1. #!/bin/bash
  2. set -e
  3. cd /home/site/website
  4. git pull
  5. composer install --no-dev
  6. drush @kg updb -y
  7. drush @kg entup -y
  8. drush @kg updb -y
  9. drush @kg config-import sync -y
  10. gulp prod
  11. drush @kg cr
 

Ajouter un commentaire

Ne sera pas publié

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...