rmtew / incursion-roguelike

The legendary computer game Incursion: Hall of the Goblin King!
https://incursion-roguelike.net/
Other
9 stars 1 forks source link

Continous integration #6

Closed HexDecimal closed 3 months ago

HexDecimal commented 3 months ago

Would be nice to setup a GitHub Actions workflow running MSBuild on the solution, but I'm not yet familiar with testing Visual Studio Solutions on CI.

In theory it should be possible to repeat the instructions I've been given previously to create an automated build.

rmtew commented 3 months ago

I've added one that tries to build the solution. It will error due to lack of dependencies and x64/debug modaccent custom step for now.

I think we need a higher resolution of running projects where we try variations.

I'm not sure how this is best structured yet, just the solution will be fine I think.

HexDecimal commented 3 months ago

I've made about as much progress as you.

Adding failing workflows to master is bad form. In the future make experimental workflows a pull request or a topic branch.

If the action only triggers on "master" then you have to forbid non-PR pushes to the master branch. Otherwise untested code is too easily pushed. I usually remove that restriction so that topic branches are tested before merging them.

HexDecimal commented 3 months ago

Debugging CI issues on master will forever pollute the Git history. USE A TOPIC BRANCH FOR FIXING CI ISSUES. Then rebase the branch once all issues are resolved.

Making sure you don't repeat my mistakes.

rmtew commented 3 months ago

I'll force push.

HexDecimal commented 3 months ago

Thanks for the heads up. I'll be able to handle it, but force pushing to master is not something to get in the habit of. The only reason it's remotely allowed this time is because nobody else is forking the project at the moment.

Most of the time it's better to simply admit that your current pushes to master are permanent.

HexDecimal commented 3 months ago

You can set SOLUTION_FILE_PATH: build/exe_libtcod.vcxproj to build only that and its dependencies.

rmtew commented 3 months ago

Good point. I hand-edited the solution before seeing your comment.

rmtew commented 3 months ago

Force push done. I am happy to fix anything related to any mismatched commit history.

When compiling locally I have problems seeing the custom build steps running. This will mean that instead of running flex and then modaccent in turn and crashing before building, Debug/x64 will build successfully. This seems to be reflected in CI as Debug/x64 passed.

HexDecimal commented 3 months ago

Issues which come up from force pushing to master are not something you can fix without breaking it even more, which is why pushing to master is taken so seriously.

I'll review and clean up your workflow, then close this issue.