Skip to content
Closed
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
35 changes: 35 additions & 0 deletions .github/scripts/check-links.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 ./lychee.toml"

# 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
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
6 changes: 3 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,8 @@ jobs:
name: integration-test-results
path: jmx-metrics/build/reports/tests/integrationTest

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

markdown-lint-check:
uses: ./.github/workflows/reusable-markdown-lint.yml
Expand All @@ -142,7 +142,7 @@ jobs:
# and so would not short-circuit if used in the second-last position
name: publish-snapshots${{ (github.ref_name != 'main' || github.repository != 'open-telemetry/opentelemetry-java-contrib') && ' (skipped)' || '' }}
needs:
# intentionally not blocking snapshot publishing on markdown-link-check or misspell-check
# intentionally not blocking snapshot publishing on check-links or misspell-check
- build
- integration-test
runs-on: ubuntu-latest
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/reusable-check-links.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Reusable - Check links

on:
workflow_call:

permissions:
contents: read

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

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

This file was deleted.

10 changes: 10 additions & 0 deletions lychee.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
max_retries = 6
max_concurrency = 1

# Check fragments in links
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why did you include this comment?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right - I included an extra comment that wasn't in the original GitHub workflow. The original workflow only had the comment about excluding links for performance reasons. I've removed the unnecessary comment in 5b58f1a.

include_fragments = true

# excluding links to pull requests and issues is done for performance
exclude = [
'^https://github.com/open-telemetry/opentelemetry-java-contrib/(issues|pull)/\d+$',
]