Skip to content

Commit 40d5ddd

Browse files
committed
Workflows: Download and cache Godot Engine for build
Rather than relying on downloading and executing in a third-party container, we can just grab Godot Engine and the export templates directly from the upstream release page. We cache these downloads so future runs have the binaries and templates (the latter of which are quite large) available right away for the run.
1 parent ca69811 commit 40d5ddd

File tree

2 files changed

+38
-7
lines changed

2 files changed

+38
-7
lines changed

.github/workflows/github-pages.yml

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,51 @@ jobs:
4646
- check
4747
if: ${{ needs.check.outputs.enabled }}
4848
runs-on: ubuntu-latest
49-
container:
50-
image: barichello/godot-ci:4.3
5149
steps:
5250
- name: Checkout
5351
uses: actions/checkout@v4
5452
with:
5553
lfs: true
5654

57-
- name: Set up export templates
55+
- name: Cache Godot Engine downloads
56+
id: cache-godot
57+
uses: actions/cache@v4
58+
with:
59+
path: |
60+
build/godot
61+
build/._sc_
62+
build/editor_data/export_templates/${{ env.GODOT_VERSION }}.stable
63+
key: godot-${{ env.GODOT_VERSION }}
64+
65+
- name: Download Godot Engine from GitHub release
66+
id: download
67+
if: steps.cache-godot.outputs.cache-hit != 'true'
5868
run: |
59-
mkdir -v -p ~/.local/share/godot/export_templates/
60-
mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
69+
mkdir -p build && cd build
70+
71+
# Download Godot Engine itself
72+
wget https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip && \
73+
unzip Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip && \
74+
mv Godot_v${GODOT_VERSION}-stable_linux.x86_64 godot
75+
76+
# Download export templates
77+
mkdir -p editor_data/export_templates
78+
wget https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_export_templates.tpz && \
79+
unzip Godot_v${GODOT_VERSION}-stable_export_templates.tpz && \
80+
mv templates editor_data/export_templates/${GODOT_VERSION}.stable
81+
82+
# Tell Godot Engine to run in "self-contained" mode so it looks for
83+
# templates here instead of in ~/.local/share/godot/
84+
touch ._sc_
6185
6286
- name: Web Build
6387
run: |
64-
mkdir -v -p build/web
65-
godot --headless --verbose --export-release "Web" ./build/web/index.html
88+
mkdir -v -p build/web && cd build
89+
90+
# Note that the export path can be confusing; it's relative to the
91+
# Godot project path, NOT necessarily the current directory or Godot
92+
# binary location
93+
./godot --headless --verbose --path ../ --export-release "Web" ./build/web/index.html
6694
6795
- name: Upload Artifact
6896
uses: actions/upload-pages-artifact@v3

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
# Godot 4+ specific ignores
22
.godot/
3+
4+
# Working directory
5+
build/

0 commit comments

Comments
 (0)