name: MkDocs on: push: branches: - master tags: - 'v*' jobs: mkdocs: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 with: token: ${{ secrets.DEPLOYMENT_PERSONAL_ACCESS_TOKEN }} # git-revision-date-localized-plugin and mkdocs-rss-plugin need full git history depth fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v2.2.2 with: python-version: "3.x" - uses: actions/cache@v2.1.6 id: cache with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Go to mkdocs folder run: cd mkdocs - name: Install dependencies run: | python -m pip install --upgrade pip setuptools wheel python -m pip install -r requirements.txt - name: Build docs run: | mkdocs build - name: Validate generated HTML files run: | docker run -v $(pwd):/test --rm wjdp/htmltest --conf .htmltest.yml # On push to master or release branch, deploy docs - name: Set up git author if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release/v') run: | remote_repo="https://${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" git config --global user.name "${GITHUB_ACTOR}" git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com" git remote rm origin git remote add origin "${remote_repo}" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Deploy docs (Latest) if: github.ref == 'refs/heads/master' run: | echo "${CUSTOM_DOMAIN}" > "${GITHUB_WORKSPACE}/mkdocs/docs/CNAME" echo -e "User-agent: *\nDisallow: /v*.*/\nSitemap: https://${CUSTOM_DOMAIN}/sitemap.xml" > "${GITHUB_WORKSPACE}/docs/robots.txt" git fetch origin gh-pages --verbose mike deploy . -t "Cloud (Latest)" --config-file "${GITHUB_WORKSPACE}/mkdocs.yml" --push --rebase env: CUSTOM_DOMAIN: docs.codacy.com - name: Deploy docs (Self-hosted) if: startsWith(github.ref, 'refs/heads/release/v') run: | git fetch origin gh-pages --verbose mike deploy ${GITHUB_REF##*/release/} -t "Self-hosted ${GITHUB_REF##*/release/}" --config-file "${GITHUB_WORKSPACE}/mkdocs.yml" --push --rebase