.gitlab-ci.yml 5.4 KB

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