.gitlab-ci.yml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. stages:
  2. - checks
  3. - build_release
  4. - doxy_stage
  5. check-lint:
  6. stage: checks
  7. image: xianpengshen/clang-tools:14
  8. script:
  9. - linter_errors=$(clang-format -n ./src/* 2>&1 | grep -v --color=never "no modified files to format" || true)
  10. - echo "$linter_errors"
  11. - if [[ ! -z "$linter_errors" ]]; then echo "Detected formatting issues; please fix"; exit 1; else echo "Formatting is correct"; exit 0; fi
  12. build_release:
  13. stage: build_release
  14. image: python
  15. only:
  16. - main
  17. before_script:
  18. - 'which ssh-agent || ( apt-get install -qq openssh-client )'
  19. - eval $(ssh-agent -s)
  20. - mkdir -p ~/.ssh
  21. - chmod 600 ~/.ssh
  22. - echo "$SSH_KEY" | tr -d '\r' > ~/.ssh/id_rsa
  23. - chmod 600 ~/.ssh/id_rsa
  24. - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
  25. script:
  26. - ssh -t -t -p 90 $DEST_IP mkdir -p $DEST_PATH/$CI_PROJECT_NAME
  27. - scp -r -P 90 ./readme.md $DEST_IP:$DEST_PATH/$CI_PROJECT_NAME/readme.md
  28. #files for apollo
  29. - (if [ -f apollo.json ]; then scp -r -P 90 ./apollo.json $DEST_IP:$DEST_PATH/$CI_PROJECT_NAME/ ; fi);
  30. - (if [ -f changelog.md ]; then scp -r -P 90 ./changelog.md $DEST_IP:$DEST_PATH/$CI_PROJECT_NAME/ ; fi);
  31. - (if [ -f LICENSE ]; then scp -r -P 90 ./LICENSE $DEST_IP:$DEST_PATH/$CI_PROJECT_NAME/ ; fi);
  32. # automatic update project
  33. - RQ=$(curl --location --request PUT $APOLLO_API/$CI_PROJECT_NAME --header "apiKey:$APOLLO_KEY")
  34. - curl --location $APOLLO_API/$CI_PROJECT_NAME/status --header "apiKey:$APOLLO_KEY" --header Content-Type:application/json --data "$RQ"
  35. doxy_stage:
  36. stage: doxy_stage
  37. image: hrektts/doxygen
  38. only:
  39. - main
  40. before_script:
  41. - 'which ssh-agent || ( apt-get install -qq openssh-client )'
  42. - eval $(ssh-agent -s)
  43. - mkdir -p ~/.ssh
  44. - chmod 600 ~/.ssh
  45. - echo "$SSH_KEY" | tr -d '\r' > ~/.ssh/id_rsa
  46. - chmod 600 ~/.ssh/id_rsa
  47. - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
  48. script:
  49. #doxygen
  50. - doxygen Doxyfile
  51. #presun html do docs
  52. - ssh -t -t -p 90 $DEST_IP mkdir -p $DEST_PATH/$CI_PROJECT_NAME/docs
  53. - scp -r -P 90 ./html/* $DEST_IP:$DEST_PATH/$CI_PROJECT_NAME/docs