mirror of
				https://github.com/yeslayla/build-godot-action.git
				synced 2025-11-04 16:23:04 +01:00 
			
		
		
		
	
							
								
								
									
										43
									
								
								ReadMe.md
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								ReadMe.md
									
									
									
									
									
								
							@ -4,37 +4,50 @@ This action builds the godot project in your `$GITHUB_WORKSPACE`, so that you ca
 | 
			
		||||
 | 
			
		||||
## 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:
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
steps:
 | 
			
		||||
- uses: josephbmanley/build-godot-action@master
 | 
			
		||||
  env:
 | 
			
		||||
    PROJECT: godot-project
 | 
			
		||||
    SUBDIRECTORY: project
 | 
			
		||||
- uses: josephbmanley/build-godot-action@[VERSION]
 | 
			
		||||
  with:
 | 
			
		||||
    name: godot-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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								action.yml
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								action.yml
									
									
									
									
									
								
							@ -1,9 +1,27 @@
 | 
			
		||||
name: "Build Godot"
 | 
			
		||||
description: "Build a Godot project for multiple platforms"
 | 
			
		||||
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
 | 
			
		||||
runs:
 | 
			
		||||
  using: docker
 | 
			
		||||
  image: Dockerfile
 | 
			
		||||
  args:
 | 
			
		||||
    - ${{ inputs.name }}
 | 
			
		||||
    - ${{ inputs.preset }}
 | 
			
		||||
    - ${{ inputs.subdirectory }}
 | 
			
		||||
    - ${{ inputs.package }}
 | 
			
		||||
branding:
 | 
			
		||||
  icon: loader
 | 
			
		||||
  color: blue
 | 
			
		||||
@ -2,8 +2,8 @@
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
workDir=`pwd`
 | 
			
		||||
platforms="linux windows mac html5"
 | 
			
		||||
 | 
			
		||||
# Install export templates
 | 
			
		||||
wget https://downloads.tuxfamily.org/godotengine/3.1.1/Godot_v3.1.1-stable_export_templates.tpz --quiet
 | 
			
		||||
mkdir ~/.cache
 | 
			
		||||
mkdir -p ~/.config/godot
 | 
			
		||||
@ -12,44 +12,22 @@ unzip Godot_v3.1.1-stable_export_templates.tpz
 | 
			
		||||
mv templates/* ~/.local/share/godot/templates/3.1.1.stable
 | 
			
		||||
rm -f Godot_v3.1.1-stable_export_templates.tpz
 | 
			
		||||
 | 
			
		||||
if [ "${SUBDIRECTORY}" != "" ]
 | 
			
		||||
if [ "$3" != "" ]
 | 
			
		||||
then
 | 
			
		||||
    SubDirectoryLocation="${SUBDIRECTORY}/"
 | 
			
		||||
    SubDirectoryLocation="$3/"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Export for Linux
 | 
			
		||||
# Export for project
 | 
			
		||||
echo "Building ${PROJECT} for Linux"
 | 
			
		||||
mkdir -p ./build/linux/${SubDirectoryLocation:-""}
 | 
			
		||||
godot --export Linux/X11 ./build/linux/${SubDirectoryLocation:-""}${PROJECT}
 | 
			
		||||
mkdir -p `pwd`/build/${SubDirectoryLocation:-""}
 | 
			
		||||
godot --export $2 `pwd`/build/${SubDirectoryLocation:-""}$1
 | 
			
		||||
 | 
			
		||||
# Export for Windows
 | 
			
		||||
echo "Building ${PROJECT} for Windows"
 | 
			
		||||
mkdir -p ./build/windows/${SubDirectoryLocation:-""}
 | 
			
		||||
godot --export "Windows Desktop" ./build/windows/${SubDirectoryLocation:-""}${PROJECT}.exe
 | 
			
		||||
echo ::set-output name=build::`pwd`/build/${SubDirectoryLocation:-""}
 | 
			
		||||
 | 
			
		||||
# Export for OSX
 | 
			
		||||
echo "Building ${PROJECT} for OSX"
 | 
			
		||||
mkdir -p ./build/mac/${SubDirectoryLocation:-""}
 | 
			
		||||
godot --export "Mac OSX" ./build/mac/${SubDirectoryLocation:-""}${PROJECT}
 | 
			
		||||
 | 
			
		||||
# Export for HTML5
 | 
			
		||||
echo "Building ${PROJECT} for HTML5"
 | 
			
		||||
mkdir -p ./build/html5/${SubDirectoryLocation:-""}
 | 
			
		||||
godot --export "HTML5" ./build/html5/${SubDirectoryLocation:-""}index.html
 | 
			
		||||
 | 
			
		||||
mkdir ${workDir}/package
 | 
			
		||||
if [ ${PACKAGE:-"false"} = "true" ]
 | 
			
		||||
if [ "$4" = "true" ]
 | 
			
		||||
then
 | 
			
		||||
    for platform in $platforms
 | 
			
		||||
    do
 | 
			
		||||
        if [ "$(ls -A ${workDir}/build/${platform})" ]; then
 | 
			
		||||
            echo $platform
 | 
			
		||||
            pwd
 | 
			
		||||
            ls
 | 
			
		||||
            cd ${workDir}/build/${platform}
 | 
			
		||||
            zip ${workDir}/package/${PROJECT}-${platform}.zip ${SUBDIRECTORY:-"*"} -r
 | 
			
		||||
        else
 | 
			
		||||
            echo "${platform} did not build!"
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
    mkdir `pwd`/package
 | 
			
		||||
    cd `pwd`/build
 | 
			
		||||
    zip `pwd`/package/artifact.zip ${SubDirectoryLocation:-"*"} -r
 | 
			
		||||
    echo ::set-output name=artifact::`pwd`/package/artifact.zip
 | 
			
		||||
fi
 | 
			
		||||
		Reference in New Issue
	
	Block a user