docs: add Freshservice Pro integration reference #2219
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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[@]}" | |