Skip to content

Commit ce8f581

Browse files
Work on CI workflows and Readme
1 parent 44f7580 commit ce8f581

4 files changed

Lines changed: 133 additions & 23 deletions

File tree

.forgejo/workflows/changelog.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99

1010
jobs:
1111
changelog:
12-
runs-on: docker
12+
runs-on: [docker, codeberg-tiny]
1313
permissions:
1414
contents: write # Required to push the updated CHANGELOG.md
1515
steps:
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
name: Cross-platform Unreal Plugin CI for Releases
2+
3+
on:
4+
push:
5+
branches: [ main ] # Add all branches to be tested here
6+
pull_request:
7+
branches: [ main ]
8+
9+
env:
10+
# --- Configuration Variables ---
11+
PLUGIN_NAME: "ALSXT"
12+
UE_VERSION: "5.7"
13+
# Path to UE Engine installation (Adjust for each runner OS)
14+
UE_PATH_WIN: "C:/EpicGames/UE_5.7"
15+
UE_PATH_LINUX: "/home/runner/ue/UE_5.7"
16+
UE_PATH_MAC: "/Users/Shared/EpicGames/UE_5.7"
17+
# Codecov Token (Add to Forgejo Secrets)
18+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
19+
# ------------------------------
20+
21+
jobs:
22+
build-test-package:
23+
name: UE Package (${{ matrix.os }})
24+
runs-on: [self-hosted, ${{ matrix.runner_label }}]
25+
strategy:
26+
matrix:
27+
include:
28+
- os: windows
29+
runner_label: ue-win
30+
ue_path: "C:/EpicGames/UE_5.7"
31+
run_cmd: "RunUAT.bat"
32+
- os: linux
33+
runner_label: ue-linux
34+
ue_path: "/home/runner/ue/UE_5.7"
35+
run_cmd: "./RunUAT.sh"
36+
- os: macos
37+
runner_label: ue-mac
38+
ue_path: "/Users/Shared/EpicGames/UE_5.7"
39+
run_cmd: "./RunUAT.sh"
40+
41+
steps:
42+
- name: Checkout
43+
uses: actions/checkout@v4
44+
with:
45+
fetch-depth: 0
46+
47+
- name: Build and Test
48+
shell: bash
49+
run: |
50+
${{ matrix.ue_path }}/Engine/Build/BatchFiles/${{ matrix.run_cmd }} BuildPlugin -Plugin=$GITHUB_WORKSPACE/${{ env.PLUGIN_NAME }}.uplugin -Package=$GITHUB_WORKSPACE/Build -TargetPlatforms=Win64+Linux+Mac
51+
52+
- name: Perform Coverage
53+
if: matrix.os == 'linux' # Run coverage once to save resources
54+
run: |
55+
# Example using llvm-cov or specialized UE coverage tool
56+
${{ matrix.ue_path }}/Engine/Build/BatchFiles/${{ matrix.run_cmd }} RunTests -Plugin=$GITHUB_WORKSPACE/${{ env.PLUGIN_NAME }}.uplugin -Coverage
57+
58+
- name: Upload Coverage to Codecov
59+
if: matrix.os == 'linux'
60+
uses: codecov/codecov-action@v4
61+
with:
62+
token: ${{ env.CODECOV_TOKEN }}
63+
files: ./coverage.xml
64+
65+
- name: Upload Artifacts
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: UE-Plugin-${{ matrix.os }}
69+
path: ${{ github.workspace }}/Build
70+
71+
release:
72+
needs: build-test-package
73+
runs-on: ubuntu-latest
74+
if: github.ref == 'refs/heads/main'
75+
steps:
76+
- name: Checkout
77+
uses: actions/checkout@v4
78+
with:
79+
fetch-depth: 0
80+
81+
- name: Generate Changelog
82+
uses: orhun/git-cliff-action@v3
83+
id: git-cliff
84+
with:
85+
config: cliff.toml
86+
args: --latest --strip header
87+
env:
88+
OUTPUT: CHANGELOG.md
89+
90+
- name: Update Status/Changelog
91+
run: |
92+
git commit -m "chore: update changelog" CHANGELOG.md || echo "No changes"
93+
git push

.forgejo/workflows/ue-plugin-ci.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Unreal Plugin Cross-Platform CI
1+
name: Cross-platform Unreal Plugin CI
22

33
on:
44
push:
@@ -7,11 +7,15 @@ on:
77
branches: [ main ]
88

99
env:
10+
# --- Configuration Variables ---
1011
PLUGIN_NAME: "ALSXT" # Change to .uplugin name
12+
UE_VERSION: "5.7"
1113
# Paths must match your self-hosted runner environment
1214
UE_PATH_WIN: "C:/Program Files/Epic Games/UE_5.4"
1315
UE_PATH_LINUX: "/opt/unreal-engine"
1416
UE_PATH_MAC: "/Users/Shared/Epic Games/UE_5.4"
17+
# Codecov Token (Add to Forgejo Secrets)
18+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
1519

1620
jobs:
1721
build-and-test:

README.md

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ An Unreal Engine 5 plugin that extends ALS-Refactored into a Modular, GAS-based,
9999
## Bonus Features
100100
- Advanced Landscape Auto-Material
101101
- Procedural Radial/Pie Menu
102-
- Workflow YAML files for Codeberg/Forgejo and Micro$lop Github
102+
- Workflow YAML files for Codeberg/Forgejo, GitHub, and GitLab
103103

104104
## Planned Features
105105
- Skeletal Mesh and Clothing set with Morph Targets/Shape Keys
@@ -112,26 +112,20 @@ An Unreal Engine 5 plugin that extends ALS-Refactored into a Modular, GAS-based,
112112
- Emotes
113113

114114

115-
# Prerequisites
116-
A working UE5 C++ Integrated Developement Environment(IDE) such as:
115+
# Requirements
116+
- Unreal Engine 5.6.1 or later built from github Source Code
117+
- A working UE5 C++ Integrated Developement Environment(IDE)
118+
- Tested: Jetbrains Rider, VS Code, Visual Studio (Windows)
119+
- Untested: XCode (MacOS), Jetbrains Rider, VS Code, Visual Studio (Linux)
120+
- clang -20 13.0.1
117121

118-
**Windows**
119-
120-
- Jetbrains Rider (Developers personal preference)
121-
- Micro$lop Visual Studio
122-
- Micro$lop VS Code
123-
124-
**Linux**
125-
126-
- Currently undergoing testing.
127-
128-
**MacOS**
129-
130-
- XCode - Currently undergoing testing.
131-
132-
## Third-Party Plugins
133-
The following plugins require cloning or downloading into your projects `Plugins` folder.
134-
- [Advanced Locomotion System Refactored](https://github.com/Sixze/ALS-Refactored/) ![GitHub Tag](https://img.shields.io/github/v/tag/Voidware-Prohibited/ALS-Refactored)
122+
## CI System Requirements
123+
Systems performing Continous Intergration Workflows will have additional requirements depending on the CI solution used.
124+
- Git
125+
- OpenCppCoverage
126+
- Domain Name or ngrok (For Self Hosted CI)
127+
- Workflow Actions services and Runners configured for Forgejo/Codeberg, GitHub or GitLab.
128+
- Jenkins and Java 11 (For Jenkins)
135129

136130
## Engine Plugins
137131
The following are built-in Engine plugins that are enabled in the Plugins window. Warning: some plugins may be Experimental or Beta software.
@@ -152,6 +146,10 @@ The following are built-in Engine plugins that are enabled in the Plugins window
152146
- DataRegistry
153147
- TargetingSystem
154148

149+
## Third-Party Plugins
150+
The following plugins require cloning or downloading into your projects `Plugins` folder.
151+
- [Advanced Locomotion System Refactored](https://github.com/Sixze/ALS-Refactored/) ![GitHub Tag](https://img.shields.io/github/v/tag/Voidware-Prohibited/ALS-Refactored)
152+
155153
# Installation
156154
[Complete Installation Instructions](../..//wiki/Installation/)
157155

@@ -188,6 +186,21 @@ ALSXT is designed to be extremely configurable by with Data Assets. Most [Settin
188186
## Gameplay Ability System
189187
Default [Character Abilities](/wiki/Settings/GameplayAbilities/) are defined by [Gameplay System Initialization Data](../..//wiki/Settings/GameplayAbilities/).
190188

189+
# CI
190+
CI workflow YAML files are included for Forgejo/Codeberg, GitHub and GitLab.
191+
192+
`ue-plugin-ci` Build, Test, Code Coverage, Upload to Codecov, Update Changelog, Update Status. Activated with any push.
193+
`ue-plugin-ci-release` Build, Cook, Package, Test, Code Coverage, Upload to Codecov, Update Changelog, Update Status. Activated the a `v*` tag in the commit.
194+
195+
196+
## Automated Testing
197+
Provided Tests
198+
199+
TODO
200+
201+
## Code Coverage
202+
OpenCodeCoverage will perform Code Coverage analysis and publish and XML file as a Commit Artifact, and can optionally be uploaded to a configured Codecov account.
203+
191204
# Asset Source Files
192205

193206
- [ALSXT-Assets-Cascaduer](https://github.com/Voidware-Prohibited/ALSXT-Assets-Cascaduer/): Source Assets Cascaduer files
@@ -202,7 +215,7 @@ Contibutors and PRs are welcome! If you wish to contribute, please ensure you ar
202215

203216
# License
204217

205-
ALSXT is dual-licensed. It is available for absoultely free under the [MIT License](LICENSE.md) for most Individuals. If your organization, industry or application is listed in the [Commercial License](LICENSE-Commercial.md), please [Contact Us](https://voidwarex.com/contact/).
218+
This project is dual-licensed. It is available for absoultely free under the [MIT License](LICENSE.md) for most Individuals. If your organization, industry or application is listed in the [Commercial License](LICENSE-Commercial.md), please [Contact Us](https://voidwarex.com/contact/).
206219

207220
Any git submodules are covered by their respective licenses. Content listed in the Attributions are covered by their respective licenses.
208221

0 commit comments

Comments
 (0)