diff --git a/.github/workflows/doc-tests.yaml b/.github/workflows/doc-tests.yaml
index 0eb4c97bc8666..35517775248da 100644
--- a/.github/workflows/doc-tests.yaml
+++ b/.github/workflows/doc-tests.yaml
@@ -19,30 +19,56 @@ jobs:
permissions:
contents: read
- container:
- image: ghcr.io/gravitational/docs:latest
- volumes:
- - ${{ github.workspace }}:/src/content/docs
-
steps:
- name: Checkout
uses: actions/checkout@v3
+ with:
+ repository: "gravitational/docs"
+ path: "docs"
- name: Prepare docs site configuration
+ # The environment we use for linting the docs differs from the one we
+ # use for the live docs site in that we only test a single version of
+ # the content.
+ #
+ # To do this, we replace the three submodules we use for building the
+ # live docs site with a single submodule, pointing to the
+ # gravitational/teleport branch we are linting.
+ #
# The docs engine expects a config.json file at the root of the
# gravitational/docs clone that associates directories with git
- # submodules.
- #
- # By default, these directories represent versioned branches
+ # submodules. By default, these directories represent versioned branches
# of gravitational/teleport. We override this in order to build only a
# single version of the docs.
- run: 'echo "{\"versions\": [{\"name\": \"docs\", \"branch\": \"$GITHUB_REF_NAME\", \"deprecated\": false}]}" > /src/config.json'
+ run: |
+ if [ $GITHUB_EVENT_NAME = "pull_request" ]; then
+ BRANCH=$GITHUB_HEAD_REF;
+ elif [ $GITHUB_EVENT_NAME = "merge_group" ]; then
+ # GitHub populates $GITHUB_REF with:
+ # refs/heads/gh-readonly-queue//pr--
+ #
+ # We strip the "refs/heads/" prefix so we can check out the branch.
+ BRANCH=$(echo $GITHUB_REF | sed -E "s|refs/heads/(.*)|\1|")
+ else
+ echo "Unexpected event name: $GITHUB_EVENT_NAME";
+ exit 1;
+ fi
+
+ cd $GITHUB_WORKSPACE/docs
+ echo "" > .gitmodules
+ rm -rf content/*
+ cd content
+ git submodule add --force -b $BRANCH -- https://github.com/gravitational/teleport
+ cd $GITHUB_WORKSPACE/docs
+ echo "{\"versions\": [{\"name\": \"teleport\", \"branch\": \"$BRANCH\", \"deprecated\": false}]}" > $GITHUB_WORKSPACE/docs/config.json
+ yarn install
+ yarn build-node
- name: Check spelling
- run: cd /src && yarn spellcheck /src/content/docs
+ run: cd $GITHUB_WORKSPACE/docs && yarn spellcheck content/teleport
- name: Lint the docs
- run: cd /src && yarn markdown-lint
+ run: cd $GITHUB_WORKSPACE/docs && yarn markdown-lint
- name: Test the docs build
- run: cd /src && yarn install && yarn build
+ run: cd $GITHUB_WORKSPACE/docs && yarn install && yarn build