Skip to content

Commit

Permalink
Merge pull request #3295 from vespa-engine/link-checker-workflow-conf…
Browse files Browse the repository at this point in the history
…iguration

build(link-checker): Add GitHub Actions workflow for link checking on documentation
  • Loading branch information
kkraune committed Aug 7, 2024
2 parents 946949d + c207ad4 commit d72ae1e
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 43 deletions.
66 changes: 66 additions & 0 deletions .github/workflows/link-checker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Link Checker

on:
workflow_dispatch:
schedule:
- cron: "2 0 * * *"

# START Temporary for testing.
pull_request:
branches: [main]
push:
branches: ["link-checker-workflow-configuration"]
# END Temporary for testing.

defaults:
run:
# Specify to ensure "pipefail and errexit" are set.
# Ref: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#defaultsrunshell
shell: bash

jobs:
link-checker-documentation:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1
bundler-cache: true

- name: check links
env:
LANG: "C.UTF-8"
run: |
bundle exec jekyll build
#
# Remove the redirect-files before link-check
find _site/en _site/documentation -name \*.html | \
xargs grep -l "Click here if you are not redirected." | xargs rm
#
# htmlproofer does not check links inside <code>-elements
find _site -name \*.html | xargs sed -i.orig 's/<code[^>]*>//g; s/<\/code>//g; s/<pre[^>]*>//g; s/<\/pre>//g;'
find _site -name \*.orig | xargs rm
#
bundle exec htmlproofer \
--assume-extension .html \
--no-enforce-https \
--no-check-external-hash \
--allow-missing-href \
--ignore-files '/playground/index.html/' \
--ignore-urls '\
/localhost:8080/,\
/docs.vespa.ai/playground/,\
/javadoc.io.*#/,\
/readthedocs.io.*#/,\
/linux.die.net/,\
/arxiv.org/,\
/hub.docker.com/r/,\
/platform.openai.com/' \
--typhoeus '{"connecttimeout": 10, "timeout": 30, "accept_encoding": "zstd,br,gzip,deflate"}' \
--hydra '{"max_concurrency": 1}' \
--swap-urls '(https\://github.com.*/master/.*)#.*:\1,(https\://github.com.*/main/.*)#.*:\1' \
_site
45 changes: 2 additions & 43 deletions screwdriver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,47 +19,6 @@ shared:
ln -sf /opt/vespa-cli_${VESPA_CLI_VERSION}_linux_amd64/bin/vespa /usr/local/bin/
jobs:
link-checker-documentation:
image: ruby:3.1
annotations:
screwdriver.cd/buildPeriodically: H 2 * * *
steps:
- install-bundler: |
gem update --system 3.3.3
gem install bundler
- check-links: |
export LANG=C.UTF-8
bundle install
bundle exec jekyll build
#
# Remove the redirect-files before link-check
find _site/en _site/documentation -name \*.html | \
xargs grep -l "Click here if you are not redirected." | xargs rm
#
# htmlproofer does not check links inside <code>-elements
find _site -name \*.html | xargs sed -i.orig 's/<code[^>]*>//g; s/<\/code>//g; s/<pre[^>]*>//g; s/<\/pre>//g;'
find _site -name \*.orig | xargs rm
#
bundle exec htmlproofer \
--assume-extension .html \
--no-enforce-https \
--no-check-external-hash \
--allow-missing-href \
--ignore-files '/playground/index.html/' \
--ignore-urls '\
/localhost:8080/,\
/docs.vespa.ai/playground/,\
/javadoc.io.*#/,\
/readthedocs.io.*#/,\
/linux.die.net/,\
/arxiv.org/,\
/hub.docker.com/r/,\
/platform.openai.com/' \
--typhoeus '{"connecttimeout": 10, "timeout": 30, "accept_encoding": "zstd,br,gzip,deflate"}' \
--hydra '{"max_concurrency": 1}' \
--swap-urls '(https\://github.com.*/master/.*)#.*:\1,(https\://github.com.*/main/.*)#.*:\1' \
_site
verify-guides:
requires: [~pr, ~commit]
image: vespaengine/vespa-build-almalinux-8:latest
Expand Down Expand Up @@ -109,7 +68,7 @@ jobs:
secrets:
- VESPA_DOC_DEPLOY_KEY
environment:
GIT_SSH_COMMAND: "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
GIT_SSH_COMMAND: "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
steps:
- update-to-latest: |
# must checkout the repo again using ssh for the credentials to work
Expand Down Expand Up @@ -190,7 +149,7 @@ jobs:
secrets:
- VESPA_DOC_DEPLOY_KEY
environment:
GIT_SSH_COMMAND: "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
GIT_SSH_COMMAND: "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
steps:
- update-to-latest: |
# Ref https://github.com/vespa-engine/vespa/blob/master/metrics/src/main/java/ai/vespa/metrics/docs/MetricDocumentation.java
Expand Down

0 comments on commit d72ae1e

Please sign in to comment.