Create a CI environment and publish nightly packages
Closed this issue · 3 comments
It would be nice to have a build system able to provide nightly packages for dev/testing.
- CI is provided
- Nightly build was foregone
From the other issue:
I was thinking AppVeyor would be a good build platform, but if we want a nuget feed for nightly builds or CI builds then myget makes sense as the feed host, I'm not sure about it being the build platform though.
I also agree on this now. We should use a proper build server (service) and push the nuget packages to myget. The build server should build the nuget packages, but also stuff like run unit tests and some more. I've asked the question on how Akka.Net is doing it:
we use TeamCity + Azure Cloud Plugin
essentially our build server has a permanent VM that runs constantly
and ideally, an external database - I haven't set one up yet
but all of the build agents that actually run the builds are created on-demand
dynamically allocated by Azure
they download the latest changes from Github
and run a FAKE script weuse
and we use multi-stage builds in TeamCity to make errors in the build process more granular
i.e. unit tests are performed separately from compilation
that sort of thing
we use the Github Status API plugin for TeamCity to write the status of each of those stages back to Github
which is what gives us that fun green checkmark
Are we all okay with using ProjectScaffold as a starting point for configuring builds then I can get this all going much quicker. The one caveat is that ProjectScaffold assumes Paket instead of vanilla NuGet. I'm comfortable with Paket, but I wouldn't make this change without agreement first.
So its been a long time coming but I think I've got a good system up and running. There are no nightly builds, but we can address that when we have more code churn.