Skip to content

docs: add Freshservice Pro integration reference #2219

docs: add Freshservice Pro integration reference

docs: add Freshservice Pro integration reference #2219

name: "Docs: Dry Run Production Deployment"
on:
pull_request:
paths:
- 'docs/**'
- '.github/workflows/*'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Setup Hugo
uses: peaceiris/actions-hugo@2752ce1d29631191ea3f27c23495fa06139a5b78 # v3.2.1
with:
hugo-version: '0.153.4'
extended: true
- name: Setup Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '24.18.0' # TODO: Renovate helper might not be needed here - needs to be fully tested
- name: Cache dependencies
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
submodules: recursive
fetch-depth: 0
- name: Test the build process
env:
HUGO_ENVIRONMENT: production
HUGO_ENV: production
run: cd docs && npm ci && hugo --minify --gc --config config/production/hugo.toml
- name: Check internal links
uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2
with:
# --remap makes lychee resolve absolute docs.defectdojo.com URLs against
# the freshly built site, so absURL-rendered links (e.g. nav menu items)
# are verified as 404s instead of being skipped as remote URLs.
args: >-
--offline --no-progress
--root-dir ${{ github.workspace }}/docs/public
--remap "https://docs.defectdojo.com file://${{ github.workspace }}/docs/public"
'./docs/public/**/*.html'
fail: true
- name: Check in-app docs help links
# Find every file under dojo/ that hardcodes a docs.defectdojo.com URL
# (templates, settings, etc.) and check those links against the freshly
# built site. --remap turns the absolute docs URLs into local file lookups;
# --exclude '%7[BD]' drops URL-encoded Django template tags ({% ... %})
# so only real external docs URLs are checked. lychee is on $PATH from
# the previous lychee-action step.
run: |
set -euo pipefail
mapfile -t files < <(grep -rl 'docs\.defectdojo\.com' dojo/ \
--include='*.html' --include='*.py' --include='*.tpl')
if [ "${#files[@]}" -eq 0 ]; then
echo "No files reference docs.defectdojo.com — pattern is stale." >&2
exit 1
fi
printf 'Checking in-app docs links in:\n'
printf ' %s\n' "${files[@]}"
lychee --offline --no-progress \
--root-dir "${GITHUB_WORKSPACE}/docs/public" \
--remap "https://docs.defectdojo.com file://${GITHUB_WORKSPACE}/docs/public" \
--exclude '%7[BD]' \
"${files[@]}"