.gitlab-ci.yml 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. stages:
  2. - pre-build
  3. - build
  4. - test
  5. - deploy
  6. build_branch:
  7. image: docker.infra.flowdat.com/fd3/sf-php:latest
  8. script:
  9. - chmod 0600 keys/*
  10. - eval $(ssh-agent); ssh-add keys/gogs.drone.id_rsa
  11. - git fetch --tags
  12. - 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
  13. - git checkout $CI_COMMIT_REF_NAME
  14. - git push -u gogs $CI_COMMIT_REF_NAME --tags
  15. only:
  16. - pushes
  17. - branches
  18. image: docker:stable
  19. services:
  20. - docker:dind
  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_version_tag_base:
  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_BASE:latest || true
  52. - docker build --no-cache --tag $CONTAINER_IMAGE_BASE:"${CI_COMMIT_TAG##v}" .
  53. - docker push $CONTAINER_IMAGE_BASE:"${CI_COMMIT_TAG##v}"
  54. only:
  55. refs:
  56. - tags
  57. variables:
  58. - $CI_COMMIT_TAG =~ /^v[0-9]+(.[0-9]+)*/
  59. dependencies:
  60. - docker_base
  61. docker_cwmp:
  62. stage: build
  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:latest ./genieacs-cwmp/
  68. - docker push $CONTAINER_IMAGE_CWMP:latest
  69. only:
  70. refs:
  71. - pushes
  72. variables:
  73. - $CI_COMMIT_REF_NAME == "master"
  74. dependencies:
  75. - docker_base
  76. docker_version_tag_cwmp:
  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_CWMP:latest || true
  82. - docker build --no-cache --tag $CONTAINER_IMAGE_CWMP:"${CI_COMMIT_TAG##v}" ./genieacs-cwmp/
  83. - docker push $CONTAINER_IMAGE_CWMP:"${CI_COMMIT_TAG##v}"
  84. only:
  85. refs:
  86. - tags
  87. variables:
  88. - $CI_COMMIT_TAG =~ /^v[0-9]+(.[0-9]+)*/
  89. dependencies:
  90. - docker_cwmp
  91. docker_gui:
  92. stage: build
  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:latest ./genieacs-gui/
  98. - docker push $CONTAINER_IMAGE_GUI:latest
  99. only:
  100. refs:
  101. - pushes
  102. variables:
  103. - $CI_COMMIT_REF_NAME == "master"
  104. dependencies:
  105. - docker_base
  106. docker_version_tag_gui:
  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_GUI:latest || true
  112. - docker build --no-cache --tag $CONTAINER_IMAGE_GUI:"${CI_COMMIT_TAG##v}" ./genieacs-gui/
  113. - docker push $CONTAINER_IMAGE_GUI:"${CI_COMMIT_TAG##v}"
  114. only:
  115. refs:
  116. - tags
  117. variables:
  118. - $CI_COMMIT_TAG =~ /^v[0-9]+(.[0-9]+)*/
  119. dependencies:
  120. - docker_gui
  121. docker_nbi:
  122. stage: build
  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:latest ./genieacs-gui/
  128. - docker push $CONTAINER_IMAGE_NBI:latest
  129. only:
  130. refs:
  131. - pushes
  132. variables:
  133. - $CI_COMMIT_REF_NAME == "master"
  134. dependencies:
  135. - docker_base
  136. docker_version_tag_nbi:
  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_NBI:latest || true
  142. - docker build --no-cache --tag $CONTAINER_IMAGE_NBI:"${CI_COMMIT_TAG##v}" ./genieacs-gui/
  143. - docker push $CONTAINER_IMAGE_NBI:"${CI_COMMIT_TAG##v}"
  144. only:
  145. refs:
  146. - tags
  147. variables:
  148. - $CI_COMMIT_TAG =~ /^v[0-9]+(.[0-9]+)*/
  149. dependencies:
  150. - docker_nbi
  151. docker_fs:
  152. stage: build
  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:latest ./genieacs-fs/
  158. - docker push $CONTAINER_IMAGE_FS:latest
  159. only:
  160. refs:
  161. - pushes
  162. variables:
  163. - $CI_COMMIT_REF_NAME == "master"
  164. dependencies:
  165. - docker_base
  166. docker_version_tag_fs:
  167. stage: build
  168. script:
  169. - docker info
  170. - docker login -u $DOCKER_USER -p $DOCKER_PWD docker.infra.flowdat.com
  171. - docker pull $CONTAINER_IMAGE_FS:latest || true
  172. - docker build --no-cache --tag $CONTAINER_IMAGE_FS:"${CI_COMMIT_TAG##v}" ./genieacs-fs/
  173. - docker push $CONTAINER_IMAGE_FS:"${CI_COMMIT_TAG##v}"
  174. only:
  175. refs:
  176. - tags
  177. variables:
  178. - $CI_COMMIT_TAG =~ /^v[0-9]+(.[0-9]+)*/
  179. dependencies:
  180. - docker_fs