.gitlab-ci.yml 2.1 KB

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