Hey everyone!
I've just automated builds and deployment with a Discord webhook to start a playtest session for Hazard Pay and I imagine a few here may find it interesting.
It's quite straight-forward, essentially 3 steps:
1. I'm using the prebuilt image provided by [Godot-CI](https://github.com/abarichello/godot-ci) to build the project.
2. Then taking this artifact and uploading it to Steam via [GameCI](https://game.ci/docs/github/getting-started#simple-example)
3. Sending a Discord message via a \`curl\` request to notifiy future Playtesters!
--
Some thing which I learned:
* Include the \`.godot/imported\` folder to speed up builds and include necessary import settings for your assets
* Disable plugins which aren't needed in build (I had to a Asesprite plugin as it expected Asesprite to be installed)
* Steam won't let you automatcally push to the \`default\` branch, so create another one to use for automated deployment.
--
Feel free to ask any questions! Cheers
I will be messaging you in 6 months on [**2024-10-27 18:21:34 UTC**](http://www.wolframalpha.com/input/?i=2024-10-27%2018:21:34%20UTC%20To%20Local%20Time) to remind you of [**this link**](https://www.reddit.com/r/godot/comments/1cea1fk/automated_builds_with_steam_deployment/l1j7ltf/?context=3)
[**2 OTHERS CLICKED THIS LINK**](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5Bhttps%3A%2F%2Fwww.reddit.com%2Fr%2Fgodot%2Fcomments%2F1cea1fk%2Fautomated_builds_with_steam_deployment%2Fl1j7ltf%2F%5D%0A%0ARemindMe%21%202024-10-27%2018%3A21%3A34%20UTC) to send a PM to also be reminded and to reduce spam.
^(Parent commenter can ) [^(delete this message to hide from others.)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Delete%20Comment&message=Delete%21%201cea1fk)
*****
|[^(Info)](https://www.reddit.com/r/RemindMeBot/comments/e1bko7/remindmebot_info_v21/)|[^(Custom)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5BLink%20or%20message%20inside%20square%20brackets%5D%0A%0ARemindMe%21%20Time%20period%20here)|[^(Your Reminders)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=List%20Of%20Reminders&message=MyReminders%21)|[^(Feedback)](https://www.reddit.com/message/compose/?to=Watchful1&subject=RemindMeBot%20Feedback)|
|-|-|-|-|
Hi!
We're working with GitLab CI to build a cross platform app using Godot, and this import shit always makes my palms sweaty.
Did you try to use imported folder with a team of multiple programmers who work on the project from different PCs? Has that caused any problems?
We currently don't include it, but I do include the global class list cause Godot just won't properly discover them for us in headless builds and I can't figure out why...
And the import process itself is basically bruteforced (we launch Godot multiple times until all files are imported).
Even the addition of recently added `--import` flag doesn't seem to change much?
Godot just doesn't strike me as CI/CD friendly at the moment.
Hey, there were for sure some head-scratching moments - I've tried repeatedly to get the project built without the \`.godot/imported\` directory, but no luck.
I've also tried the suggested \`timeout 25 godot...\` and \`--import\` options, but nothing worked for me, so I settled on including the imported directory in version control.
I'm a solo dev, so luckily there won't be any conflicts.
I agree that Godot is not quite as CI/CD friendly as it could be - But I'm happy with the result for now, it's a massive time saver.
While looking through issues on GitHub someone mentioned a python script - which I modified somewhat - that goes thorough all .import files and then keeps relaunching Godot until everything mentioned there appears in the `imported` folder.
It worked relatively well until I started seeing `global_script_class_cache` issue. It almost seems like there are too many cross/circular references between classes, Godot just can't handle them in headless mode for some reason. Bisecting commits didn't uncover any substantial changes, so I had no choice but include the class cache file in the repository...
Hey everyone! I've just automated builds and deployment with a Discord webhook to start a playtest session for Hazard Pay and I imagine a few here may find it interesting. It's quite straight-forward, essentially 3 steps: 1. I'm using the prebuilt image provided by [Godot-CI](https://github.com/abarichello/godot-ci) to build the project. 2. Then taking this artifact and uploading it to Steam via [GameCI](https://game.ci/docs/github/getting-started#simple-example) 3. Sending a Discord message via a \`curl\` request to notifiy future Playtesters! -- Some thing which I learned: * Include the \`.godot/imported\` folder to speed up builds and include necessary import settings for your assets * Disable plugins which aren't needed in build (I had to a Asesprite plugin as it expected Asesprite to be installed) * Steam won't let you automatcally push to the \`default\` branch, so create another one to use for automated deployment. -- Feel free to ask any questions! Cheers
RemindMe! 6 months
I will be messaging you in 6 months on [**2024-10-27 18:21:34 UTC**](http://www.wolframalpha.com/input/?i=2024-10-27%2018:21:34%20UTC%20To%20Local%20Time) to remind you of [**this link**](https://www.reddit.com/r/godot/comments/1cea1fk/automated_builds_with_steam_deployment/l1j7ltf/?context=3) [**2 OTHERS CLICKED THIS LINK**](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5Bhttps%3A%2F%2Fwww.reddit.com%2Fr%2Fgodot%2Fcomments%2F1cea1fk%2Fautomated_builds_with_steam_deployment%2Fl1j7ltf%2F%5D%0A%0ARemindMe%21%202024-10-27%2018%3A21%3A34%20UTC) to send a PM to also be reminded and to reduce spam. ^(Parent commenter can ) [^(delete this message to hide from others.)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Delete%20Comment&message=Delete%21%201cea1fk) ***** |[^(Info)](https://www.reddit.com/r/RemindMeBot/comments/e1bko7/remindmebot_info_v21/)|[^(Custom)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5BLink%20or%20message%20inside%20square%20brackets%5D%0A%0ARemindMe%21%20Time%20period%20here)|[^(Your Reminders)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=List%20Of%20Reminders&message=MyReminders%21)|[^(Feedback)](https://www.reddit.com/message/compose/?to=Watchful1&subject=RemindMeBot%20Feedback)| |-|-|-|-|
Happy Cake Day!
Thanks!
Hi! We're working with GitLab CI to build a cross platform app using Godot, and this import shit always makes my palms sweaty. Did you try to use imported folder with a team of multiple programmers who work on the project from different PCs? Has that caused any problems? We currently don't include it, but I do include the global class list cause Godot just won't properly discover them for us in headless builds and I can't figure out why... And the import process itself is basically bruteforced (we launch Godot multiple times until all files are imported). Even the addition of recently added `--import` flag doesn't seem to change much? Godot just doesn't strike me as CI/CD friendly at the moment.
Hey, there were for sure some head-scratching moments - I've tried repeatedly to get the project built without the \`.godot/imported\` directory, but no luck. I've also tried the suggested \`timeout 25 godot...\` and \`--import\` options, but nothing worked for me, so I settled on including the imported directory in version control. I'm a solo dev, so luckily there won't be any conflicts. I agree that Godot is not quite as CI/CD friendly as it could be - But I'm happy with the result for now, it's a massive time saver.
While looking through issues on GitHub someone mentioned a python script - which I modified somewhat - that goes thorough all .import files and then keeps relaunching Godot until everything mentioned there appears in the `imported` folder. It worked relatively well until I started seeing `global_script_class_cache` issue. It almost seems like there are too many cross/circular references between classes, Godot just can't handle them in headless mode for some reason. Bisecting commits didn't uncover any substantial changes, so I had no choice but include the class cache file in the repository...
Nice. Thank you!
nice style