Open den-kozlov opened 5 years ago
It could be worth. I would be great in fact, that annoying dlls... Tbh, I haven't used CI with git. Go ahead if you want.
you could use appveyor for that, you could provide a (private) nuget package with the oni assembly dll file (I think that file is needed for compilation?) inside appveyor, let it automatically compile and publish the mod files via the github release api (much better place than a git repository to place binaries btw)
I've managed to set up the travis-ci build in my repo (https://github.com/Blindfold-Games/ONI-Blind-MODS). Binaries are provided via releases. I pull ONI dll's from my google drive, but private nuget package is a much better solution. I have no idea why I didn't tried that, but I definitely will. Thank you for the hint @Flow86. I've tried Appveyor at first, but couldn't find the way to turn off Post-Build events in the settings. I guess one should provide a custom build script to do that. And that's where they lost me :) @javisar I can share my Travis-CI config (or you can get .travis.yml from my repo) so you can deploy it. The most complex step in my build pipeline is refreshing ONI libs on my google drive. If that could be simplified by means of nuget packages it would be great.
ah if you can build oni mods with mono too, then travis is much better than appveyor.
ah if you can build oni mods with mono too, then travis is much better than appveyor.
Well yeah, I guess so. The entire Unity framework is based on Mono after all.
@Blindfold I'll try your yml. Thanks for the help. This sould work nicely with ONIModloader repo, but I'm not sure how to make it work for this mods repo. I mean, if I understand correctly, every time I make a simple change to a mod, travis will generate a new release for all the mods, and this seems to me an overkill. From the top of my mind, a simple solution could be, include the Mods (with the dlls) folder into gitignore, and use travis to generate them when changed. Idk if this is possible.
@javisar Yes Travis does automatic build on each commit and accepted pull-request of each branch, but it won't do release automatically (at least in my config). Github requires that each release should be tagged. You have to do this manually by tagging specific commit when you are ready to release your mod-pack into the wild. So Travis will only archive and release mods when it builds a tagged branch. So you still have full control on what and when your are releasing. Just tag, push and wait for confirmation release from Travis. Simple. =)
sure
@javisar, do you think it is worth to setup some CI tool to automate releases? It allows us to get rid of binaries on VCS, which causes conflicts on every merge. Build can be triggered on every accepted pull request so binaries will alway be up-to-date.
I can invest some of my time into this.