Switch to Lychee for link checking

Use Lychee instead of nanoc for link validation
in documentation.

Related https://gitlab.com/gitlab-org/technical-writing/-/issues/979
This commit is contained in:
Evan Read 2024-04-30 22:41:28 +00:00 committed by Robert Marshall
parent 82c190a3e9
commit 34e4de4d7d
3 changed files with 25 additions and 21 deletions

View File

@ -1,2 +1,2 @@
ruby 3.1.4
vale 3.0.7
vale 3.4.1

View File

@ -22,11 +22,11 @@ With some adjustments, GitLab can run comfortably on much lower specifications t
[minimum requirements](https://docs.gitlab.com/ee/install/requirements.html) or the
[reference architectures](https://docs.gitlab.com/ee/administration/reference_architectures/).
The following sections contain advice that will allow GitLab to run in environments
The following sections contain advice that allows GitLab to run in environments
that do not meet the minimum requirements. While most GitLab parts should be
functional with these settings in place, you may experience unexpected degradation
of both product functionality and performance. You should be able to run GitLab
with up to 5 developers with individual Git projects no larger than 100MB.
with up to 5 developers with individual Git projects no larger than 100 MB.
## Minimum requirements for constrained environments
@ -34,8 +34,8 @@ The minimum expected specs with which GitLab can be run are:
- Linux-based system (ideally Debian-based or RedHat-based)
- 4 CPU cores of ARM7/ARM64 or 1 CPU core of AMD64 architecture
- Minimum 2GB of RAM + 1GB of SWAP, optimally 2.5GB of RAM + 1GB of SWAP
- 20GB of available storage
- Minimum 2 GB of RAM + 1 GB of SWAP, optimally 2.5 GB of RAM + 1 GB of swap
- 20 GB of available storage
- A storage with a good random I/O performance with an order of preference:
- [SSD](https://en.wikipedia.org/wiki/Solid-state_drive)
- [eMMC](https://magazine.odroid.com/article/emmc-memory-modules-a-simple-guide/)

View File

@ -235,9 +235,9 @@ rubocop:
- if: '$PIPELINE_TYPE =~ /_MR_PIPELINE$/'
needs: []
# Perform documentation linting on Markdown files
docs-lint markdown:
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-markdown:alpine-3.19-vale-3.0.7-markdownlint-0.39.0-markdownlint2-0.12.1
# Perform content linting on documentation Markdown files
docs-lint content:
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-markdown:alpine-3.19-vale-3.4.1-markdownlint2-0.13.0-lychee-0.14.3
stage: check
cache: {}
needs: []
@ -245,6 +245,19 @@ docs-lint markdown:
script:
# Lint prose
- vale --minAlertLevel error doc
rules:
- if: '$PIPELINE_TYPE =~ /_TEST_PIPELINE$/'
- if: '$PIPELINE_TYPE =~ /_MR_PIPELINE$/'
- if: '$PIPELINE_TYPE == "DOCS_PIPELINE"'
# Perform linting on documentation Markdown files
docs-lint markdown:
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-markdown:alpine-3.19-vale-3.4.1-markdownlint2-0.13.0-lychee-0.14.3
stage: check
cache: {}
needs: []
before_script: []
script:
# Lint Markdown
- markdownlint-cli2 'doc/**/*.md'
rules:
@ -252,25 +265,16 @@ docs-lint markdown:
- if: '$PIPELINE_TYPE =~ /_MR_PIPELINE$/'
- if: '$PIPELINE_TYPE == "DOCS_PIPELINE"'
# Perform link checks on published HTML files
# Perform link checking on documentation Markdown files
docs-lint links:
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-html:alpine-3.19-ruby-3.2.3-a5032206
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-markdown:alpine-3.19-vale-3.4.1-markdownlint2-0.13.0-lychee-0.14.3
stage: check
cache: {}
needs: []
before_script: []
script:
# Put documentation in location expected by nanoc and configured in nanoc.yaml. For more information, see:
# https://gitlab.com/gitlab-org/gitlab-docs/-/blob/eee6c4c03621ff13743828ad74a8f0e8b96dfe7c/nanoc.yaml#L43
- mkdir /tmp/omnibus-gitlab
- mv doc/ /tmp/omnibus-gitlab
- cd /tmp/gitlab-docs
# Build HTML from Markdown
- make compile
# Check the internal links and anchors (in parallel)
# Links from the home page aren't checked because they aren't rendered here. For information, see:
# https://gitlab.com/gitlab-org/gitlab-docs/-/blob/eee6c4c03621ff13743828ad74a8f0e8b96dfe7c/content/index.erb#L6
- "parallel time bundle exec nanoc check ::: internal_links internal_anchors"
# Check Markdown links
- lychee --offline --include-fragments doc/**/*.md
rules:
- if: '$PIPELINE_TYPE =~ /_TEST_PIPELINE$/'
- if: '$PIPELINE_TYPE =~ /_MR_PIPELINE$/'