Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/scripts/dependencies.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# this file exists so that Renovate can auto-update docker image versions that are then used elsewhere

FROM lycheeverse/lychee:sha-2aa22f8@sha256:2e3786630482c41f9f2dd081e06d7da1c36d66996e8cf6573409b8bc418d48c4 AS lychee
35 changes: 35 additions & 0 deletions .github/scripts/link-check.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash

set -e

export MSYS_NO_PATHCONV=1 # for Git Bash on Windows

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LYCHEE_CONFIG="$SCRIPT_DIR/../../.lychee.toml"
DEPENDENCIES_DOCKERFILE="$SCRIPT_DIR/dependencies.dockerfile"

# Extract lychee version from dependencies.dockerfile
LYCHEE_VERSION=$(grep "FROM lycheeverse/lychee:" "$DEPENDENCIES_DOCKERFILE" | sed 's/.*FROM lycheeverse\/lychee:\([^ ]*\).*/\1/')

# Build the lychee command with optional GitHub token
CMD="lycheeverse/lychee:$LYCHEE_VERSION --verbose --config $(basename "$LYCHEE_CONFIG")"

# Add GitHub token if available
if [[ -n "$GITHUB_TOKEN" ]]; then
CMD="$CMD --github-token $GITHUB_TOKEN"
fi

# Add the target directory
CMD="$CMD ."

# Determine if we should allocate a TTY
DOCKER_FLAGS="--rm --init"
if [[ -t 0 ]]; then
DOCKER_FLAGS="$DOCKER_FLAGS -it"
else
DOCKER_FLAGS="$DOCKER_FLAGS -i"
fi

# Run lychee with proper signal handling
# shellcheck disable=SC2086
exec docker run $DOCKER_FLAGS -v "$(dirname "$LYCHEE_CONFIG")":/data -w /data $CMD
2 changes: 1 addition & 1 deletion .github/workflows/build-daily-no-build-cache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
# muzzle is not included here because it doesn't use gradle cache anyway and so is already covered
# by the normal daily build

# markdown-link-check and misspell-check are not included here because they don't use gradle cache
# link-check and misspell-check are not included here because they don't use gradle cache
# anyway and so are already covered by the normal daily build

workflow-notification:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build-daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ jobs:
shell-script-check:
uses: ./.github/workflows/reusable-shell-script-check.yml

markdown-link-check:
uses: ./.github/workflows/reusable-markdown-link-check.yml
link-check:
uses: ./.github/workflows/reusable-link-check.yml

markdown-lint-check:
uses: ./.github/workflows/reusable-markdown-lint-check.yml
Expand All @@ -43,7 +43,7 @@ jobs:
- common
- test-latest-deps
- muzzle
- markdown-link-check
- link-check
- misspell-check
if: always()
uses: ./.github/workflows/reusable-workflow-notification.yml
Expand All @@ -53,6 +53,6 @@ jobs:
needs.common.result == 'success' &&
needs.test-latest-deps.result == 'success' &&
needs.muzzle.result == 'success' &&
needs.markdown-link-check.result == 'success' &&
needs.link-check.result == 'success' &&
needs.misspell-check.result == 'success'
}}
4 changes: 2 additions & 2 deletions .github/workflows/build-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ jobs:
uses: ./.github/workflows/reusable-shell-script-check.yml

# this is not a required check to avoid blocking pull requests if external links break
markdown-link-check:
markdown-check:
# release branches are excluded because the README.md javaagent download link has to be updated
# on release branches before the release download has been published
if: "!startsWith(github.ref_name, 'release/') && !startsWith(github.base_ref, 'release/')"
uses: ./.github/workflows/reusable-markdown-link-check.yml
uses: ./.github/workflows/reusable-link-check.yml

markdown-lint-check:
uses: ./.github/workflows/reusable-markdown-lint-check.yml
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@ jobs:
if: "!startsWith(github.ref_name, 'release/')"
uses: ./.github/workflows/reusable-shell-script-check.yml

markdown-link-check:
link-check:
# release branches are excluded to avoid unnecessary maintenance if external links break
# (and also because the README.md javaagent download link has to be updated on release branches
# before the release download has been published)
if: "!startsWith(github.ref_name, 'release/')"
uses: ./.github/workflows/reusable-markdown-link-check.yml
uses: ./.github/workflows/reusable-link-check.yml

markdown-lint-check:
# release branches are excluded
Expand All @@ -58,7 +58,7 @@ jobs:
publish-snapshots:
needs:
# intentionally not blocking snapshot publishing on test-latest-deps, muzzle,
# markdown-link-check, or misspell-check
# link-check, or misspell-check
- common
runs-on: ubuntu-latest
# skipping release branches because the versions in those branches are not snapshots
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/reusable-link-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Reusable - Link check

on:
workflow_call:

permissions:
contents: read

jobs:
link-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Link check
env:
GITHUB_TOKEN: ${{ github.token }}
run: ./.github/scripts/link-check.sh
20 changes: 0 additions & 20 deletions .github/workflows/reusable-markdown-link-check.yml

This file was deleted.

7 changes: 1 addition & 6 deletions lychee.toml → .lychee.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@ retry_wait_time = 5
max_retries = 6
max_concurrency = 4

# Stealth
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:128.0) Gecko/20100101 Firefox/128.0"

# Check fragments in links
# Check link anchors
include_fragments = true

# excluding links to pull requests and issues is done for performance
Expand All @@ -17,5 +14,3 @@ exclude = [
'^https://softwareengineering.stackexchange.com/questions/29727.*',
'^https://central.sonatype.com/service/rest/repository/browse/maven-snapshots/io/opentelemetry/$',
]


Loading