Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aseprite (and others) in CICD #15

Open
Alenael opened this issue Sep 22, 2023 · 10 comments
Open

Aseprite (and others) in CICD #15

Alenael opened this issue Sep 22, 2023 · 10 comments

Comments

@Alenael
Copy link

Alenael commented Sep 22, 2023

If I want to export the Godot game using GitHub/GitLab CICD how does this work with this tool? It seems like I can develop locally just fine but when trying to use this tool in the CICD it can't work due to missing aseprite.exe when it tries to generate the imported files. This applies to any other format which requires something to perform the conversion.

Maybe I am missing something here or there are alternatives like including my .godot/imported folder to git (from my understanding this isn't recommended but I don't know why). I could also build and install Aseprite in the CICD perhaps.

@nklbdev
Copy link
Owner

nklbdev commented Sep 22, 2023

There is really no need to include the .godot/imported folder in Git. It contains files that will be regenerated from sources that are located in the main project file system. This is why the .godot folder is hidden: it contains your local settings, imported resources and the like so that you can develop locally and run the game in debug mode.

If you want all resources to be imported anew on the server each time, I think it’s worth adding some scripts (Python, Powershell or others) that modify certain sections of the project.godot file. For example, save the project file template to Git, not the project itself. Let your script insert the desired paths into it and save it with the name project.godot. After this, you can run Godot, and it will make all the necessary imports. To do this, the server must have installed applications with which integration is configured: Aseprite, Krita or others.

The Godot command line interface documentation can also help you.

@Alenael
Copy link
Author

Alenael commented Sep 22, 2023

Thanks for quick response. Looks like I will need to make the applications available and modify the .godot file as suggested to point to the paths on the runner where the temp/aseprite/etc are located.

@nklbdev
Copy link
Owner

nklbdev commented Sep 22, 2023

There are several other plugins that work in a similar way, integrating Godot's resource system with external applications. Perhaps the developers who use them already have ready-made recipes?

You might also be interested in setting up incremental processing of source files. Godot saves the result of each import with a hash of the source file. Therefore, when the file changes, Godot detects this and performs the import again. Therefore, saving the .godot.import folder on the server can speed up the build. However, sometimes it needs to be cleaned so that orphaned resources do not accumulate in it.

By the way, when exporting a project to artifacts for each platform, you can specify which files from the project need to be exported and which do not. This plugin serves only for import resources. You can completely exclude its files from export to artifacts.

@nklbdev
Copy link
Owner

nklbdev commented Sep 22, 2023

You can try using LibreSprite if you do not have a licensed version of Aseprite to install on your server. It supports some of the required functions, but not all. You can read the details on the Importality's Wiki page about Aseprite and LibreSprite.

@Alenael
Copy link
Author

Alenael commented Sep 22, 2023

Thanks for details. I tried a handful of things but didn't end up liking any of them as it just complicated things to much.

I am rethinking how I will approach this and might just export via the Aseprite command line instead and use the actual files in Godot.

@nklbdev
Copy link
Owner

nklbdev commented Oct 16, 2023

@Alenael, perhaps I can help you!

In the 'issue #19' I was told to try to transfer the plugin settings from ProjectSettings to EditorSettings.

Please test the latest version of the use_editor_settings_instead_of_project_settings branch on your project. Perhaps it will make your CI/CD easier.

@Xaneph
Copy link

Xaneph commented Oct 18, 2023

You should seriously consider making this the master branch....It's more future proof and widely compatible with existing projects in Godot 4 that are well established. Otherwise you have to stumble into this thread and install this version to get it to work and the way I see it...there is no reason for that.

@Xaneph
Copy link

Xaneph commented Oct 18, 2023

ALSO, Genius plugin and I love you :)

@adamgiacomelli
Copy link

Had this exact issue - I included the .godot/imported folder into git and set up the export template to exclude the actual plugin but included all the .aseprite files.
Although I did all the importing on my linux machine the windows build on github actions works without issues and it does not need the aseprite executable.

@nklbdev
Copy link
Owner

nklbdev commented Jan 6, 2024

Hello, you can try to use LibreSprite executable to import Aseprite files. It has smaller functionality, but give it a chance.
Also, if you have one Aseprite executable (for Windows, for example), then you can take another one (for Linux or Mac). This case is available on Steam, HumbleBundle etc. Also you can try to build it from sources manually.

P.S. Yes, I can not to export frames and metadata from Aseprite-file to import it into Godot as a resource without Aseprite itself. Sad, but true 😭

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants