diff --git a/ReadMe.md b/ReadMe.md index 3270390..c4ee1a4 100644 --- a/ReadMe.md +++ b/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 diff --git a/action.yml b/action.yml index 8d4fa3e..d625999 100644 --- a/action.yml +++ b/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 \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh index b04ed70..3c6022c 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -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 \ No newline at end of file