deploy.yml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. .clang_tidy_deploy_template:
  2. stage: deploy
  3. image: $CI_DOCKER_REGISTRY/esp32-ci-env
  4. tags:
  5. - deploy
  6. script:
  7. - mkdir -p ~/.ssh
  8. - chmod 700 ~/.ssh
  9. - echo -n $DOCS_DEPLOY_KEY > ~/.ssh/id_rsa_base64
  10. - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
  11. - chmod 600 ~/.ssh/id_rsa
  12. - echo -e "Host $DOCS_SERVER\n\tStrictHostKeyChecking no\n\tUser $DOCS_SERVER_USER\n" >> ~/.ssh/config
  13. - export GIT_VER=$(git describe --always)
  14. - cd $IDF_PATH/examples/get-started/hello_world/tidybuild
  15. - mv report $GIT_VER
  16. - tar czvf $GIT_VER.tar.gz $GIT_VER
  17. - export STATIC_REPORT_PATH="web/static_analysis/esp-idf/"
  18. - ssh $DOCS_SERVER -x "mkdir -p $STATIC_REPORT_PATH/clang-tidy"
  19. - scp $GIT_VER.tar.gz $DOCS_SERVER:$STATIC_REPORT_PATH/clang-tidy
  20. - ssh $DOCS_SERVER -x "cd $STATIC_REPORT_PATH/clang-tidy && tar xzvf $GIT_VER.tar.gz && rm -f latest && ln -s $GIT_VER latest"
  21. # add link to view the report
  22. - echo "[static analysis][clang tidy] $CI_DOCKER_REGISTRY/static_analysis/esp-idf/clang-tidy/${GIT_VER}/index.html"
  23. - test ! -e ${GIT_VER}/FAILED_RULES || { echo 'Failed static analysis rules!'; cat ${GIT_VER}/FAILED_RULES; exit 1; }
  24. clang_tidy_deploy:
  25. extends: .clang_tidy_deploy_template
  26. dependencies:
  27. - clang_tidy_check
  28. - clang_tidy_check_all
  29. variables:
  30. BOT_NEEDS_TRIGGER_BY_NAME: 1
  31. clang_tidy_deploy_regular:
  32. extends: .clang_tidy_deploy_template
  33. dependencies:
  34. - clang_tidy_check_regular
  35. only:
  36. refs:
  37. - master
  38. - /^release\/v/
  39. - /^v\d+\.\d+(\.\d+)?($|-)/
  40. - triggers
  41. - schedules
  42. variables:
  43. - $BOT_LABEL_STATIC_ANALYSIS
  44. - $BOT_LABEL_STATIC_ANALYSIS_ALL
  45. push_to_github:
  46. stage: deploy
  47. image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
  48. tags:
  49. - deploy
  50. only:
  51. - master
  52. - /^release\/v/
  53. - /^v\d+\.\d+(\.\d+)?($|-)/
  54. - feature/esp32s2beta
  55. when: on_success
  56. dependencies: []
  57. extends: .before_script_lesser
  58. script:
  59. - mkdir -p ~/.ssh
  60. - chmod 700 ~/.ssh
  61. - echo -n $GH_PUSH_KEY > ~/.ssh/id_rsa_base64
  62. - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
  63. - chmod 600 ~/.ssh/id_rsa
  64. - echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
  65. - git remote remove github &>/dev/null || true
  66. - git remote add github git@github.com:espressif/esp-idf.git
  67. - tools/ci/push_to_github.sh
  68. deploy_docs:
  69. stage: deploy
  70. image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
  71. tags:
  72. - deploy
  73. only:
  74. refs:
  75. - master
  76. - /^release\/v/
  77. - /^v\d+\.\d+(\.\d+)?($|-)/
  78. - triggers
  79. variables:
  80. - $BOT_TRIGGER_WITH_LABEL == null
  81. - $BOT_LABEL_BUILD_DOCS
  82. dependencies:
  83. - build_docs
  84. extends: .before_script_lesser
  85. script:
  86. - mkdir -p ~/.ssh
  87. - chmod 700 ~/.ssh
  88. - echo -n $DOCS_DEPLOY_KEY > ~/.ssh/id_rsa_base64
  89. - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
  90. - chmod 600 ~/.ssh/id_rsa
  91. - echo -e "Host $DOCS_SERVER\n\tStrictHostKeyChecking no\n\tUser $DOCS_SERVER_USER\n" >> ~/.ssh/config
  92. - export GIT_VER=$(git describe --always)
  93. - cd docs/en/_build/
  94. - mv html $GIT_VER
  95. - tar czvf $GIT_VER.tar.gz $GIT_VER
  96. - scp $GIT_VER.tar.gz $DOCS_SERVER:$DOCS_PATH/en
  97. - ssh $DOCS_SERVER -x "cd $DOCS_PATH/en && tar xzvf $GIT_VER.tar.gz && rm -f latest && ln -s $GIT_VER latest"
  98. - cd ../../zh_CN/_build/
  99. - mv html $GIT_VER
  100. - tar czvf $GIT_VER.tar.gz $GIT_VER
  101. - scp $GIT_VER.tar.gz $DOCS_SERVER:$DOCS_PATH/zh_CN
  102. - ssh $DOCS_SERVER -x "cd $DOCS_PATH/zh_CN && tar xzvf $GIT_VER.tar.gz && rm -f latest && ln -s $GIT_VER latest"
  103. # add link to preview doc
  104. - echo "[document preview][en] $CI_DOCKER_REGISTRY/docs/esp-idf/en/${GIT_VER}/index.html"
  105. - echo "[document preview][zh_CN] $CI_DOCKER_REGISTRY/docs/esp-idf/zh_CN/${GIT_VER}/index.html"
  106. deploy_test_result:
  107. stage: deploy
  108. image: $CI_DOCKER_REGISTRY/bot-env
  109. tags:
  110. - deploy_test
  111. when: always
  112. only:
  113. refs:
  114. - master
  115. - schedules
  116. artifacts:
  117. when: always
  118. paths:
  119. - ${CI_PROJECT_DIR}/test-management/*.log
  120. # save all test logs as artifacts, make it easier to track errors
  121. - ${CI_PROJECT_DIR}/TEST_LOGS
  122. - $CI_PROJECT_DIR/$CI_COMMIT_SHA
  123. expire_in: 1 mos
  124. variables:
  125. UNIT_TEST_CASE_FILE: "${CI_PROJECT_DIR}/components/idf_test/unit_test/TestCaseAll.yml"
  126. BOT_ACCOUNT_CONFIG_FILE: "${CI_PROJECT_DIR}/test-management/Config/Account.local.yml"
  127. TEST_FW_PATH: "$CI_PROJECT_DIR/tools/tiny-test-fw"
  128. AUTO_TEST_SCRIPT_PATH: "${CI_PROJECT_DIR}/auto_test_script"
  129. before_script:
  130. - mkdir -p ~/.ssh
  131. - chmod 700 ~/.ssh
  132. - echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64
  133. - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
  134. - chmod 600 ~/.ssh/id_rsa
  135. - echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
  136. script:
  137. - export GIT_SHA=$(echo ${CI_COMMIT_SHA} | cut -c 1-8)
  138. - export REV_COUNT=$(git rev-list --count HEAD)
  139. - export SUMMARY="IDF CI test result for $GIT_SHA (r${REV_COUNT})"
  140. # artifacts of job update_test_cases creates test-management folder
  141. # we need to remove it so we can clone test-management folder again
  142. - rm -r test-management
  143. - git clone $TEST_MANAGEMENT_REPO
  144. - python3 $CHECKOUT_REF_SCRIPT test-management test-management
  145. - cd test-management
  146. - echo $BOT_JIRA_ACCOUNT > ${BOT_ACCOUNT_CONFIG_FILE}
  147. # update test results
  148. - python3 ImportTestResult.py -r "$GIT_SHA (r${REV_COUNT})" -j $JIRA_TEST_MANAGEMENT_PROJECT -s "$SUMMARY" -l CI -p ${CI_PROJECT_DIR}/TEST_LOGS ${CI_PROJECT_DIR}/${CI_COMMIT_SHA} --pipeline_url ${CI_PIPELINE_URL}