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

Stable Release/experimental builds #21

Open
amund7 opened this issue Jan 5, 2019 · 6 comments
Open

Stable Release/experimental builds #21

amund7 opened this issue Jan 5, 2019 · 6 comments
Labels

Comments

@amund7
Copy link
Owner

amund7 commented Jan 5, 2019

Currently we have an automated build server (emons.visualstudio.com , now called Azure DevOps), that builds, packs, creates installer ("deploy") and posts to github as a release.

Problem is, this happens with every checkin, merge etc. and they are not necessarily ready for release.

It would be cool if we could post this as nightly/experimental/latest builds, but somehow keep track of properly tested builds that we want new users to download and install?

Does anyone know how to improve on this ? Brian-Man has access to administer these builds, let me know if you want access too Bokonon.

See https://github.com/amund7/CANBUS-Analyzer/releases

@Bokonon79
Copy link
Collaborator

I think you've got the right idea that we need to have separate "dev" and "release" branches, because right now, "master" is effectively serving as both.

I don't have any experience with Azure DevOps, but I am assuming that build/deploy automation can be configured on a per-branch basis, and is currently configured for the master branch. If so, a couple of options might be:

Option 1: Make "master" the release branch. Create a new "develop" or "Latest" branch for the project, and merge all PRs and other changes into this branch. When this branch is confirmed stable and ready for release, merge to "master", triggering the build/deploy automation.

Option 2: Make a new "release" branch, enable build/deploy automation on this branch, and disable that automation on "master". Continue to use "master" as the main "development" branch, merging all PRs and changes there. When "master" is confirmed stable and ready for release, merge to "release", triggering the build/deploy automation.

@amund7
Copy link
Owner Author

amund7 commented Jan 6, 2019

I like option 2. Then we can also probably get an overview over which commits has happened since last time, and can make a changelog.

I'll try to make the build automation only build a branch we call 'release'.

@amund7
Copy link
Owner Author

amund7 commented Jan 6, 2019

On second thought, I really like that we have super fast, always latest builds. In the event we break something, we can always delete that release manually. I think I'd like to keep it this way for a while and see how it goes.

@scottstout
Copy link

scottstout commented Jan 6, 2019 via email

@brian-man
Copy link
Collaborator

Recommendation:

  1. Create a release branch
  2. Adjust configuration so that master and release branches both automatically generate and publish builds with each commit
  3. General public uses release branch builds and early adopters can use master branch builds with the expectation that stability isn't the priority for master branch builds

@amund7
Copy link
Owner Author

amund7 commented Jan 11, 2019

Agreed, but the problem is, how to distinguish those builds here on Github? Tags maybe?

As it sits today, the microsoft server builds, creates installer, packages, zips AND uploads the files to github, all automatically.

Or, would it be better to deploy to microsoft 'blob', if that has become free now?
If this could be combined with auto updates (that requires a steady URL from which the installer can be found), that would be a big improvement, which solves #23

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

No branches or pull requests

4 participants