Skip to content

Commit ad9b313

Browse files
committed
GitHub Actions: Check URLs using lychee
This makes it possible to be aware of dead links and replace them with other resources (such as archived versions) as soon as possible.
1 parent fdb2f50 commit ad9b313

File tree

23 files changed

+91
-6
lines changed

23 files changed

+91
-6
lines changed

.github/workflows/check_urls.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: 🌐 Check URLs
2+
on:
3+
push:
4+
pull_request:
5+
schedule:
6+
# Every day at 18:00 UTC.
7+
# URLs can decay over time. Setting up a schedule makes it possible to be warned
8+
# about dead links as soon as possible.
9+
- cron: "0 18 * * *"
10+
11+
jobs:
12+
check-urls:
13+
runs-on: ubuntu-24.04
14+
steps:
15+
16+
- uses: actions/checkout@v4
17+
18+
- name: Restore lychee cache
19+
uses: actions/cache@v4
20+
with:
21+
path: .lycheecache
22+
key: cache-lychee-${{ github.sha }}
23+
restore-keys: cache-lychee-
24+
25+
- name: Run lychee
26+
uses: lycheeverse/lychee-action@v2
27+
with:
28+
args: >
29+
--base .
30+
--no-progress
31+
--cache
32+
--max-cache-age 1d
33+
"**/*.md" "**/*.gd" "**/*.cs" "**/*.tscn" "**/*.tres" "**/*.html"
34+
35+
- name: Fail if there were link errors
36+
run: exit ${{ steps.lc.outputs.exit_code }}

.lycheeignore

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Don't read Godot's own URL schemes as web URLs.
2+
user:\/\/.*
3+
res:\/\/.*
4+
uid:\/\/.*
5+
6+
# Don't read WebSockets or TCP URLs as web URLs.
7+
ws(s?):\/\/.*
8+
tcp:\/\/.*
9+
10+
# Security checks prevent checking the URLs of these websites automatically,
11+
# typically returning 403 errors.
12+
.*asecuritysite\.com.*
13+
.*intel\.com.*
14+
.*reddit\.com.*
15+
16+
# Don't check URLs from these websites due to frequent rate limits (error 429) or timeouts.
17+
.*adobe\.com.*
18+
.*gamedevartisan\.com.*
19+
.*github\.com.*
20+
.*gnu\.org.*
21+
.*loopit\.dk.*
22+
.*meta\.com.*
23+
.*sourceforge\.io.*
24+
25+
# Not a valid URL with the GET method, which lychee always sends.
26+
# Mentioned in the class reference.
27+
.*httpbin\.org\/post
28+
29+
# Class reference mentions `example.com/index.php` in an example, which is 404.
30+
.*example\.com.*

3d/ik/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Renderer: Forward+
1111
## How does it work?
1212

1313
This demo shows how to implement IK using two different methods. One uses the
14-
[`SkeletonIK`](https://docs.godotengine.org/en/latest/classes/class_skeletonik.html)
14+
[`SkeletonIK3D`](https://docs.godotengine.org/en/latest/classes/class_skeletonik3d.html)
1515
node which is built into Godot. The other method is using a script
1616
called FABRIK (inside of the SADE plugin) for inverse kinematics.
1717

3d/platformer/coin/coin.gd.uid

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
uid://b2kqvu7a5kiev

3d/platformer/enemy/enemy.gd.uid

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
uid://dwssf05sbkfak
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
uid://c4p5enna2foh1
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
uid://bd03i5s1ufxt4

3d/platformer/player/player.gd.uid

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
uid://dl2fniviqap3d

3d/truck_town.zip

5.8 MB
Binary file not shown.

3d/truck_town/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ Check out this demo on the asset library: https://godotengine.org/asset-library/
2929
The base vehicle uses a
3030
[`VehicleBody3D`](https://docs.godotengine.org/en/latest/classes/class_vehiclebody3d.html)
3131
node. The trailer truck is tied together using a
32-
[`ConeJointTwist`](https://docs.godotengine.org/en/latest/classes/class_conetwistjoint.html)
32+
[`ConeJointTwist3D`](https://docs.godotengine.org/en/latest/classes/class_conetwistjoint3d.html)
3333
node, and the tow truck is tried together using a chain made of
3434
[`RigidBody3D`](https://docs.godotengine.org/en/latest/classes/class_rigidbody3d.html)
3535
nodes which are pinned together using
36-
[`PinJoint`](https://docs.godotengine.org/en/latest/classes/class_pinjoint.html) nodes.
36+
[`PinJoint3D`](https://docs.godotengine.org/en/latest/classes/class_pinjoint3d.html) nodes.
3737

3838
## Screenshots
3939

0 commit comments

Comments
 (0)