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.

9 changes: 9 additions & 0 deletions lychee.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# configuration options that were used in the github workflow
include_fragments = true
max_retries = 6
max_concurrency = 1

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