mirror of
https://github.com/yeslayla/build-godot-action.git
synced 2025-07-18 05:05:07 +02:00
Compare commits
17 Commits
Author | SHA1 | Date | |
---|---|---|---|
f407dbba9d | |||
4cae4d82be | |||
0fb921d27d | |||
9acd6abd7d | |||
0782209122 | |||
84b6b4932b | |||
4286170da9 | |||
64b5e9f54f | |||
e3271898b4 | |||
7286d00fbc | |||
25441faa20 | |||
4940f3b222 | |||
7c6b524ff2 | |||
8958f9cefe | |||
00d186c313 | |||
bb3ca4865b | |||
545a327e1b |
11
.bumpversion.cfg
Normal file
11
.bumpversion.cfg
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[bumpversion]
|
||||||
|
current_version = 0.0.0
|
||||||
|
commit = False
|
||||||
|
tag = True
|
||||||
|
tag_name = {new_version}
|
||||||
|
|
||||||
|
[semver]
|
||||||
|
main_branches = master
|
||||||
|
major_branches =
|
||||||
|
minor_branches = feature
|
||||||
|
patch_branches = hotfix, bugfix
|
17
.github/workflows/test_action.yml
vendored
Normal file
17
.github/workflows/test_action.yml
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
name: Test Action
|
||||||
|
|
||||||
|
on: push
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
TestAction:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
- name: Run Action
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
name: test_project
|
||||||
|
preset: linux
|
||||||
|
projectDir: test_project
|
||||||
|
package: 'true'
|
30
.github/workflows/version.yml
vendored
Normal file
30
.github/workflows/version.yml
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
name: Version & Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
CheckVersion:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: rightbrainnetworks/auto-semver
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
- name: Run Auto-Semver
|
||||||
|
id: semver
|
||||||
|
uses: RightBrain-Networks/semver-action@1.0.0
|
||||||
|
- name: Create Release
|
||||||
|
id: create_release
|
||||||
|
uses: actions/create-release@v1
|
||||||
|
if: steps['semver']['outputs']['RETURN_STATUS'] == '0'
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
tag_name: ${{ steps.semver.outputs.SEMVER_NEW_VERSION }}
|
||||||
|
release_name: ${{ steps.semver.outputs.SEMVER_NEW_VERSION }}
|
||||||
|
body: Release Version ${{ steps.semver.outputs.SEMVER_NEW_VERSION }}
|
||||||
|
draft: false
|
||||||
|
prerelease: false
|
45
ReadMe.md
45
ReadMe.md
@ -1,40 +1,55 @@
|
|||||||
|

|
||||||
|
|
||||||
# Build Godot Project
|
# Build Godot Project
|
||||||
|
|
||||||
This action builds the godot project in your `$GITHUB_WORKSPACE`, so that you can easily automate builds.
|
This action builds the godot project in your `$GITHUB_WORKSPACE`, so that you can easily automate builds.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
This action will create a `build` folder with subdirectories for linux, windows, and mac. You must have the export preset configured for each platform to successfully export.
|
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:
|
Example:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
steps:
|
steps:
|
||||||
- uses: josephbmanley/build-godot-action@master
|
- uses: josephbmanley/build-godot-action@[VERSION]
|
||||||
env:
|
with:
|
||||||
PROJECT: godot-project
|
name: godot-project
|
||||||
SUBDIRECTORY: project
|
preset: HTML5
|
||||||
```
|
```
|
||||||
|
|
||||||
### Environment Variables
|
### Inputs
|
||||||
|
|
||||||
- #### PROJECT **REQUIRED**
|
#### name **required**
|
||||||
|
|
||||||
Name of the project files to output.
|
The name of the exported package/binary
|
||||||
|
|
||||||
Eg. `godot-project` will export to `godot-project.exe`
|
#### preset **required**
|
||||||
|
|
||||||
- #### SUBDIRECTORY
|
The name of the preset found in `export_presets.cfg` you would like to build.
|
||||||
|
|
||||||
Subdirectory to export project into.
|
#### subdirectory
|
||||||
|
|
||||||
Eg. `project` will export to `$GITHUB_WORKSPACE/build/windows/project/godot-project.exe`
|
*Optional*
|
||||||
|
|
||||||
- #### PACKAGE
|
The subdirectory in the `build` folder to output build to, can be useful for self packaging.
|
||||||
|
|
||||||
Boolean value on whether or not to zip game files. Packages will be placed in the `$GITHUB_WORKSPACE/package` directory.
|
#### package
|
||||||
|
|
||||||
|
*Optional*
|
||||||
|
|
||||||
|
Boolean value, when set to true, builds artficat zip file.
|
||||||
|
|
||||||
|
### Outputs
|
||||||
|
|
||||||
|
#### build
|
||||||
|
|
||||||
|
The location the outputed build is placed.
|
||||||
|
|
||||||
|
#### artifact
|
||||||
|
|
||||||
|
The location the outputed artifact is placed.
|
||||||
|
|
||||||
Default Value: `false`
|
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
|
21
action.yml
21
action.yml
@ -1,9 +1,30 @@
|
|||||||
name: "Build Godot"
|
name: "Build Godot"
|
||||||
description: "Build a Godot project for multiple platforms"
|
description: "Build a Godot project for multiple platforms"
|
||||||
author: josephbmanley
|
author: josephbmanley
|
||||||
|
inputs:
|
||||||
|
name:
|
||||||
|
description: 'Name of the exported binary'
|
||||||
|
required: true
|
||||||
|
preset:
|
||||||
|
description: 'Name of the preset in `export_presets.cfg` to use'
|
||||||
|
required: true
|
||||||
|
subdirectory:
|
||||||
|
description: 'Optional name of the subdirectory to put exported project in'
|
||||||
|
required: false
|
||||||
|
package:
|
||||||
|
description: 'Set true to output an artifact zip file'
|
||||||
|
required: false
|
||||||
|
projectDir:
|
||||||
|
description: 'Location of Godot project in repository'
|
||||||
runs:
|
runs:
|
||||||
using: docker
|
using: docker
|
||||||
image: Dockerfile
|
image: Dockerfile
|
||||||
|
args:
|
||||||
|
- ${{ inputs.name }}
|
||||||
|
- ${{ inputs.preset }}
|
||||||
|
- ${{ inputs.subdirectory }}
|
||||||
|
- ${{ inputs.package }}
|
||||||
|
- ${{ inputs.projectDir }}
|
||||||
branding:
|
branding:
|
||||||
icon: loader
|
icon: loader
|
||||||
color: blue
|
color: blue
|
@ -1,50 +1,33 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
workDir=`pwd`
|
# Install export templates
|
||||||
platforms="linux windows mac"
|
wget https://downloads.tuxfamily.org/godotengine/3.2/Godot_v3.2-stable_export_templates.tpz --quiet
|
||||||
|
|
||||||
wget https://downloads.tuxfamily.org/godotengine/3.1.1/Godot_v3.1.1-stable_export_templates.tpz --quiet
|
|
||||||
mkdir ~/.cache
|
mkdir ~/.cache
|
||||||
mkdir -p ~/.config/godot
|
mkdir -p ~/.config/godot
|
||||||
mkdir -p ~/.local/share/godot/templates/3.1.1.stable
|
mkdir -p ~/.local/share/godot/templates/3.2.stable
|
||||||
unzip Godot_v3.1.1-stable_export_templates.tpz
|
unzip Godot_v3.2-stable_export_templates.tpz
|
||||||
mv templates/* ~/.local/share/godot/templates/3.1.1.stable
|
mv templates/* ~/.local/share/godot/templates/3.2.stable
|
||||||
rm -f Godot_v3.1.1-stable_export_templates.tpz
|
rm -f Godot_v3.2-stable_export_templates.tpz
|
||||||
|
|
||||||
if [ "${SUBDIRECTORY}" != "" ]
|
if [ "$3" != "" ]
|
||||||
then
|
then
|
||||||
SubDirectoryLocation="${SUBDIRECTORY}/"
|
SubDirectoryLocation="$3/"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Export for Linux
|
# Export for project
|
||||||
echo "Building ${PROJECT} for Linux"
|
echo "Building $1 for $2"
|
||||||
mkdir -p ./build/linux/${SubDirectoryLocation:-""}
|
mkdir -p ~/build/${SubDirectoryLocation:-""}
|
||||||
godot --export Linux/X11 ./build/linux/${SubDirectoryLocation:-""}${PROJECT}
|
cd ${5-"~"}
|
||||||
|
godot --export $2 ~/build/${SubDirectoryLocation:-""}$1
|
||||||
|
cd ~
|
||||||
|
|
||||||
# Export for Windows
|
echo ::set-output name=build::~/build/${SubDirectoryLocation:-""}
|
||||||
echo "Building ${PROJECT} for Windows"
|
|
||||||
mkdir -p ./build/windows/${SubDirectoryLocation:-""}
|
|
||||||
godot --export "Windows Desktop" ./build/windows/${SubDirectoryLocation:-""}${PROJECT}.exe
|
|
||||||
|
|
||||||
# Export for OSX
|
if [ "$4" = "true" ]
|
||||||
echo "Building ${PROJECT} for OSX"
|
|
||||||
mkdir -p ./builds/mac/${SubDirectoryLocation:-""}
|
|
||||||
godot --export "Mac OSX" ./build/mac/${SubDirectoryLocation:-""}${PROJECT}
|
|
||||||
|
|
||||||
mkdir ${workDir}/package
|
|
||||||
if [ ${PACKAGE:-"false"} = "true" ]
|
|
||||||
then
|
then
|
||||||
for platform in $platforms
|
mkdir ~/package
|
||||||
do
|
cd ~/build
|
||||||
if [ "$(ls -A ${workDir}/build/${platform})" ]; then
|
zip ~/package/artifact.zip ${SubDirectoryLocation:-"."} -r
|
||||||
echo $platform
|
echo ::set-output name=artifact::~/package/artifact.zip
|
||||||
pwd
|
|
||||||
ls
|
|
||||||
cd ${workDir}/build/${platform}
|
|
||||||
zip ${workDir}/package/${PROJECT}-${platform}.zip ${SUBDIRECTORY:-"*"} -r
|
|
||||||
else
|
|
||||||
echo "${platform} did not build!"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
fi
|
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="0167658bc4406f0d0fe437e0197c415a"
|
||||||
|
dest_md5="64b0613b3173e1e1c96dd18b6569e62d"
|
||||||
|
|
7
test_project/default_env.tres
Normal file
7
test_project/default_env.tres
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[gd_resource type="Environment" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[sub_resource type="ProceduralSky" id=1]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
background_mode = 2
|
||||||
|
background_sky = SubResource( 1 )
|
3
test_project/empty_scene.tscn
Normal file
3
test_project/empty_scene.tscn
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[gd_scene format=2]
|
||||||
|
|
||||||
|
[node name="Node2D" type="Node2D"]
|
25
test_project/export_presets.cfg
Normal file
25
test_project/export_presets.cfg
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[preset.0]
|
||||||
|
|
||||||
|
name="linux"
|
||||||
|
platform="Linux/X11"
|
||||||
|
runnable=true
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path=""
|
||||||
|
patch_list=PoolStringArray( )
|
||||||
|
script_export_mode=1
|
||||||
|
script_encryption_key=""
|
||||||
|
|
||||||
|
[preset.0.options]
|
||||||
|
|
||||||
|
texture_format/bptc=false
|
||||||
|
texture_format/s3tc=true
|
||||||
|
texture_format/etc=false
|
||||||
|
texture_format/etc2=false
|
||||||
|
texture_format/no_bptc_fallbacks=true
|
||||||
|
binary_format/64_bits=true
|
||||||
|
binary_format/embed_pck=false
|
||||||
|
custom_template/release=""
|
||||||
|
custom_template/debug=""
|
23
test_project/project.godot
Normal file
23
test_project/project.godot
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
; Engine configuration file.
|
||||||
|
; It's best edited using the editor UI and not directly,
|
||||||
|
; since the parameters that go here are not all obvious.
|
||||||
|
;
|
||||||
|
; Format:
|
||||||
|
; [section] ; section goes between []
|
||||||
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
|
config_version=4
|
||||||
|
|
||||||
|
_global_script_classes=[ ]
|
||||||
|
_global_script_class_icons={
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[application]
|
||||||
|
|
||||||
|
config/name="test_project"
|
||||||
|
run/main_scene="res://empty_scene.tscn"
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
environment/default_environment="res://default_env.tres"
|
Reference in New Issue
Block a user