Documentation and UI link tests
For testing:
- Documentation links to other documentation, we use Lychee and sometimes
nanoc. - Links to documentation from the GitLab UI, we use
haml-lintandeslint.
Run documentation link tests locally
To run documentation link tests locally, you can either:
- Run a link check for a single project that contains documentation.
- Run a 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>it 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
gitlab-docsclone. You can runmake clone-all-docs-projectsto clone any projects you don't have in that location. If you want to update the documentation projects, runmake update-all-projects. - Go to the
gitlab-docsdirectory. - Run
make internal-links-and-anchors-check, which builds the GitLab Docs site withnanocand checks links on the built site by usingnanoc.
Run UI link tests locally
To test documentation links in the GitLab UI locally, you need to run both haml-lint and eslint.
Run haml-lint tests
-
Open the
gitlabdirectory in a terminal window. -
Run:
bundle exec haml-lint -i DocumentationLinks
If you receive an error the first time you run this test, run bundle install, which
installs the dependencies for GitLab, and try again.
If you don't want to install all of the dependencies to test the links, you can:
-
Open the
gitlabdirectory in a terminal window. -
Install
haml-lint:gem install haml_lint -
Run:
haml-lint -i DocumentationLinks
If you manually install haml-lint with this process, it does not update automatically
and you should make sure your version matches the version used by GitLab.
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.