Uses linkchecker during the
build CI test to look for broken links in our HTML.
After building the site, it uses the inbuilt ruby webserver and runs it on localhost:4000. This is then crawled by linkchecker.
It doesn't do anything special with the output, because linkchecker returns with a non zero exit code if it fails, which correctly trips up CI.
It ignores the following URLs:
- Which are external to the website. This could be enabled in the future, but will have a big performance hit.
fdroid-app:URLs, due to jekyll-fdroid#19 (closed).
- Ending in
/news/, because that aggregates individual news posts which will get checked anyway.
- Posts from 2015 or earlier (feel free to fix these at some point, but can't be bothered right now).
.*/packages/.*due to #75 (closed).
- Only ends up checking the
/en/site, because the rest will have the same links generated anyway. Nothing is stopping the crawler from finding a link to the other locales and crawling them, but it doesn't find any.
Here is an example of a failed pipeline which I used to fix up the missing links.
Fixes #74 (closed).