Documentation and UI link tests
For testing:
- Relative links between documentation files, we use Lychee.
- Links to documentation from the GitLab UI, we use
haml-lint,eslint, andrubocop.
Run the relative link test locally
To run the relative link test locally, you can either:
- Run the link check for a single project that contains documentation.
- Run the link check across entire local copy of the GitLab documentation site.
Check a single project
To check the links on a single project:
- Install Lychee.
- Change into the root directory of the project.
- Run
lychee --offline --include-fragments <doc_directory>, where<doc_directory>is the directory that contains documentation to check. For example:lychee --offline --include-fragments doc.
Check all GitLab Docs site projects
To check links on the entire GitLab documentation site:
- Make sure you have all the documentation projects cloned in the same directory as your
docs-gitlab-comclone. You can runmake clone-docs-projectsto clone any projects you don’t have in that location. - Go to the
docs-gitlab-comdirectory. - Run
hugo, which builds the GitLab Docs site. - Run
lychee --offline publicto check links.
Run UI link tests locally
To test documentation links from GitLab code files locally, you can run:
eslint: For frontend (.jsand.vue) files.rubocop: For.rband.hamlfiles.
Run eslint tests
Open the
gitlabdirectory in a terminal window.Run:
scripts/frontend/lint_docs_links.mjs
If you receive an error the first time you run this test, run yarn install, which
installs the dependencies for GitLab, and try again.
Run rubocop tests
Open the
gitlabdirectory in a terminal window.To run the check on all Ruby files:
rubocop --only Gitlab/DocumentationLinks/LinkTo run the check on a single Ruby file:
rubocop --only Gitlab/DocumentationLinks/Link path/to/ruby/file.rb