UE4SS-RE / RE-UE4SS

Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games
http://docs.ue4ss.com/
MIT License
1.37k stars 187 forks source link

Add CI builds for pull requests #591

Closed bitonality closed 3 months ago

bitonality commented 4 months ago

This adds xmake building to Pull Requests whenever they are created or updated. This should ensure that we aren't breaking compilation when checking in new code. The check is NOT mandatory for now due to the "partner PR" not being implemented between UEPseudo and UE4SS, so there will be some PR completions that don't compile, but shouldn't necessarily block a merge. Long term I plan on implementing partner PRs between the two repos so we can turn on enforcement before check-in, but this should suffice for now.

GPT Summary

Build All Modes Workflow

This workflow automates the build process for all modes of UE4SS whenever a pull request is made to the main branch, excluding changes to documentation files. It dynamically calculates the build matrix based on the modes defined in the project and reports artifacts to the PR comments. Key features include:

  1. Concurrency Control: Ensures only the latest commit triggers the workflow, preventing multiple builds for rapid successive pushes.
  2. Dynamic Mode Calculation: Calculates which modes to build and which should upload artifacts based on project configurations.
  3. Build Execution: Uses a reusable workflow to build each mode determined in the matrix, ensuring consistent builds across different configurations.
  4. Artifact Reporting: Uploads build artifacts and reports them as comments on the pull request, providing clear visibility of the build results.

Build UE4SS Workflow

This reusable workflow handles the installation of xmake, cloning of the repository, building of UE4SS, and uploading of artifacts. It provides a consistent environment for any future workflows or tasks requiring UE4SS to be built. Key features include:

  1. Repository Checkout: Clones the repository and its submodules for full project context.
  2. Cache Management: Utilizes caching to optimize build times by storing dependencies and using a weekly cache key.
  3. Environment Setup: Installs necessary tools, such as Visual Studio Build Tools and xmake, to configure the build environment.
  4. Dependency Handling: Restores and saves cached dependencies to reduce redundant installations.
  5. Build Execution: Configures and builds the project using xmake, tailored to the specified build mode.
  6. Artifact Management: Calculates and uploads build artifacts based on specified targets, retaining them for a defined period.

These workflows ensure efficient, consistent, and automated builds for the UE4SS project, enhancing development productivity and reliability.

github-actions[bot] commented 4 months ago
MSVC-Game__Debug__Win64 Download Logs
Build Details |Name|Information| |---|---| |PR Commit|112f7cf39c6ec84fddcde04d14051339506d5bfe| |Merge Commit|073d8a3330be019b207f2d9124eda6b51c34f0c6| |Size|43.46 MB| |Last Updated|Jul 5, 24, 8:56:30 AM UTC| |Expires At|Jul 19, 24, 8:56:26 AM UTC|

MSVC-Game__Shipping__Win64 Download Logs
Build Details |Name|Information| |---|---| |PR Commit|112f7cf39c6ec84fddcde04d14051339506d5bfe| |Merge Commit|073d8a3330be019b207f2d9124eda6b51c34f0c6| |Size|26.34 MB| |Last Updated|Jul 5, 24, 9:01:37 AM UTC| |Expires At|Jul 19, 24, 9:01:34 AM UTC|
Buckminsterfullerene02 commented 3 months ago

I think it has been more than long enough for anyone else to make any rejections so I'll just go ahead and merge this and we'll see how it goes.