-name: Build and Deploy to Netlify
+name: Build Docs
on:
push:
pull_request:
run: python3.7 -m flit install --extras doc
- name: Build Docs
run: python3.7 ./scripts/docs.py build-all
+ - name: Zip docs
+ run: bash ./scripts/zip-docs.sh
+ - uses: actions/upload-artifact@v2
+ with:
+ name: docs-zip-${{ github.sha }}
+ path: ./docs.zip
+ - name: Trigger Docs Preview
+ env:
+ PR: "${{ github.event.number }}"
+ NAME: "docs-zip-${{ github.sha }}"
+ GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
+ run: bash ./scripts/trigger-docs-preview.sh
- name: Deploy to Netlify
uses: nwtgck/actions-netlify@v1.0.3
with:
--- /dev/null
+name: Deploy Docs
+on:
+ workflow_dispatch:
+ inputs:
+ pr:
+ description: Pull Request number
+ required: true
+ name:
+ description: Artifact name for zip file with docs
+ required: true
+
+jobs:
+ deploy:
+ runs-on: ubuntu-18.04
+ steps:
+ - uses: actions/download-artifact@v2
+ with:
+ name: ${{ github.event.inputs.name }}
+ path: ./docs.zip
+ - name: Unzip docs
+ run: bash ./scripts/unzip-docs.sh
+ - name: Deploy to Netlify
+ id: netlify
+ uses: nwtgck/actions-netlify@v1.0.3
+ with:
+ publish-dir: './site'
+ production-deploy: false
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ env:
+ NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
+ NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
+ - name: Comment Deploy
+ run: bash ./scripts/docs-comment-deploy.sh
+ env:
+ PR: "${{ github.event.inputs.pr }}"
+ DEPLOY_URL: "${{ steps.netlify.outputs.deploy-url }}"
+ GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
env
docs_build
venv
+docs.zip
# vim temporary files
*~
--- /dev/null
+#! /usr/bin/env bash
+
+set -x
+set -e
+
+PR=${PR:?Variable not set}
+DEPLOY_URL=${DEPLOY_URL:?Variable not set}
+GITHUB_TOKEN=${GITHUB_TOKEN:?Variable not set}
+
+curl \
+ -H "Authorization: token ${GITHUB_TOKEN}" \
+ https://api.github.com/repos/tiangolo/fastapi/issues/${PR}/comments \
+ -d '{"body": "📝 Docs preview: '"${DEPLOY_URL}"'"}'
--- /dev/null
+#! /usr/bin/env bash
+
+set -x
+set -e
+
+PR=${PR}
+
+if [ -z "$PR" ]; then
+ echo "Not a PR build, skip trigger docs preview"
+ exit 0
+fi
+
+NAME=${NAME:?Variable not set}
+GITHUB_TOKEN=${GITHUB_TOKEN:?Variable not set}
+
+curl \
+ -X POST \
+ -H "Authorization: token ${GITHUB_TOKEN}" \
+ -H "Accept: application/vnd.github.v3+json" \
+ https://api.github.com/repos/tiangolo/fastapi/actions/workflows/preview-docs.yml/dispatches \
+ -d '{"ref":"master", "inputs": {"pr": "'"${PR}"'", "name": "'"${NAME}"'"}}'
--- /dev/null
+#! /usr/bin/env bash
+
+set -x
+set -e
+
+if [ -d ./site/ ]; then
+ rm -rf ./site/
+fi
+unzip docs.zip
--- /dev/null
+#! /usr/bin/env bash
+
+set -x
+set -e
+
+if [ -f docs.zip ]; then
+ rm -rf docs.zip
+fi
+zip -r docs.zip ./site