diff --git a/.github/workflows/doc-tests.yaml b/.github/workflows/doc-tests.yaml
index 5030bebe367b1..4b5536d596ea3 100644
--- a/.github/workflows/doc-tests.yaml
+++ b/.github/workflows/doc-tests.yaml
@@ -3,8 +3,6 @@ run-name: Lint (Docs)
on:
pull_request:
- merge_group:
-
jobs:
changes:
name: Check for relevant changes
@@ -15,9 +13,6 @@ jobs:
changed: ${{ steps.changes.outputs.changed }}
changed_files: ${{ steps.changes.outputs.changed_files }}
steps:
- - name: Checkout
- if: ${{ github.event_name == 'merge_group' }}
- uses: actions/checkout@v4
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
@@ -39,13 +34,20 @@ jobs:
permissions:
contents: read
+ pull-requests: read
steps:
- name: Checkout
uses: actions/checkout@v4
with:
- repository: "gravitational/docs"
- path: "docs"
+ repository: 'gravitational/teleport'
+ path: 'teleport'
+
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ repository: 'gravitational/docs'
+ path: 'docs'
- name: Prepare docs site configuration
# The environment we use for linting the docs differs from the one we
@@ -62,63 +64,43 @@ jobs:
# of gravitational/teleport. We override this in order to build only a
# single version of the docs.
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
-
+ BRANCH=$GITHUB_HEAD_REF;
cd $GITHUB_WORKSPACE/docs
echo "" > .gitmodules
rm -rf content/*
cd content
- # Add a submodule at docs/content/teleport
- git submodule add --force -b $BRANCH -- https://github.com/gravitational/teleport
+ # Rather than using a submodule, copy the teleport source into the
+ # content directory.
+ cp -r $GITHUB_WORKSPACE/teleport $GITHUB_WORKSPACE/docs/content
cd $GITHUB_WORKSPACE/docs
- echo "{\"versions\": [{\"name\": \"teleport\", \"branch\": \"$BRANCH\", \"deprecated\": false}]}" > $GITHUB_WORKSPACE/docs/config.json
+ echo "{\"versions\": [{\"name\": \"teleport\", \"branch\": \"teleport\", \"deprecated\": false}]}" > $GITHUB_WORKSPACE/docs/config.json
+ cat <<< "$(jq '.scripts."git-update" = "echo Skipping submodule update"' package.json)" > package.json
yarn install
yarn build-node
- name: Check spelling
- run: cd $GITHUB_WORKSPACE/docs && yarn spellcheck content/teleport
-
- - name: Lint the docs
- run: cd $GITHUB_WORKSPACE/docs && yarn markdown-lint
+ working-directory: 'docs'
+ run: yarn spellcheck content/teleport
- - name: Test the docs build
- run: cd $GITHUB_WORKSPACE/docs && yarn install && yarn build
-
- stylecheck:
- name: Lint docs prose style
- runs-on: ubuntu-latest
- needs: changes
- if: ${{ !startsWith(github.head_ref, 'dependabot/') && needs.changes.outputs.changed == 'true' && github.event_name == 'pull_request' }}
- permissions:
- pull-requests: read
- steps:
- - name: Check out the teleport repo
- uses: actions/checkout@v4
- with:
- repository: "gravitational/teleport"
+ - name: Lint docs formatting
+ working-directory: 'docs'
+ run: yarn markdown-lint
- - name: Run the linter
- uses: errata-ai/vale-action@38bf078c328061f59879b347ca344a718a736018 # v2.1.0
+ - name: Lint docs prose
+ uses: 'errata-ai/vale-action@38bf078c328061f59879b347ca344a718a736018' # v2.1.0
with:
- version: 2.30.0
+ version: 3.8.0
# Take the comma-separated list of files returned by the "Check for
# relevant changes" job.
- separator: ","
+ separator: ','
+ workdir: '${{ github.workspace }}/docs/content/teleport'
files: ${{ needs.changes.outputs.changed_files }}
# Restrict the linter to lines modified/added by a PR, not entire
# changed files.
filter_mode: added
fail_on_error: true
- vale_flags: "--config=docs/.vale.ini"
+ vale_flags: '--config=${{ github.workspace }}/docs/content/teleport/docs/.vale.ini'
+ - name: Test the docs build
+ working-directory: 'docs'
+ run: yarn install && yarn build
diff --git a/docs/.vale.ini b/docs/.vale.ini
index 9620898c3adba..024986fb2b30a 100644
--- a/docs/.vale.ini
+++ b/docs/.vale.ini
@@ -6,3 +6,4 @@ mdx = md
[*.md]
BasedOnStyles = messaging,examples,3rd-party-products,structure
+CommentDelimiters = "{/*,*/}"
diff --git a/docs/vale-styles/3rd-party-products/aws-vs-amazon.yml b/docs/vale-styles/3rd-party-products/aws-vs-amazon.yml
index c52b383736a42..ed6ede32b8bcc 100644
--- a/docs/vale-styles/3rd-party-products/aws-vs-amazon.yml
+++ b/docs/vale-styles/3rd-party-products/aws-vs-amazon.yml
@@ -15,8 +15,7 @@
# /^AWS /{ print gensub(/AWS (.*)/," \"Amazon \\1\"","1") ": " $0}'
extends: substitution
message: "Incorrect AWS product name. Use %s instead of %s."
-scope: raw
-level: warning
+level: error
ignorecase: true
swap:
"Amazon Account Management": AWS Account Management
diff --git a/docs/vale-styles/examples/teleport-accounts.yml b/docs/vale-styles/examples/teleport-accounts.yml
index 1b487a3398dee..dd5d49e21136b 100644
--- a/docs/vale-styles/examples/teleport-accounts.yml
+++ b/docs/vale-styles/examples/teleport-accounts.yml
@@ -1,8 +1,8 @@
extends: substitution
message: "Incorrect example of a Teleport account URL. Use %s instead of %s."
-level: error
+scope: raw # So we can catch instances in code fences
+level: warning
scope:
- - raw
ignorecase: true
swap:
- 'https://(?!status|example)\w+.teleport\.sh': 'example.teleport.sh (or status.teleport.sh for the status page)'
diff --git a/docs/vale-styles/messaging/edition-names.yml b/docs/vale-styles/messaging/edition-names.yml
index 398f678aeb30f..c0b355f07d692 100644
--- a/docs/vale-styles/messaging/edition-names.yml
+++ b/docs/vale-styles/messaging/edition-names.yml
@@ -1,13 +1,8 @@
extends: existence
scope:
- # Using the raw scope so we can catch instances in TabItem labels.
- - raw
message: '"%s" is no longer a recognized Teleport edition. Use "Teleport Enterprise (Self-Hosted)" or "Teleport Enterprise (Cloud)" instead. If the hosting type is not important in a given sentence, there is no need to specify it, and you can use "Teleport Enterprise".'
level: error
-ignorecase: false
+ignorecase: true
tokens:
- # Adding the pattern '[ \t]*\n?[ \t]*' between each word since we are using the raw
- # scope. This lets use catch violations that span two lines (i.e., that occupy
- # the same paragraph).
- - 'Teleport[ \t]*\n?[ \t]*Cloud'
- - 'Teleport[ \t]*\n?[ \t]*Enterprise[ \t]*\n?[ \t]*Cloud'
+ - 'Teleport Cloud'
+ - 'Teleport Enterprise Cloud'
diff --git a/docs/vale-styles/messaging/subjective-terms.yml b/docs/vale-styles/messaging/subjective-terms.yml
index 4e41d520e31f2..02285f2a41421 100644
--- a/docs/vale-styles/messaging/subjective-terms.yml
+++ b/docs/vale-styles/messaging/subjective-terms.yml
@@ -1,7 +1,7 @@
extends: existence
link: "https://github.com/gravitational/docs/blob/main/docs-contributors/style-guide.md#voice"
message: "Avoid using '%s' as a qualifier, since it is subject to interpretation. Use more technically precise terms instead."
-level: error
+level: warning
ignorecase: true
tokens:
- "powerful(ly)?"
diff --git a/docs/vale-styles/structure/architecture-h2.yml b/docs/vale-styles/structure/architecture-h2.yml
index 4889bd4aaf96d..297571def5150 100644
--- a/docs/vale-styles/structure/architecture-h2.yml
+++ b/docs/vale-styles/structure/architecture-h2.yml
@@ -6,7 +6,7 @@
# This style defines a how-to guide as any guide that includes at least one H2
# beginning "Step [0-9]".
extends: script
-level: error
+level: warning
message: "In a how-to guide, the first H2-level section must be called `## How it works`. Use this section to include 1-3 paragraphs that describe the high-level architecture of the setup shown in the guide, i.e., which infrastructure components are involved and how they communicate. If there is already architectural information in the guide, include it in a `## How it works` section."
scope: raw
script: |
diff --git a/docs/vale-styles/structure/step-numbering.yml b/docs/vale-styles/structure/step-numbering.yml
index ce5c584a84021..68ed257ab2b6b 100644
--- a/docs/vale-styles/structure/step-numbering.yml
+++ b/docs/vale-styles/structure/step-numbering.yml
@@ -6,7 +6,7 @@
# such as the presence of step headings in how-to guides and the formatting of
# step headings.
extends: script
-level: error
+level: warning
message: Guides that include H2 sections named after numbered steps (e.g., "Step 1/5") must have the expected sequence of numbers and accurate total numbers of steps. This heading either has an unexpected step number or an unexpected total number of steps.
scope: raw
script: |