GitHub Action
Build Godot
This action builds the godot project in your $GITHUB_WORKSPACE
, so that you can easily automate builds.
Table of Contents:
In Godot create export templates for linux
, windows
, and mac
.
The name of the Windows export would be of type Windows Desktop
and have the name windows
. For Mac, the name would mac
and type Mac OSX
. Then for linux, Linux/X11
Once you verify that export_presets.cfg
is located in the same directory as your project.godot
file, you can push your changes.
Add the following workflow file to your repository. An example file name would be .github/workflows/build.yml
name: Build Godot Project
on:
push: {}
pull_request: {}
jobs:
Godot:
runs-on: ubuntu-latest
strategy:
matrix:
platform: [linux, windows, mac]
steps:
- uses: actions/checkout@v2
with:
lfs: true
- name: Build
id: build
uses: josephbmanley/[email protected]
with:
name: example
preset: ${{ matrix.platform }}
debugMode: "true"
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: Client - ${{ matrix.platform }}
path: ${{ github.workspace }}/${{ steps.build.outputs.build }}
This workflow has three steps:
- Checkout: The Checkout step clones the project on the GitHub actions runner.
- Build: This step uses this action to build the Godot project.
- Upload Artifact: The Upload Artifact step uploads the output from the build step.
Matrix Explaination: The matrix object runs the job for EACH possible value. So in this job, we are using a platform
matrix to automatically run our workflow for the values linux
, windows
, and mac
.
In this workflow, since it's using a matrix you can just add or remove export names from the platform
matrix. The value being passed MUST have the same name as the preset.
Godot:
runs-on: ubuntu-latest
strategy:
matrix:
platform: [win32, win64] # This project will only export using the export presets `win32` and `win64`
Additionally if you are not using a matrix, you can set the export preset as the parameter preset
:
- name: Build
id: build
uses: josephbmanley/[email protected]
with:
name: example
preset: win32
To change the export name, you can the name
parameter to whatever you want your project to export as.
- name: Build
id: build
uses: josephbmanley/[email protected]
with:
name: test # This project will export with the name "test"
This example is set to build with debug mode enable. To disable debug, either set debugMode
to false
or remove the field entirely.
- name: Build
id: build
uses: josephbmanley/[email protected]
with:
name: example
preset: ${{ matrix.platform }}
debugMode: "false" # This project will not build in debug mode
If your project is located in a subdirectory, you can use the projectDir
to change build directories.
- name: Build
id: build
uses: josephbmanley/[email protected]
with:
name: example
preset: ${{ matrix.platform }}
projectDir: "test" # The project in the `test` directory will be built
Now, whenever you make a push or pull request in that repository, GitHub Actions will build . You see and download your project in the Actions
tab of your repository.
This action will create a build
folder an outputed build. You must have the export preset configured for the target platform to successfully export.
Example:
steps:
- uses: josephbmanley/build-godot-action@[VERSION]
with:
name: godot-project
preset: HTML5
The name of the exported package/binary
The name of the preset found in `export_presets.cfg` you would like to build.
*Optional*
The subdirectory in the `build` folder to output build to, can be useful for self packaging.
*Optional*
Boolean value, when set to true, builds artficat zip file.
*Optional*
Directory in workspace containing your godot project.
*Optional*
Boolean value, when set to true, runs export in debug mode.
The location the outputed build is placed relative to GitHub Workspace.
The location the outputed artifact is placed relative to GitHub Workspace.