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