Merge pull request #106 from id1893/tls #86
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy Docs | |
on: | |
push: | |
tags: | |
- v* | |
branches: | |
- main | |
jobs: | |
deploy: | |
runs-on: ubuntu-20.04 | |
if: github.repository_owner == 'emqx' | |
steps: | |
- name: clone docs | |
uses: actions/checkout@main | |
with: | |
fetch-depth: 0 | |
path: docs-files | |
- name: clone frontend | |
uses: actions/checkout@main | |
with: | |
repository: 'emqx/docs-emqx-com-frontend' | |
ref: next | |
token: ${{ secrets.CI_GIT_TOKEN }} | |
path: frontend | |
- name: use python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.8 | |
- name: use node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: 'frontend/.nvmrc' | |
- name: use pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- name: set env | |
run: | | |
BRANCH=$(echo ${{ github.ref }} | sed -r "s ^refs/heads/|^refs/tags/(.*) \1 g") | |
if [ "$BRANCH" = "main" ];then | |
VERSION="latest" | |
else | |
VERSION=$BRANCH | |
fi | |
echo "DOCS_BRANCH=$BRANCH" >> $GITHUB_ENV | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
echo "DOCS_TYPE=emqx-ecp" >> $GITHUB_ENV | |
- name: remove unused files | |
run: | | |
cd docs-files | |
python3 .github/scripts/remove_unused.py $(pwd)/ecp | |
- name: move files | |
run: | | |
rm frontend/docs/en/index.md || true | |
rm frontend/docs/zh/index.md || true | |
rm frontend/docs/*.md || true | |
rm frontend/index.md || true | |
mkdir -p frontend/docs/en/${DOCS_TYPE}/${VERSION}/ | |
mkdir -p frontend/docs/zh/${DOCS_TYPE}/${VERSION}/ | |
mkdir -p frontend/docs/public/api/ | |
mkdir -p frontend/redoc/ | |
cp docs-files/redocly/swagger.json frontend/redoc/swagger-en.json | |
cp docs-files/redocly/swagger.json frontend/redoc/swagger-zh.json | |
cp -r docs-files/ecp/en_US/* frontend/docs/en/${DOCS_TYPE}/${VERSION}/ | |
cp -r docs-files/ecp/zh_CN/* frontend/docs/zh/${DOCS_TYPE}/${VERSION}/ | |
cp docs-files/ecp/directory.json frontend/docs/.vitepress/config/directory.json | |
- name: generate version config | |
run: | | |
cd docs-files | |
python3 .github/scripts/generate_version.py $(git tag | egrep "^v.*$" | xargs echo -n) > ../frontend/docs/public/api/${DOCS_TYPE}_versions.json | |
cat ../frontend/docs/public/api/${DOCS_TYPE}_versions.json | |
- name: build docs | |
run: | | |
cd frontend | |
pnpm install | |
pnpm build | |
- name: build redoc | |
run: | | |
cd frontend | |
yarn global add redoc-cli | |
LANGS=(zh en) | |
for lang in "${LANGS[@]}"; do | |
redoc-cli bundle redoc/swagger-${lang}.json -t redoc/template-emqx-ecp.hbs \ | |
--output docs/.vitepress/dist/${lang}/emqx-ecp/${VERSION}/api/api-docs.html \ | |
--options.theme.colors.primary.main=#5e4eff \ | |
--options.theme.typography.headings.fontFamily='Roboto, sans-serif' \ | |
--options.hide-hostname --templateOptions.title "EMQX ECP ${VERSION} API Documentation" \ | |
--templateOptions.description "EMQX ECP ${VERSION} API Documentation" \ | |
--templateOptions.version "${VERSION}" \ | |
$(if [ "${lang}" == "zh" ]; then echo "--templateOptions.langZH \"zh\""; fi) | |
done | |
- name: set aws credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: ${{ secrets.AWS_DEFAULT_REGION }} | |
- name: upload dist to s3 | |
run: | | |
aws s3 rm --recursive s3://docs-emqx-com/zh/${DOCS_TYPE}/${VERSION} || true | |
aws s3 rm --recursive s3://docs-emqx-com/en/${DOCS_TYPE}/${VERSION} || true | |
aws s3 cp --recursive frontend/docs/.vitepress/dist/ s3://docs-emqx-com/ | |
aws cloudfront create-invalidation --distribution-id ${{ secrets.AWS_DOCS_CLOUDFRONT_ID }} --paths "/zh/${DOCS_TYPE}/${VERSION}/*" "/en/${DOCS_TYPE}/${VERSION}/*" "/api/${DOCS_TYPE}_versions.json" "/sitemap_${DOCS_TYPE}_${VERSION}.xml" | |
- name: upload dist | |
run: | | |
pip3 install coscmd | |
coscmd config -a ${{ secrets.TENCENT_COS_ID }} -s ${{ secrets.TENCENT_COS_KEY }} -b docs-1302406139 -r ap-shanghai | |
coscmd delete -r -f en/${DOCS_TYPE}/${VERSION} || true | |
coscmd delete -r -f zh/${DOCS_TYPE}/${VERSION} || true | |
coscmd config -a ${{ secrets.TENCENT_COS_ID }} -s ${{ secrets.TENCENT_COS_KEY }} -b docs-1302406139 -e cos.accelerate.myqcloud.com | |
coscmd upload -r frontend/docs/.vitepress/dist/ / | |
- name: flush cdn | |
run: | | |
pip3 install tccli | |
tccli configure set secretId ${{ secrets.TENCENT_COS_ID }} | |
tccli configure set secretKey ${{ secrets.TENCENT_COS_KEY }} | |
tccli configure set region ap-shanghai | |
tccli cdn PurgePathCache --cli-unfold-argument --Paths https://docs.emqx.com/zh/${DOCS_TYPE}/${VERSION}/ https://docs.emqx.com/en/${DOCS_TYPE}/${VERSION}/ --FlushType delete | |
tccli cdn PurgeUrlsCache --cli-unfold-argument --Urls https://docs.emqx.com/api/${DOCS_TYPE}_versions.json https://docs.emqx.com/sitemap_${DOCS_TYPE}_${VERSION}.xml | |
- name: update search index | |
uses: Swilder-M/docsearch-scraper-simple@next | |
env: | |
APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID_NEXT }} | |
API_KEY: ${{ secrets.ALGOLIA_API_KEY_NEXT }} | |
with: | |
docs_type: ${{ env.DOCS_TYPE }} | |
docs_version: ${{ env.VERSION }} |