.gitlab-ci.yml 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. stages:
  2. - pre-build
  3. - build
  4. - tag
  5. - test
  6. - deploy
  7. build_branch:
  8. image: docker.infra.flowdat.com/fd3/sf-php:latest
  9. variables:
  10. GIT_STRATEGY: clone
  11. script:
  12. - ssh-keyscan -p 222 -t rsa gogs.infra.flowdat.com >> ~/.ssh/known_hosts
  13. - git fetch --tags
  14. - if git ls-remote --exit-code gogs &>/dev/null; then echo 'Existe el remote gogs' ; else git remote add gogs ssh://git@gogs.infra.flowdat.com:222/VendorSoftwareFlowdat3/genieacs.git ; fi
  15. - git checkout $CI_COMMIT_REF_NAME
  16. - chmod 0600 keys/* && eval $(ssh-agent); ssh-add keys/gogs.drone.id_rsa && git push -u gogs $CI_COMMIT_REF_NAME --tags
  17. only:
  18. - pushes
  19. - branches
  20. image: docker:19.03.8
  21. variables:
  22. MYSQL_ROOT_PASSWORD: ""
  23. MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
  24. CONTAINER_IMAGE_BASE: docker.infra.flowdat.com/fd3/genieacs
  25. CONTAINER_IMAGE_CWMP: docker.infra.flowdat.com/fd3/genieacs-cwmp
  26. CONTAINER_IMAGE_GUI: docker.infra.flowdat.com/fd3/genieacs-gui
  27. CONTAINER_IMAGE_NBI: docker.infra.flowdat.com/fd3/genieacs-nbi
  28. CONTAINER_IMAGE_FS: docker.infra.flowdat.com/fd3/genieacs-fs
  29. CLIENT: fd3
  30. DOMAIN: flowdat.com
  31. DOCKER_USER: drone
  32. DOCKER_PWD: 6hd2dLfL
  33. docker_base:
  34. stage: pre-build
  35. script:
  36. - docker info
  37. - docker login -u $DOCKER_USER -p $DOCKER_PWD docker.infra.flowdat.com
  38. - docker pull $CONTAINER_IMAGE_BASE:latest || true
  39. - docker build --no-cache --tag $CONTAINER_IMAGE_BASE:latest ./genieacs-base/
  40. - docker push $CONTAINER_IMAGE_BASE:latest
  41. only:
  42. refs:
  43. - pushes
  44. variables:
  45. - $CI_COMMIT_REF_NAME == "master"
  46. docker_cwmp:
  47. stage: build
  48. script:
  49. - docker info
  50. - docker login -u $DOCKER_USER -p $DOCKER_PWD docker.infra.flowdat.com
  51. - docker pull $CONTAINER_IMAGE_CWMP:latest || true
  52. - docker build --no-cache --tag $CONTAINER_IMAGE_CWMP:latest ./genieacs-cwmp/
  53. - docker push $CONTAINER_IMAGE_CWMP:latest
  54. only:
  55. refs:
  56. - pushes
  57. variables:
  58. - $CI_COMMIT_REF_NAME == "master"
  59. dependencies:
  60. - docker_base
  61. docker_version_tag_cwmp:
  62. stage: tag
  63. script:
  64. - docker info
  65. - docker login -u $DOCKER_USER -p $DOCKER_PWD docker.infra.flowdat.com
  66. - docker pull $CONTAINER_IMAGE_CWMP:latest || true
  67. - docker build --no-cache --tag $CONTAINER_IMAGE_CWMP:${CI_COMMIT_TAG} ./genieacs-cwmp/
  68. - docker push $CONTAINER_IMAGE_CWMP:${CI_COMMIT_TAG}
  69. only:
  70. refs:
  71. - tags
  72. variables:
  73. - $CI_COMMIT_TAG =~ /^v[0-9]+(.[0-9]+)*/
  74. dependencies:
  75. - docker_cwmp
  76. docker_gui:
  77. stage: build
  78. script:
  79. - docker info
  80. - docker login -u $DOCKER_USER -p $DOCKER_PWD docker.infra.flowdat.com
  81. - docker pull $CONTAINER_IMAGE_GUI:latest || true
  82. - docker build --no-cache --tag $CONTAINER_IMAGE_GUI:latest ./genieacs-gui/
  83. - docker push $CONTAINER_IMAGE_GUI:latest
  84. only:
  85. refs:
  86. - pushes
  87. variables:
  88. - $CI_COMMIT_REF_NAME == "master"
  89. dependencies:
  90. - docker_base
  91. docker_version_tag_gui:
  92. stage: tag
  93. script:
  94. - docker info
  95. - docker login -u $DOCKER_USER -p $DOCKER_PWD docker.infra.flowdat.com
  96. - docker pull $CONTAINER_IMAGE_GUI:latest || true
  97. - docker build --no-cache --tag $CONTAINER_IMAGE_GUI:${CI_COMMIT_TAG} ./genieacs-gui/
  98. - docker push $CONTAINER_IMAGE_GUI:${CI_COMMIT_TAG}
  99. only:
  100. refs:
  101. - tags
  102. variables:
  103. - $CI_COMMIT_TAG =~ /^v[0-9]+(.[0-9]+)*/
  104. dependencies:
  105. - docker_gui
  106. docker_nbi:
  107. stage: build
  108. script:
  109. - docker info
  110. - docker login -u $DOCKER_USER -p $DOCKER_PWD docker.infra.flowdat.com
  111. - docker pull $CONTAINER_IMAGE_NBI:latest || true
  112. - docker build --no-cache --tag $CONTAINER_IMAGE_NBI:latest ./genieacs-nbi/
  113. - docker push $CONTAINER_IMAGE_NBI:latest
  114. only:
  115. refs:
  116. - pushes
  117. variables:
  118. - $CI_COMMIT_REF_NAME == "master"
  119. dependencies:
  120. - docker_base
  121. docker_version_tag_nbi:
  122. stage: tag
  123. script:
  124. - docker info
  125. - docker login -u $DOCKER_USER -p $DOCKER_PWD docker.infra.flowdat.com
  126. - docker pull $CONTAINER_IMAGE_NBI:latest || true
  127. - docker build --no-cache --tag $CONTAINER_IMAGE_NBI:${CI_COMMIT_TAG} ./genieacs-nbi/
  128. - docker push $CONTAINER_IMAGE_NBI:${CI_COMMIT_TAG}
  129. only:
  130. refs:
  131. - tags
  132. variables:
  133. - $CI_COMMIT_TAG =~ /^v[0-9]+(.[0-9]+)*/
  134. dependencies:
  135. - docker_nbi
  136. docker_fs:
  137. stage: build
  138. script:
  139. - docker info
  140. - docker login -u $DOCKER_USER -p $DOCKER_PWD docker.infra.flowdat.com
  141. - docker pull $CONTAINER_IMAGE_FS:latest || true
  142. - docker build --no-cache --tag $CONTAINER_IMAGE_FS:latest ./genieacs-fs/
  143. - docker push $CONTAINER_IMAGE_FS:latest
  144. only:
  145. refs:
  146. - pushes
  147. variables:
  148. - $CI_COMMIT_REF_NAME == "master"
  149. dependencies:
  150. - docker_base
  151. docker_version_tag_fs:
  152. stage: tag
  153. script:
  154. - docker info
  155. - docker login -u $DOCKER_USER -p $DOCKER_PWD docker.infra.flowdat.com
  156. - docker pull $CONTAINER_IMAGE_FS:latest || true
  157. - docker build --no-cache --tag $CONTAINER_IMAGE_FS:${CI_COMMIT_TAG} ./genieacs-fs/
  158. - docker push $CONTAINER_IMAGE_FS:${CI_COMMIT_TAG}
  159. only:
  160. refs:
  161. - tags
  162. variables:
  163. - $CI_COMMIT_TAG =~ /^v[0-9]+(.[0-9]+)*/
  164. dependencies:
  165. - docker_fs