Closed firebelley closed 2 years ago
Hey @firebelley
great to see you back! This action seemed quite abandoned when I started using it last week or so. That's why I decided to create a new action on my own, with similar intentions than what you described in the issue description.
I don't have time to try your action right now, but here are my key takeaways / ideas / question i had while recreating this.
This is what my entire config looks like (taken from https://github.com/manuel3108/github-godot-export/blob/main/.github/workflows/example-mono.yml)
name: Example 2 (Mono)
on:
push:
branches:
- main
jobs:
export_game:
runs-on: ubuntu-latest
name: Export game
steps:
- name: checkout
uses: actions/checkout@v2.0.0
# Read the version from a txt file so we can also use this version in our application
- name: Read version.txt
id: version
uses: juliangruber/read-file-action@v1
with:
path: ./examples/godot_3.4.4_mono/version.txt
# Call the export godot action to build and zip the executables for the different targets
# Provides a comma separated list of generated files, used to i.e. generate a new release
- name: export godot
id: godot
uses: manuel3108/github-godot-export@main
with:
godot_version: 3.4.4-stable
use_mono: true
base_dir: ./examples/godot_3.4.4_mono/
# Use the generated artifacts and the version read from a file to create a new github release
- name: create release
uses: ncipollo/release-action@v1
with:
artifacts: ${{ steps.godot.outputs.artifacts }}
generateReleaseNotes: true
tag: v${{ steps.version.outputs.content }}
token: ${{ secrets.GITHUB_TOKEN }}
This is also the full link to my repo: https://github.com/manuel3108/github-godot-export. The code is not cleaned up, but this file https://github.com/manuel3108/github-godot-export/blob/main/src/index.js might give you an idea on my opinions about the points 1 and 2.
In order to combine our efforts, I have just marked my repo as an archive. I'm going to try to test your version here in the upcoming days.
What are your opinions on the points mentioned above?
@manuel3108 thanks for the detailed feedback! Let me respond to each of your points:
Those are my thoughts, please feel free to push back on anything. Also, I would love your opinion on what changes should be included in this PR and what changes can be done in 4.x.
Thanks again for your collaboration on this!
@firebelley Sorry for my late feedback, but here you go:
$HOME/.local/share/godot/dist/*
. This would already remove a step from the action file, and be less prone to errors, if it becomes necessary that we change this path in the future.As far as I can see, all the changes we discussed would not be breaking at all, so I don't think that there are things we need to do before merging.
Things I personally would like to be done before merging this branch:
For 3. this would probably be the layout of the steps after the change (changed lines in double stars):
- name: export game
# Use latest version (see releases for all versions)
uses: firebelley/godot-export@update-4
**id: godot**
with:
# Defining all the required inputs
# I used the mono version of Godot in this example
godot_executable_download_url: https://github.com/godotengine/godot/releases/download/3.4.4-stable/Godot_v3.4.4-stable_mono_linux_headless_64.zip
godot_export_templates_download_url: https://github.com/godotengine/godot/releases/download/3.4.4-stable/Godot_v3.4.4-stable_mono_export_templates.tpz
relative_project_path: ./
archive_output: true
- name: create release
# This release action has worked well for me. However, you can most likely use any release action of your choosing.
# https://github.com/softprops/action-gh-release
uses: softprops/action-gh-release@v0.1.14
with:
token: ${{ secrets.GITHUB_TOKEN }}
generate_release_notes: true
tag_name: v${{ steps.version.outputs.content }}
**files: ${{ steps.godot.outputs.distFolder}}**
And for that to work, we would need to add a line similar to this
core.setOutput('files', distFolder);
somewhere in the code.
Also, as a further note: I tested the 4.0 export this morning by specifying uses: firebelley/godot-export@update-4
and everything worked as expected. The only thing that I'm still missing, is that the update of the windows icon is working. But maybe that's a configuration issue on my side.
@manuel3108 Thanks! I appreciate your feedback as always. I agree with all your points above, particularly your suggestion to export the dist folder location. I like your suggestions for what you'd like to see done before merging, so I'm going to go ahead and work on those three things. The other things, since they aren't breaking changes, can come in 4.x versions.
Also, thanks for testing! Glad to hear everything works except for the windows icon update. That seems to be finicky, I'll do some double checking on my end for that.
Thanks again, I'll get to work on those changes before merging. Let me know if any other ideas come to mind!
Sure, no problem @firebelley
Maybe it's also a misconfiguration on my end? Which setting am i expected to set for this windows icon thing? Because locally it's also not working for me (windows host). I will also do some research in that direction!
@manuel3108 Apologies for the delay on this, I've addressed all your feedback. There are now 2 outputs, 1 for raw build files and one for archived build files, as well as a directory and documentation for example projects that can be built by forking the repository. I also went through and updated the documentation quite substantially.
Regarding windows icons, I was able to use this feature without issue. You should just need to set the wine_path
as well as specify an .ico
file for your export. Perhaps you need to clear the icon cache as suggested in the docs? Sometimes Windows won't display the most up-to-date icon. https://docs.godotengine.org/en/stable/tutorials/export/changing_application_icon_for_windows.html#testing-the-result
Let me know if you have any other feedback before I merge!
Hey, also sorry for the delay on my side. I finally managed to try out the new version, and it seems to work seamlessly. Also I tried the archive export variable, which also worked out great.
As for the icon. Usually the bug sits in front of the computer, we would say in geramny. Also in this case, apparently I screwed up my pipeline and was completely missing the wine step. Adding it, finally got me an exe with the correct icon set. 👍
So everything looks fine to me. I like that you changed the inputs of the readme to a table. Also readme looks fine to me. So feel free to merge.
Awesome, thanks for taking a look! I love that phrase "The bug sits in front of the computer." I am going to start using that!
Merging 👍
This action has become bloated in an effort to support many disparate use cases. Now that there are more actions available, this PR strips down the feature set and recommends other actions in conjunction with this one. Now,
godot-export
is solely responsible for exporting the builds and optionally archiving them.To test, see the new examples and documentation here: https://github.com/firebelley/godot-export/tree/update-4