diff --git a/.bumpversion.cfg b/.bumpversion.cfg deleted file mode 100644 index 8d9fa76..0000000 --- a/.bumpversion.cfg +++ /dev/null @@ -1,11 +0,0 @@ -[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 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..49beecc --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# Auto detect text files and perform LF normalization +* text=auto +* eol=lf diff --git a/.github/workflows/test_action_3.x.yml b/.github/workflows/test_action_3.x.yml deleted file mode 100644 index 5d8aa9e..0000000 --- a/.github/workflows/test_action_3.x.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Test Action 3.x - -on: [push, pull_request] - -jobs: - TestAction: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Run Action - uses: ./ - with: - name: test_project - preset: linux - projectDir: 3.x_test_project - package: 'true' \ No newline at end of file diff --git a/.github/workflows/test_action_4.x.yml b/.github/workflows/test_action_4.x.yml deleted file mode 100644 index 6e685cd..0000000 --- a/.github/workflows/test_action_4.x.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Test Action 4.x -on: - push: - branches: [ 'master', 'main', 'prod', 'production' ] - -jobs: - TestAction: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Run Action - uses: ./ - with: - name: test_project - preset: linux - projectDir: 4.x_test_project - package: 'true' \ No newline at end of file diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml deleted file mode 100644 index b70c1f9..0000000 --- a/.github/workflows/version.yml +++ /dev/null @@ -1,30 +0,0 @@ -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 \ No newline at end of file diff --git a/3.x_test_project/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 b/3.x_test_project/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 deleted file mode 100644 index a111eea..0000000 --- a/3.x_test_project/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 +++ /dev/null @@ -1,3 +0,0 @@ -source_md5="0167658bc4406f0d0fe437e0197c415a" -dest_md5="64b0613b3173e1e1c96dd18b6569e62d" - diff --git a/3.x_test_project/default_env.tres b/3.x_test_project/default_env.tres deleted file mode 100644 index 20207a4..0000000 --- a/3.x_test_project/default_env.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="Environment" load_steps=2 format=2] - -[sub_resource type="ProceduralSky" id=1] - -[resource] -background_mode = 2 -background_sky = SubResource( 1 ) diff --git a/3.x_test_project/empty_scene.tscn b/3.x_test_project/empty_scene.tscn deleted file mode 100644 index b171e8d..0000000 --- a/3.x_test_project/empty_scene.tscn +++ /dev/null @@ -1,3 +0,0 @@ -[gd_scene format=2] - -[node name="Node2D" type="Node2D"] diff --git a/3.x_test_project/export_presets.cfg b/3.x_test_project/export_presets.cfg deleted file mode 100644 index 15d23b4..0000000 --- a/3.x_test_project/export_presets.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[preset.0] - -name="linux" -platform="Linux/X11" -runnable=true -custom_features="" -export_filter="all_resources" -include_filter="" -exclude_filter="" -export_path="../../test_project.x86_64" -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="" diff --git a/3.x_test_project/project.godot b/3.x_test_project/project.godot deleted file mode 100644 index f645dad..0000000 --- a/3.x_test_project/project.godot +++ /dev/null @@ -1,23 +0,0 @@ -; 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" diff --git a/4.x_test_project/.gitattributes b/4.x_test_project/.gitattributes deleted file mode 100644 index 8ad74f7..0000000 --- a/4.x_test_project/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Normalize EOL for all files that Git considers text files. -* text=auto eol=lf diff --git a/4.x_test_project/.gitignore b/4.x_test_project/.gitignore deleted file mode 100644 index 4709183..0000000 --- a/4.x_test_project/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# Godot 4+ specific ignores -.godot/ diff --git a/4.x_test_project/export_presets.cfg b/4.x_test_project/export_presets.cfg deleted file mode 100644 index d503ea3..0000000 --- a/4.x_test_project/export_presets.cfg +++ /dev/null @@ -1,106 +0,0 @@ -[preset.0] - -name="linux" -platform="Linux/X11" -runnable=true -dedicated_server=false -custom_features="" -export_filter="all_resources" -include_filter="" -exclude_filter="" -export_path="" -encryption_include_filters="" -encryption_exclude_filters="" -encrypt_pck=false -encrypt_directory=false -script_encryption_key="" - -[preset.0.options] - -custom_template/debug="" -custom_template/release="" -debug/export_console_script=1 -binary_format/embed_pck=false -texture_format/bptc=true -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false -binary_format/architecture="x86_64" -ssh_remote_deploy/enabled=false -ssh_remote_deploy/host="user@host_ip" -ssh_remote_deploy/port="22" -ssh_remote_deploy/extra_args_ssh="" -ssh_remote_deploy/extra_args_scp="" -ssh_remote_deploy/run_script="#!/usr/bin/env bash -export DISPLAY=:0 -unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" -\"{temp_dir}/{exe_name}\" {cmd_args}" -ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash -kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") -rm -rf \"{temp_dir}\"" - -[preset.1] - -name="windows" -platform="Windows Desktop" -runnable=true -dedicated_server=false -custom_features="" -export_filter="all_resources" -include_filter="" -exclude_filter="" -export_path="" -encryption_include_filters="" -encryption_exclude_filters="" -encrypt_pck=false -encrypt_directory=false -script_encryption_key="" - -[preset.1.options] - -custom_template/debug="" -custom_template/release="" -debug/export_console_script=1 -binary_format/embed_pck=false -texture_format/bptc=true -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false -binary_format/architecture="x86_64" -codesign/enable=false -codesign/identity_type=0 -codesign/identity="" -codesign/password="" -codesign/timestamp=true -codesign/timestamp_server_url="" -codesign/digest_algorithm=1 -codesign/description="" -codesign/custom_options=PackedStringArray() -application/modify_resources=true -application/icon="" -application/console_wrapper_icon="" -application/icon_interpolation=4 -application/file_version="" -application/product_version="" -application/company_name="" -application/product_name="" -application/file_description="" -application/copyright="" -application/trademarks="" -ssh_remote_deploy/enabled=false -ssh_remote_deploy/host="user@host_ip" -ssh_remote_deploy/port="22" -ssh_remote_deploy/extra_args_ssh="" -ssh_remote_deploy/extra_args_scp="" -ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' -$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' -$trigger = New-ScheduledTaskTrigger -Once -At 00:00 -$settings = New-ScheduledTaskSettingsSet -$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings -Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true -Start-ScheduledTask -TaskName godot_remote_debug -while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } -Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" -ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue -Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue -Remove-Item -Recurse -Force '{temp_dir}'" diff --git a/4.x_test_project/icon.svg b/4.x_test_project/icon.svg deleted file mode 100644 index adc26df..0000000 --- a/4.x_test_project/icon.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/4.x_test_project/icon.svg.import b/4.x_test_project/icon.svg.import deleted file mode 100644 index 58c0fb1..0000000 --- a/4.x_test_project/icon.svg.import +++ /dev/null @@ -1,37 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bektdji2blm55" -path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://icon.svg" -dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 -svg/scale=1.0 -editor/scale_with_editor_scale=false -editor/convert_colors_with_editor_theme=false diff --git a/4.x_test_project/project.godot b/4.x_test_project/project.godot deleted file mode 100644 index 1d26b4f..0000000 --- a/4.x_test_project/project.godot +++ /dev/null @@ -1,15 +0,0 @@ -; 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=5 - -[application] - -config/name="Test Project" -config/features=PackedStringArray("4.0", "Forward Plus") -config/icon="res://icon.svg" diff --git a/Contributors.md b/Contributors.md deleted file mode 100644 index fe0b3a0..0000000 --- a/Contributors.md +++ /dev/null @@ -1,19 +0,0 @@ -# Build Godot Action Contributors - -## Maintainers - -Name | Email | Twitter | ------|-------|---------| -[Joseph Manley](https://github.com/josephbmanley) | [joseph@cloudsumu.com](mailto:joseph@cloudsumu.com) | [@josephbmanley](https://twitter.com/josephbmanley) - -## Contributors - -A giant thanks to everyone put in the time to improve Godot CI! - -Name | Email | Twitter | ----- | ----- | ------- | -[Tomer Keren](https://github.com/Tadaboody) | [tomerpet@gmail.com](tomerpet@gmail.com) | [@Tadaboody](https://twitter.com/Tadaboody) - -## Additional Credits - -This action uses the [godot-ci](https://github.com/aBARICHELLO/godot-ci) docker image from [BARICHELLO](https://github.com/aBARICHELLO) \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 94ea8a7..b7b8031 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,11 +5,7 @@ LABEL "com.github.actions.description"="Build a Godot project for multiple platf LABEL "com.github.actions.icon"="loader" LABEL "com.github.actions.color"="blue" -LABEL repository="https://github.com/josephbmanley/build-godot-action" -LABEL homepage="https://cloudsumu.com/" -LABEL maintainer="Joseph Manley " - USER root ADD entrypoint.sh /entrypoint.sh RUN chmod +x entrypoint.sh -ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file +ENTRYPOINT ["/entrypoint.sh"] diff --git a/ReadMe.md b/README.md similarity index 86% rename from ReadMe.md rename to README.md index d6f6f6f..d91f808 100644 --- a/ReadMe.md +++ b/README.md @@ -1,13 +1,13 @@ -![Release Version](https://img.shields.io/github/v/release/josephbmanley/build-godot-action) ![Test Action](https://github.com/josephbmanley/build-godot-action/workflows/Test%20Action/badge.svg) +![Release Version](https://img.shields.io/github/v/release/felix-schindler/build-godot-action) ![Build Godot Project](logo.png) This action builds the godot project in your `$GITHUB_WORKSPACE`, so that you can easily automate builds. Table of Contents: -- [Quickstart](#Quickstart) -- [Usage](#Usage) -- [Contributors](Contributors.md) + +- [Quickstart](#quickstart) +- [Usage](#usage) ## Quickstart @@ -42,7 +42,7 @@ jobs: lfs: true - name: Build id: build - uses: manleydev/build-godot-action@v1.4.1 + uses: felix-schindler/build-godot-action@v2.0.0 with: name: example preset: ${{ matrix.platform }} @@ -60,6 +60,7 @@ 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. + > You could also use something like [softprops/action-gh-release](https://github.com/softprops/action-gh-release) to create automated releases of your game, instead of just uploading it as a artifact. **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`. @@ -82,7 +83,7 @@ Additionally if you are not using a matrix, you can set the export preset as the ```yaml - name: Build id: build - uses: manleydev/build-godot-action@v1.4.1 + uses: felix-schindler/build-godot-action@v2.0.0 with: name: example preset: win32 @@ -95,7 +96,7 @@ To change the export name, you can the `name` parameter to whatever you want you ```yaml - name: Build id: build - uses: manleydev/build-godot-action@v1.4.1 + uses: felix-schindler/build-godot-action@v2.0.0 with: name: test # This project will export with the name "test" ``` @@ -107,7 +108,7 @@ This example is set to build with debug mode enable. To disable debug, either se ```yaml - name: Build id: build - uses: manleydev/build-godot-action@v1.4.1 + uses: felix-schindler/build-godot-action@v2.0.0 with: name: example preset: ${{ matrix.platform }} @@ -121,7 +122,7 @@ If your project is located in a subdirectory, you can use the `projectDir` to ch ```yaml - name: Build id: build - uses: manleydev/build-godot-action@v1.4.1 + uses: felix-schindler/build-godot-action@v2.0.0 with: name: example preset: ${{ matrix.platform }} @@ -142,7 +143,7 @@ Example: ```yaml steps: -- uses: manleydev/build-godot-action@[VERSION] +- uses: felix-schindler/build-godot-action@[VERSION] with: name: godot-project preset: HTML5 @@ -158,12 +159,6 @@ steps: The name of the preset found in `export_presets.cfg` you would like to build. -#### subdirectory - - *Optional* - - The subdirectory in the `build` folder to output build to, can be useful for self packaging. - #### package *Optional* diff --git a/action.yml b/action.yml index 51d3ed0..043b96e 100644 --- a/action.yml +++ b/action.yml @@ -1,4 +1,4 @@ -name: "Build Godot" +name: "Build Godot Games" description: "Build a Godot project for multiple platforms" author: josephbmanley inputs: @@ -9,7 +9,7 @@ inputs: 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' + description: 'This has been removed, please do not use.' default: "" package: description: 'Set true to output an artifact zip file' diff --git a/entrypoint.sh b/entrypoint.sh index 5617260..62ee593 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -3,12 +3,14 @@ set -e # Move godot templates already installed from the docker image to home mkdir -v -p ~/.local/share/godot/export_templates -cp -a /root/.local/share/godot/export_templates/. ~/.local/share/godot/export_templates/ +mkdir ./Builds +# cp -a -f /root/.local/share/godot/export_templates/. ~/.local/share/godot/export_templates/ if [ "$3" != "" ] then - SubDirectoryLocation="$3/" + echo "SubDirectories are no longer supported." + exit 1 fi mode="export-release" @@ -20,20 +22,27 @@ fi # Export for project echo "Building $1 for $2" -mkdir -p $GITHUB_WORKSPACE/build/${SubDirectoryLocation:-""} cd "$GITHUB_WORKSPACE/$5" -godot --headless --${mode} "$2" $GITHUB_WORKSPACE/build/${SubDirectoryLocation:-""}$1 +godot ./project.godot --headless --${mode} "$2" echo "Build Done" -echo ::set-output name=build::build/${SubDirectoryLocation:-""} +ls -la ./Builds + +if [ "$5" != "" ] +then + BUILD_PATH="$GITHUB_WORKSPACE/$5/build/" +else + BUILD_PATH="$GITHUB_WORKSPACE/build/" +fi +echo build=$BUILD_PATH >> $GITHUB_OUTPUT if [ "$4" = "true" ] then echo "Packing Build" mkdir -p $GITHUB_WORKSPACE/package - cd $GITHUB_WORKSPACE/build - zip $GITHUB_WORKSPACE/package/artifact.zip ${SubDirectoryLocation:-"."} -r - echo ::set-output name=artifact::package/artifact.zip + cd ./Builds + zip $GITHUB_WORKSPACE/package/artifact.zip . -r + echo artifact=package/artifact.zip >> $GITHUB_OUTPUT echo "Done" fi