Skip to content

Commit 7af6ebf

Browse files
committed
Revamped the CI workflows
1 parent 3509816 commit 7af6ebf

6 files changed

Lines changed: 38 additions & 54 deletions

File tree

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
github: [60k41p]
1+
github: ["60k41p"]
22
patreon: # Replace with a single Patreon username
33
open_collective: # Replace with a single Open Collective username
44
ko_fi: # Replace with a single Ko-fi username
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Setup Build Tools
2+
description: Installs the build toolchain used by the CI workflows.
3+
4+
runs:
5+
using: composite
6+
steps:
7+
- name: Set up Python
8+
uses: actions/setup-python@v6
9+
with:
10+
python-version: "3.x"
11+
12+
- name: Install LLVM and Clang
13+
uses: KyleMayes/install-llvm-action@v2
14+
with:
15+
version: "21"
16+
17+
- name: Install SCons
18+
shell: bash
19+
run: python -m pip install --upgrade --no-cache-dir scons

.github/workflows/build.yml

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,12 @@ jobs:
1919

2020
steps:
2121
- name: Checkout repository
22-
uses: actions/checkout@v4
22+
uses: actions/checkout@v6
2323
with:
2424
submodules: recursive
2525

26-
- name: Set up Python
27-
uses: actions/setup-python@v5
28-
with:
29-
python-version: "3.x"
30-
31-
- name: Install LLVM and Clang
32-
uses: KyleMayes/install-llvm-action@v2
33-
with:
34-
version: "21"
35-
36-
- name: Install SCons
37-
run: python -m pip install --upgrade pip scons
26+
- name: Setup Build Tools
27+
uses: ./.github/actions/setup-build-tools
3828

3929
- name: Build debug artifacts
4030
run: ./scripts/build_debug.sh

.github/workflows/integration-tests.yml

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,13 @@ jobs:
1919

2020
steps:
2121
- name: Checkout repository
22-
uses: actions/checkout@v4
22+
uses: actions/checkout@v6
2323
with:
2424
ref: ${{ github.event.workflow_run.head_sha || github.sha }}
2525
submodules: recursive
2626

27-
- name: Set up Python
28-
uses: actions/setup-python@v5
29-
with:
30-
python-version: "3.x"
31-
32-
- name: Install LLVM and Clang
33-
uses: KyleMayes/install-llvm-action@v2
34-
with:
35-
version: "22"
36-
37-
- name: Configure Clang toolchain
38-
shell: bash
39-
run: |
40-
echo "CC=${LLVM_PATH}/bin/clang" >> "$GITHUB_ENV"
41-
echo "CXX=${LLVM_PATH}/bin/clang++" >> "$GITHUB_ENV"
42-
43-
- name: Install SCons
44-
run: python -m pip install --upgrade pip scons
27+
- name: Setup Build Tools
28+
uses: ./.github/actions/setup-build-tools
4529

4630
- name: Download build artifacts
4731
if: ${{ github.event_name == 'workflow_run' }}

.github/workflows/unit-tests.yml

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,13 @@ jobs:
1616

1717
steps:
1818
- name: Checkout repository
19-
uses: actions/checkout@v4
19+
uses: actions/checkout@v6
2020
with:
2121
ref: ${{ github.event.workflow_run.head_sha }}
2222
submodules: recursive
2323

24-
- name: Set up Python
25-
uses: actions/setup-python@v5
26-
with:
27-
python-version: "3.x"
28-
29-
- name: Install LLVM and Clang
30-
uses: KyleMayes/install-llvm-action@v2
31-
with:
32-
version: "22"
33-
34-
- name: Configure Clang toolchain
35-
shell: bash
36-
run: |
37-
echo "CC=${LLVM_PATH}/bin/clang" >> "$GITHUB_ENV"
38-
echo "CXX=${LLVM_PATH}/bin/clang++" >> "$GITHUB_ENV"
39-
40-
- name: Install SCons
41-
run: python -m pip install --upgrade pip scons
24+
- name: Setup Build Tools
25+
uses: ./.github/actions/setup-build-tools
4226

4327
- name: Download build artifacts
4428
env:

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
<p align="center">
22
<img src="assets/images/logo.svg" alt="Stagehand logo" width="220" />
33
</p>
4+
<p align="center">
5+
<a href="https://github.com/VerdantInteractive/Stagehand/actions/workflows/build.yml"><img src="https://github.com/VerdantInteractive/Stagehand/actions/workflows/build.yml/badge.svg" alt="Build"></a>
6+
&nbsp;&nbsp;&nbsp;
7+
<a href="https://github.com/VerdantInteractive/Stagehand/actions/workflows/unit-tests.yml"><img src="https://github.com/VerdantInteractive/Stagehand/actions/workflows/unit-tests.yml/badge.svg" alt="Unit Tests"></a>
8+
&nbsp;&nbsp;&nbsp;
9+
<a href="https://github.com/VerdantInteractive/Stagehand/actions/workflows/integration-tests.yml"><img src="https://github.com/VerdantInteractive/Stagehand/actions/workflows/integration-tests.yml/badge.svg" alt="Integration Tests"></a>
10+
</p>
411

512
# Stagehand: take Godot to a bigger stage.
613

7-
Stagehand brings [Flecs](https://www.flecs.dev), a modern, high-performance Entity Component System to Godot, enabling large-scale, complex gameplay logic and simulations.
14+
Stagehand brings the [Flecs](https://www.flecs.dev) Entity Component System to Godot, enabling large-scale, complex gameplay logic and simulations.
815

916
You write your performance-critical code in C++, while still having the freedom to choose where to use Godot's scripting languages. Stagehand integrates deeply with the Godot engine and has facilities that enhance developer ergonomics.
1017

@@ -53,7 +60,7 @@ Demonstrates `FlecsWorld` node properties and the `WorldConfiguration` singleton
5360

5461
![Demo-Surwave](https://github.com/user-attachments/assets/d0df9c47-cd29-4496-86dd-635762e51540)
5562

56-
A 2D survivor-style action mini-game where thousands of enemies chase the player with ECS-driven behaviour and gameplay systems.
63+
A 2D survivor-style action game where thousands of enemies chase the player with ECS-driven behaviour and gameplay systems. An older version of the game is [hosted on itch.io](https://60k41p.itch.io/surwave).
5764

5865
Demonstrates singleton components, prefab inheritance, `MultiMeshRenderer2D`, ECS-to-Godot Signal bridging, dictionary-backed event payloads, runtime configuration and transform components, mixing GDScript orchestration, UI and audio logic with C++ ECS code, rendering many enemies from prefabs, prefab inheritance.
5966

0 commit comments

Comments
 (0)