diff --git a/.github/workflows/link-checker-pr.yml b/.github/workflows/link-checker-pr.yml index eff16d3c..4ea60d00 100644 --- a/.github/workflows/link-checker-pr.yml +++ b/.github/workflows/link-checker-pr.yml @@ -1,28 +1,37 @@ name: Link Checker for Pull requests on: pull_request jobs: + changedFiles: + runs-on: ubuntu-latest + outputs: + files: ${{ steps.changed-markdown-files.outputs.all_changed_files }} + steps: + - uses: actions/checkout@v4 + - name: Get changed markdown files + id: changed-markdown-files + uses: tj-actions/changed-files@v45 + with: + # Avoid using single or double quotes for multiline patterns + files: | + **.md + matrix: true + linkChecker: runs-on: ubuntu-latest + needs: changedFiles + strategy: + matrix: + file: ${{ fromJSON(needs.changedFiles.outputs.files) }} + fail-fast: false steps: - - uses: actions/checkout@v3 - - id: changed_files - uses: jitterbit/get-changed-files@v1 - - name: Link Checker - uses: lycheeverse/lychee-action@v1.7.0 - id: lychee - env: - GITHUB_TOKEN: ${{secrets.TOKEN_GITHUB}} + - uses: actions/checkout@v4 with: - args: ${{ steps.changed_files.outputs.all }} - - name: Count broken links + fetch-depth: 2 + - name: download Lychee + run: | + wget https://github.com/lycheeverse/lychee/releases/download/nightly/lychee-x86_64-unknown-linux-gnu.tar.gz + tar xzf lychee-x86_64-unknown-linux-gnu.tar.gz + - name: Check all this file's additions for broken links run: | - broken_max=10 - broken_count=$(printf "%d" $(grep "🚫 Errors" lychee/out.md | cut -d'|' -f3)) - if [ "$broken_count" -gt "$broken_max" ]; then - echo "Number of broken links (${broken_count}) exceeds maximum allowed number (${broken_max})." - cat lychee/out.md - exit 1 - else - echo "Number of broken links (${broken_count}) less than or equal to maximum allowed number (${broken_max})." - exit 0 - fi + export base_sha=$(git rev-parse ${{ github.sha }}^) + git diff -U0 ${base_sha} ${{ github.event.pull_request.head.sha }} -- ${{ matrix.file }} | grep -v "+++" | grep "^+" | cut -c 2- | ./lychee - diff --git a/_sidebar.md b/_sidebar.md index df0e2c25..02ab9d1a 100644 --- a/_sidebar.md +++ b/_sidebar.md @@ -16,4 +16,4 @@ * [R](/best_practices/language_guides/r.md) * [C and C++](/best_practices/language_guides/ccpp.md) * [Fortran](/best_practices/language_guides/fortran.md) -* [Contributing to this Guide](/CONTRIBUTING.md) +* [Contributing to this Guide](/CONTRIBUTING.md) \ No newline at end of file