Skip to content

Commit 23ba457

Browse files
committed
Update build scripts.
1 parent 17caa75 commit 23ba457

19 files changed

+979
-711
lines changed

.github/CODEOWNERS

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
# Lines starting with '#' are comments.
2+
# Each line is a file pattern followed by one or more owners.
3+
# Owners can be @users, @org/teams or emails
4+
5+
# Buildsystem
6+
7+
.* @godotengine/buildsystem
8+
.github/ @godotengine/buildsystem
9+
*.py @godotengine/buildsystem
10+
SConstruct @godotengine/buildsystem
11+
SCsub @godotengine/buildsystem
12+
13+
# Core
14+
15+
/core/ @godotengine/core
16+
/core/crypto/ @godotengine/network
17+
/core/debugger/ @godotengine/debugger
18+
/core/extension/ @godotengine/gdextension
19+
/core/input/ @godotengine/input
20+
21+
# Doc
22+
23+
/doc/ @godotengine/documentation
24+
doc_classes/* @godotengine/documentation
25+
26+
# Drivers
27+
28+
## Audio
29+
/drivers/alsa/ @godotengine/audio
30+
/drivers/alsamidi/ @godotengine/audio
31+
/drivers/coreaudio/ @godotengine/audio
32+
/drivers/coremidi/ @godotengine/audio
33+
/drivers/pulseaudio/ @godotengine/audio
34+
/drivers/wasapi/ @godotengine/audio
35+
/drivers/winmidi/ @godotengine/audio
36+
/drivers/xaudio2/ @godotengine/audio
37+
38+
## Rendering
39+
/drivers/dummy/ @godotengine/rendering
40+
/drivers/gles3/ @godotengine/rendering
41+
/drivers/spirv-reflect/ @godotengine/rendering
42+
/drivers/vulkan/ @godotengine/rendering
43+
44+
## OS
45+
/drivers/unix/ @godotengine/_platforms
46+
/drivers/windows/ @godotengine/windows
47+
48+
## Misc
49+
/drivers/png/ @godotengine/import
50+
51+
# Editor
52+
53+
/editor/*debugger* @godotengine/debugger
54+
/editor/icons/ @godotengine/usability
55+
/editor/import/ @godotengine/import
56+
/editor/plugins/*2d_*.* @godotengine/2d-editor
57+
/editor/plugins/*3d_*.* @godotengine/3d-editor
58+
/editor/plugins/script_*.* @godotengine/script-editor
59+
/editor/plugins/*shader*.* @godotengine/shaders
60+
/editor/code_editor.* @godotengine/script-editor
61+
/editor/*dock*.* @godotengine/docks
62+
/editor/*shader*.* @godotengine/shaders
63+
64+
# Main
65+
66+
/main/ @godotengine/core
67+
68+
# Misc
69+
70+
/misc/ @godotengine/buildsystem
71+
72+
# Modules
73+
74+
## Audio (+ video)
75+
/modules/minimp3/ @godotengine/audio
76+
/modules/ogg/ @godotengine/audio
77+
/modules/opus/ @godotengine/audio
78+
/modules/theora/ @godotengine/audio
79+
/modules/vorbis/ @godotengine/audio
80+
/modules/webm/ @godotengine/audio
81+
82+
## Import
83+
/modules/basis_universal/ @godotengine/import
84+
/modules/bmp/ @godotengine/import
85+
/modules/cvtt/ @godotengine/import
86+
/modules/dds/ @godotengine/import
87+
/modules/etc/ @godotengine/import
88+
/modules/fbx/ @godotengine/import
89+
/modules/gltf/ @godotengine/import
90+
/modules/hdr/ @godotengine/import
91+
/modules/jpg/ @godotengine/import
92+
/modules/pvr/ @godotengine/import
93+
/modules/squish/ @godotengine/import
94+
/modules/svg/ @godotengine/import
95+
/modules/tga/ @godotengine/import
96+
/modules/tinyexr/ @godotengine/import
97+
/modules/webp/ @godotengine/import
98+
99+
## Network
100+
/modules/enet/ @godotengine/network
101+
/modules/mbedtls/ @godotengine/network
102+
/modules/upnp/ @godotengine/network
103+
/modules/webrtc/ @godotengine/network
104+
/modules/websocket/ @godotengine/network
105+
106+
## Rendering
107+
/modules/denoise/ @godotengine/rendering
108+
/modules/glslang/ @godotengine/rendering
109+
/modules/lightmapper_rd/ @godotengine/rendering
110+
/modules/meshoptimizer/ @godotengine/rendering
111+
/modules/vhacd/ @godotengine/rendering
112+
/modules/xatlas_unwrap/ @godotengine/rendering
113+
114+
## Scripting
115+
/modules/gdscript/ @godotengine/gdscript
116+
/modules/jsonrpc/ @godotengine/gdscript
117+
/modules/mono/ @godotengine/dotnet
118+
119+
## Text
120+
/modules/freetype/ @godotengine/buildsystem
121+
/modules/text_server_adv/ @godotengine/gui-nodes
122+
/modules/text_server_fb/ @godotengine/gui-nodes
123+
124+
## XR
125+
/modules/camera/ @godotengine/xr
126+
/modules/gdextension/xr/ @godotengine/xr
127+
/modules/mobile_vr/ @godotengine/xr
128+
/modules/webxr/ @godotengine/xr
129+
130+
## Misc
131+
/modules/bullet/ @godotengine/physics
132+
/modules/csg/ @godotengine/3d-nodes
133+
/modules/gdnavigation/ @godotengine/navigation
134+
/modules/gridmap/ @godotengine/3d-nodes
135+
/modules/opensimplex/ @godotengine/3d-nodes
136+
/modules/regex/ @godotengine/core
137+
138+
# Platform
139+
140+
/platform/android/ @godotengine/android
141+
/platform/ios/ @godotengine/ios
142+
/platform/javascript/ @godotengine/html5
143+
/platform/linuxbsd/ @godotengine/linux-bsd
144+
/platform/macos/ @godotengine/macos
145+
/platform/uwp/ @godotengine/uwp
146+
/platform/windows/ @godotengine/windows
147+
148+
# Scene
149+
150+
/scene/2d/ @godotengine/2d-nodes
151+
/scene/3d/ @godotengine/3d-nodes
152+
/scene/animation/ @godotengine/animation
153+
/scene/audio/ @godotengine/audio
154+
/scene/debugger/ @godotengine/debugger
155+
/scene/gui/ @godotengine/gui-nodes
156+
/scene/main/ @godotengine/core
157+
/scene/resources/default_theme/ @godotengine/gui-nodes
158+
/scene/resources/font.* @godotengine/gui-nodes
159+
/scene/resources/text_line.* @godotengine/gui-nodes
160+
/scene/resources/text_paragraph.* @godotengine/gui-nodes
161+
/scene/resources/visual_shader*.* @godotengine/shaders
162+
163+
# Servers
164+
165+
/servers/audio* @godotengine/audio
166+
/servers/camera* @godotengine/xr
167+
/servers/display_server.* @godotengine/_platforms
168+
/servers/navigation_server*.* @godotengine/navigation
169+
/servers/physics* @godotengine/physics
170+
/servers/rendering* @godotengine/rendering
171+
/servers/text_server.* @godotengine/gui-nodes
172+
/servers/xr* @godotengine/xr
173+
174+
# Tests
175+
176+
/tests/ @godotengine/tests
177+
178+
# Thirdparty
179+
180+
/thirdparty/ @godotengine/buildsystem

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Bug report
2+
description: Report a bug in Godot
3+
body:
4+
5+
- type: markdown
6+
attributes:
7+
value: |
8+
- Read our [CONTRIBUTING.md guide](https://github.com/godotengine/godot/blob/master/CONTRIBUTING.md#reporting-bugs) on reporting bugs.
9+
- Write a descriptive issue title above.
10+
- Search [open](https://github.com/godotengine/godot/issues) and [closed](https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported.
11+
- Verify that you are using a [supported Godot version](https://docs.godotengine.org/en/stable/about/release_policy.html).
12+
13+
- type: input
14+
attributes:
15+
label: Godot version
16+
description: >
17+
Specify the Git commit hash if using a development or non-official build.
18+
If you use a custom build, please test if your issue is reproducible in official builds too.
19+
placeholder: 3.3.stable, 4.0.dev (3041becc6)
20+
validations:
21+
required: true
22+
23+
- type: input
24+
attributes:
25+
label: System information
26+
description: |
27+
Specify the OS version, and when relevant hardware information.
28+
For graphics-related issues, specify the GPU model, driver version, and the rendering backend (GLES2, GLES3, Vulkan).
29+
placeholder: Windows 10, GLES3, Intel HD Graphics 620 (27.20.100.9616)
30+
validations:
31+
required: true
32+
33+
- type: textarea
34+
attributes:
35+
label: Issue description
36+
description: |
37+
Describe your issue briefly. What doesn't work, and how do you expect it to work instead?
38+
You can include images or videos with drag and drop, and format code blocks or logs with <code>```</code> tags.
39+
validations:
40+
required: true
41+
42+
- type: textarea
43+
attributes:
44+
label: Steps to reproduce
45+
description: |
46+
List of steps or sample code that reproduces the issue. Having reproducible issues is a prerequisite for contributors to be able to solve them.
47+
If you include a minimal reproduction project below, you can detail how to use it here.
48+
validations:
49+
required: true
50+
51+
- type: textarea
52+
attributes:
53+
label: Minimal reproduction project
54+
description: |
55+
A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the `.godot` folder in the archive (but keep `project.godot`).
56+
Required, unless the reproduction steps are trivial and don't require any project files to be followed. In this case, write "N/A" in the field.
57+
Drag and drop a ZIP archive to upload it. **Do not select another field until the project is done uploading.**
58+
validations:
59+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
blank_issues_enabled: false
2+
3+
contact_links:
4+
- name: Godot proposals
5+
url: https://github.com/godotengine/godot-proposals
6+
about: Please submit feature proposals on the Godot proposals repository, not here.
7+
8+
- name: Godot documentation repository
9+
url: https://github.com/godotengine/godot-docs
10+
about: Please report issues with documentation on the Godot documentation repository, not here.
11+
12+
- name: Godot community channels
13+
url: https://godotengine.org/community
14+
about: Please ask for technical support on one of the other community channels, not here.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<!--
2+
Please target the `master` branch in priority.
3+
PRs can target `3.x` if the same change was done in `master`, or is not relevant there.
4+
5+
Relevant fixes are cherry-picked for stable branches as needed by maintainers.
6+
You can mention in the description if the change is compatible with `3.x`.
7+
-->

.github/actions/godot-build/action.yml

Lines changed: 20 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,35 @@ name: Build Godot
22
description: Build Godot with the provided options.
33
inputs:
44
target:
5-
description: The scons target (debug/editor/release).
6-
default: editor
7-
tools:
8-
description: If tools are to be built.
9-
default: false
5+
description: Build target (editor, template_release, template_debug).
6+
default: "editor"
107
tests:
11-
description: If tests are to be built.
8+
description: Unit tests.
129
default: false
1310
platform:
14-
description: The Godot platform to build.
11+
description: Target platform.
1512
required: false
1613
sconsflags:
17-
default: ''
14+
default: ""
1815
scons-cache:
1916
description: The scons cache path.
20-
default: ${{ github.workspace }}/.scons-cache/
17+
default: "${{ github.workspace }}/.scons-cache/"
2118
scons-cache-limit:
2219
description: The scons cache size limit.
20+
# actions/cache has 10 GiB limit, and GitHub runners have a 14 GiB disk.
21+
# Limit to 7 GiB to avoid having the extracted cache fill the disk.
2322
default: 7168
24-
shell:
25-
description: the shell to run this under
26-
default: sh
2723
runs:
28-
using: composite
24+
using: "composite"
2925
steps:
30-
- name: Scons Build
31-
shell: sh
32-
env:
33-
SCONSFLAGS: ${{ inputs.sconsflags }}
34-
SCONS_CACHE: ${{ inputs.scons-cache }}
35-
SCONS_CACHE_LIMIT: ${{ inputs.scons-cache-limit }}
36-
run: |
37-
echo "Building with flags:" ${{ env.SCONSFLAGS }}
38-
if [ "${{ inputs.target }}" != "editor" ]; then rm -rf editor; fi # Ensure we don't include editor code.
39-
scons platform=${{ inputs.platform }} target=${{ inputs.target }} tools=${{ inputs.tools }} tests=${{ inputs.tests }} --jobs=2 ${{ env.SCONSFLAGS }}
40-
ls -l bin/
41-
if: inputs.shell == 'sh'
42-
- name: Scons Build
43-
shell: msys2 {0}
44-
env:
45-
SCONSFLAGS: ${{ inputs.sconsflags }}
46-
SCONS_CACHE: ${{ inputs.scons-cache }}
47-
SCONS_CACHE_LIMIT: ${{ inputs.scons-cache-limit }}
48-
run: |
49-
echo "Building with flags:" ${{ env.SCONSFLAGS }}
50-
if [ "${{ inputs.target }}" != "editor" ]; then rm -rf editor; rm -rf tools; fi # Ensure we don't include editor code.
51-
scons platform=${{ inputs.platform }} target=${{ inputs.target }} tools=${{ inputs.tools }} tests=${{ inputs.tests }} --jobs=2 ${{ env.SCONSFLAGS }}
52-
ls -l bin/
53-
if: inputs.shell == 'msys2 {0}'
26+
- name: Scons Build
27+
shell: sh
28+
env:
29+
SCONSFLAGS: ${{ inputs.sconsflags }}
30+
SCONS_CACHE: ${{ inputs.scons-cache }}
31+
SCONS_CACHE_LIMIT: ${{ inputs.scons-cache-limit }}
32+
run: |
33+
echo "Building with flags:" platform=${{ inputs.platform }} target=${{ inputs.target }} tests=${{ inputs.tests }} ${{ env.SCONSFLAGS }}
34+
if [ "${{ inputs.target }}" != "editor" ]; then rm -rf editor; fi # Ensure we don't include editor code.
35+
scons platform=${{ inputs.platform }} target=${{ inputs.target }} tests=${{ inputs.tests }} ${{ env.SCONSFLAGS }}
36+
ls -l bin/

.github/actions/godot-cache/action.yml

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,20 @@ description: Setup Godot build cache.
33
inputs:
44
cache-name:
55
description: The cache base name (job name by default).
6-
default: ${{github.job}}
6+
default: "${{github.job}}"
77
scons-cache:
88
description: The scons cache path.
9-
default: ${{github.workspace}}/.scons-cache/
9+
default: "${{github.workspace}}/.scons-cache/"
1010
runs:
11-
using: composite
11+
using: "composite"
1212
steps:
13-
- name: Load .scons_cache directory
14-
uses: actions/cache@v2
15-
with:
16-
path: ${{inputs.scons-cache}}
17-
key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
18-
restore-keys: |
19-
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
20-
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
21-
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}
13+
# Upload cache on completion and check it out now
14+
- name: Load .scons_cache directory
15+
uses: actions/cache@v3
16+
with:
17+
path: ${{inputs.scons-cache}}
18+
key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
19+
restore-keys: |
20+
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
21+
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
22+
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}

0 commit comments

Comments
 (0)