aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/check-links.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/check-links.yml')
-rw-r--r--.github/workflows/check-links.yml54
1 files changed, 54 insertions, 0 deletions
diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml
new file mode 100644
index 0000000..97ddc8a
--- /dev/null
+++ b/.github/workflows/check-links.yml
@@ -0,0 +1,54 @@
+name: Check links
+
+"on":
+ pull_request:
+ branches: [main]
+ paths:
+ - "**.md"
+ - .github/workflows/check-links.yaml
+ - flake.lock
+ push:
+ branches: [main]
+ paths:
+ - "**.md"
+ - .github/workflows/check-links.yaml
+ - flake.lock
+ schedule:
+ # Run once a month on the 28th.
+ - cron: "0 0 28 * *"
+ workflow_dispatch:
+
+jobs:
+ lychee:
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ steps:
+ - uses: actions/checkout@v4
+ - uses: DeterminateSystems/nix-installer-action@v16
+ - uses: DeterminateSystems/magic-nix-cache-action@v8
+ - name: Build the site
+ run: nix build --print-build-logs
+ - name: Restore lychee cache
+ uses: actions/cache/restore@v4
+ with:
+ path: .lycheecache
+ key: lychee-cache
+ - name: Check links
+ id: lychee
+ uses: lycheeverse/lychee-action@v2
+ with:
+ fail: false
+ - name: Save lychee cache
+ uses: actions/cache/save@v4
+ if: always()
+ with:
+ key: lychee-cache
+ path: .lycheecache
+ - name: Create issue
+ if: steps.lychee.outputs.exit_code != 0
+ uses: peter-evans/create-issue-from-file@v5
+ with:
+ title: "[lychee] Broken links"
+ content-filepath: ./lychee/out.md
+ labels: bug, automated issue