deploy_docs.yaml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. name: Deploy Docs
  2. concurrency:
  3. group: ${{ github.ref }}
  4. cancel-in-progress: true
  5. on:
  6. push:
  7. tags:
  8. - '*.*.*'
  9. branches:
  10. - master
  11. paths:
  12. - 'docs/**'
  13. jobs:
  14. deploy:
  15. runs-on: ubuntu-20.04
  16. if: github.repository_owner == 'lf-edge'
  17. steps:
  18. - name: clone docs
  19. uses: actions/checkout@v3
  20. with:
  21. fetch-depth: 0
  22. path: docs-files
  23. - name: clone frontend
  24. uses: actions/checkout@v3
  25. with:
  26. repository: 'emqx/emqx-io-docs-frontend'
  27. token: ${{ secrets.CI_GIT_TOKEN }}
  28. path: frontend
  29. - name: use node.js
  30. uses: actions/setup-node@v1
  31. with:
  32. node-version: 14.15
  33. - name: use python
  34. uses: actions/setup-python@v4
  35. with:
  36. python-version: '3.8'
  37. architecture: 'x64'
  38. - name: set env
  39. run: |
  40. BRANCH=$(echo ${{ github.ref }} | sed -r "s ^refs/heads/|^refs/tags/(.*) \1 g")
  41. if [ "$BRANCH" = "master" ];then
  42. VERSION="latest"
  43. else
  44. VERSION=$(echo $BRANCH | sed -E 's/([^.]+\.[^.]+).*/\1/')
  45. VERSION="v$VERSION"
  46. fi
  47. echo "DOCS_BRANCH=$BRANCH" >> $GITHUB_ENV
  48. echo "VERSION=$VERSION" >> $GITHUB_ENV
  49. echo "DOCS_TYPE=ekuiper" >> $GITHUB_ENV
  50. - name: remove unused files
  51. run: |
  52. cd docs-files
  53. python3 .github/scripts/remove_unused.py $(pwd)/docs
  54. - name: move files
  55. run: |
  56. rm frontend/docs/en/README.md || true
  57. rm frontend/docs/zh/README.md || true
  58. rm frontend/docs/*.md || true
  59. rm frontend/README.md
  60. mkdir -p frontend/docs/en/${VERSION}/
  61. mkdir -p frontend/docs/zh/${VERSION}/
  62. mkdir -p frontend/docs/.vuepress/public/api/
  63. cp -r docs-files/docs/en_US/* frontend/docs/en/${VERSION}/
  64. cp -r docs-files/docs/zh_CN/* frontend/docs/zh/${VERSION}/
  65. cp docs-files/docs/directory.json frontend/docs/.vuepress/config/directory.json
  66. - name: generate version config
  67. run: |
  68. cd docs-files
  69. version_list=$(git tag | xargs echo -n)
  70. python3 .github/scripts/generate_version.py $version_list > ../frontend/docs/.vuepress/public/api/${DOCS_TYPE}_versions.json
  71. cat ../frontend/docs/.vuepress/public/api/${DOCS_TYPE}_versions.json
  72. - name: build docs
  73. run: |
  74. cd frontend
  75. yarn && yarn build
  76. - name: upload dist
  77. run: |
  78. cd frontend/docs/.vuepress/
  79. pip3 install coscmd
  80. coscmd config -a ${{ secrets.TENCENT_COS_ID }} -s ${{ secrets.TENCENT_COS_KEY }} -b ekuiper-org-1302406139 -r ap-hongkong
  81. coscmd delete -r -f docs/en/${VERSION} || true
  82. coscmd delete -r -f docs/zh/${VERSION} || true
  83. coscmd config -a ${{ secrets.TENCENT_COS_ID }} -s ${{ secrets.TENCENT_COS_KEY }} -b ekuiper-org-1302406139 -e cos.accelerate.myqcloud.com
  84. coscmd upload -r dist/ /docs/
  85. - name: refresh cdn cache
  86. run: |
  87. pip3 install tccli
  88. tccli configure set secretId ${{ secrets.TENCENT_COS_ID }}
  89. tccli configure set secretKey ${{ secrets.TENCENT_COS_KEY }}
  90. tccli configure set region ap-hongkong
  91. tccli cdn PurgePathCache --Paths '["https://ekuiper.org/docs/", "https://ekuiper-docs.emqx.net/"]' --FlushType delete
  92. - name: update search index
  93. uses: Swilder-M/docsearch-scraper-simple@v4
  94. env:
  95. APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
  96. API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
  97. with:
  98. docs_type: ${{ env.DOCS_TYPE }}
  99. docs_version: ${{ env.VERSION }}