.gitlab-ci.yml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. stages:
  2. - check_permissions
  3. - build
  4. - test_runMC
  5. - test_run_reco
  6. - deploy
  7. before_script:
  8. - export SIMPATH=/cvmfs/nica.jinr.ru/$OS_TYPE/fairsoft/mpd
  9. - export FAIRROOTPATH=/cvmfs/nica.jinr.ru/$OS_TYPE/fairroot/mpd
  10. - sed -i "s/\/opt\/fairsoft\/install/\/cvmfs\/nica.jinr.ru\/$OS_TYPE\/fairsoft\/mpd/g" SetEnv.sh
  11. - sed -i "s/\/opt\/fairroot\/install/\/cvmfs\/nica.jinr.ru\/$OS_TYPE\/fairroot\/mpd/g" SetEnv.sh
  12. - source ./SetEnv.sh
  13. variables:
  14. GIT_SUBMODULE_STRATEGY: recursive
  15. GREEN: '\033[1;32m'
  16. RED: '\033[1;31m'
  17. NC: '\033[0m'
  18. .only-default: &only-default
  19. only:
  20. - merge_requests
  21. - dev
  22. - tags
  23. check_permissions:
  24. image: git.jinr.ru:5005/nica/docker-images/centos7/base:latest
  25. variables:
  26. OS_TYPE: "centos7"
  27. PERMISSIONS_MESSAGE_FAUILURE: "Permissions check: ${RED}FAILED${NC}. You don't have permission to change some files, please contact your project maintainers."
  28. PERMISSIONS_MESSAGE_SUCCESS: "Permissions check: ${GREEN}PASSED${NC}."
  29. before_script:
  30. - echo "Skipping global before_script"
  31. tags:
  32. - docker
  33. stage: check_permissions
  34. script:
  35. - >
  36. if git diff HEAD~ --name-only|grep .gitlab-ci.yml; then
  37. if grep -q $GITLAB_USER_LOGIN <<< $MAINTAINERS; then echo -e $PERMISSIONS_MESSAGE_SUCCESS $(exit 0); else echo -e $PERMISSIONS_MESSAGE_FAUILURE; $(exit -1); fi
  38. fi;
  39. allow_failure: false
  40. <<: *only-default
  41. .build_template: &build
  42. stage: build
  43. artifacts:
  44. paths:
  45. - build
  46. script:
  47. - mkdir build
  48. - cd build
  49. - cmake "$CI_PROJECT_DIR"
  50. - make -j 5
  51. allow_failure: false
  52. <<: *only-default
  53. build:centos:
  54. image: git.jinr.ru:5005/nica/docker-images/centos7/base:latest
  55. variables:
  56. OS_TYPE: "centos7"
  57. tags:
  58. - docker
  59. - cvmfs
  60. <<: *build
  61. build:ubuntu:
  62. image: git.jinr.ru:5005/nica/docker-images/ubuntu/base:latest
  63. variables:
  64. OS_TYPE: "ubuntu"
  65. tags:
  66. - docker
  67. - cvmfs
  68. <<: *build
  69. .runMC_template: &runMC
  70. stage: test_runMC
  71. tags:
  72. - docker
  73. - cvmfs
  74. artifacts:
  75. paths:
  76. - macro/mpd/evetest.root
  77. script:
  78. - source build/config.sh
  79. - root -b -q -l '$CI_PROJECT_DIR/macro/mpd/runMC.C("auau.09gev.mbias.98k.ftn14","$VMCWORKDIR/macro/mpd/evetest.root",0,2)' | tee output.txt
  80. - (if grep -q "Macro finished successfully." output.txt; then $(exit 0); else $(exit -1); fi);
  81. allow_failure: false
  82. <<: *only-default
  83. runMC:centos:
  84. image: git.jinr.ru:5005/nica/docker-images/centos7/base:latest
  85. variables:
  86. OS_TYPE: "centos7"
  87. dependencies:
  88. - build:centos
  89. <<: *runMC
  90. runMC:ubuntu:
  91. image: git.jinr.ru:5005/nica/docker-images/ubuntu/base:latest
  92. variables:
  93. OS_TYPE: "ubuntu"
  94. dependencies:
  95. - build:ubuntu
  96. <<: *runMC
  97. .run_reco_template: &run_reco
  98. stage: test_run_reco
  99. tags:
  100. - docker
  101. - cvmfs
  102. script:
  103. - source build/config.sh
  104. - root -b -q -l "$CI_PROJECT_DIR/macro/mpd/reco.C" | tee output.txt
  105. - (if grep -q "Macro finished successfully." output.txt; then $(exit 0); else $(exit -1); fi);
  106. allow_failure: false
  107. <<: *only-default
  108. run_reco:centos:
  109. image: git.jinr.ru:5005/nica/docker-images/centos7/base:latest
  110. variables:
  111. OS_TYPE: "centos7"
  112. dependencies:
  113. - build:centos
  114. - runMC:centos
  115. <<: *run_reco
  116. run_reco:ubuntu:
  117. image: git.jinr.ru:5005/nica/docker-images/ubuntu/base:latest
  118. variables:
  119. OS_TYPE: "ubuntu"
  120. dependencies:
  121. - build:ubuntu
  122. - runMC:ubuntu
  123. <<: *run_reco
  124. .deploy_template: &deploy
  125. stage: deploy
  126. before_script:
  127. - echo "Skipping global before_script"
  128. script:
  129. - eval $(ssh-agent -s)
  130. - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add /dev/stdin > /dev/null
  131. - mkdir -p ~/.ssh
  132. - chmod 700 ~/.ssh
  133. - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
  134. - chmod 644 ~/.ssh/known_hosts
  135. - rm -rf /cvmfs/nica.jinr.ru/$CI_ENVIRONMENT_NAME/mpdroot/$CI_COMMIT_REF_NAME
  136. - rm -rf build
  137. - mkdir build
  138. - cd build
  139. - |
  140. if [ $CI_ENVIRONMENT_NAME = "sl6" ]; then
  141. scl enable python27 sclo-git212 - << \EOF
  142. sed -i "s/\/opt\/fairsoft\/install/\/cvmfs\/nica.jinr.ru\/sl6\/fairtest\/fairsoft\/install/g" ../SetEnv.sh
  143. sed -i "s/\/opt\/fairroot\/install/\/cvmfs\/nica.jinr.ru\/sl6\/fairtest\/fairroot\/install/g" ../SetEnv.sh
  144. source /cvmfs/nica.jinr.ru/sl6/fairtest/AIO_export.sh
  145. source ../SetEnv.sh
  146. echo "/cvmfs/nica.jinr.ru/$CI_ENVIRONMENT_NAME/mpdroot/$CI_COMMIT_REF_NAME"
  147. cmake -DCMAKE_INSTALL_PREFIX=/cvmfs/nica.jinr.ru/$CI_ENVIRONMENT_NAME/mpdroot/$CI_COMMIT_REF_NAME ..
  148. make -j 5
  149. make install
  150. EOF
  151. else
  152. sed -i "s/\/opt\/fairsoft\/install/\/cvmfs\/nica.jinr.ru\/$CI_ENVIRONMENT_NAME\/fairsoft\/jun19p1/g" ../SetEnv.sh
  153. sed -i "s/\/opt\/fairroot\/install/\/cvmfs\/nica.jinr.ru\/$CI_ENVIRONMENT_NAME\/fairroot\/v18.2.0/g" ../SetEnv.sh
  154. source ../SetEnv.sh
  155. echo "/cvmfs/nica.jinr.ru/$CI_ENVIRONMENT_NAME/mpdroot/$CI_COMMIT_REF_NAME"
  156. cmake -DCMAKE_INSTALL_PREFIX=/cvmfs/nica.jinr.ru/$CI_ENVIRONMENT_NAME/mpdroot/$CI_COMMIT_REF_NAME ..
  157. make -j 5
  158. make install
  159. fi;
  160. - ssh $STRATUM_0 "sudo cvmfs_server transaction nica.jinr.ru"
  161. - rsync --filter='-p .cvmfscatalog' --filter='-p .cvmfsautocatalog' -a /cvmfs/nica.jinr.ru/$CI_ENVIRONMENT_NAME/mpdroot/$CI_COMMIT_REF_NAME $STRATUM_0:/cvmfs/nica.jinr.ru/$CI_ENVIRONMENT_NAME/mpdroot/
  162. - ssh $STRATUM_0 "sudo cvmfs_server publish nica.jinr.ru"
  163. - ssh-agent -k
  164. only:
  165. - tags
  166. - dev
  167. allow_failure: false
  168. deploy:sl6:
  169. image: git.jinr.ru:5005/nica/docker-images/sl6/fair-mpd:latest
  170. environment:
  171. name: sl6
  172. tags:
  173. - docker
  174. - no-cvmfs
  175. <<: *deploy
  176. deploy:centos7:
  177. image: git.jinr.ru:5005/nica/docker-images/centos7/fair:latest
  178. environment:
  179. name: centos7
  180. tags:
  181. - docker
  182. - no-cvmfs
  183. <<: *deploy