![]() ![]() Then you are in the situation of 'hmm what versions do i want' rather than 'omg, what version have i got?' The key thing is to version every build uniquely via some central process. We did experiment with use of the -prerelease flag but this required a further manual move package from prelease to 'normal' step and a requirement to rebuild components which depended on them. Now this does mean you get A LOT of versioned packages floating about. If everything is good, manually deploy version to production via octopus. Octopus deploys finished build to qa for manual testing (assuming all tests pass) Teamcity triggers nuget packaging using the same version number for nuget published libraries Teamcity build amends the version with manual major minor + the build number in AssemblyInfo.cs ie 1.1.hotfix.build Git repo per component with gitflow branching strategyĪll commits to develop trigger a team city build net example which might be technology agnostic. This would ideally be done through smart git tagging but something that does not excessively tag the master branch is preferred. How can I indicate reliably in the CI-CD environment which version exists wrt the previous release into production. The only change comes about for development branch ie. ![]() I would prefer not to change this versioning scheme altogether. The question however, is not about versioning these branches. We sometimes do dotted releases for small features which are merged to release branches (and then to master) where the versions become v2.1.0. Release branches during the QA cycle go through versions like v2.0.0-rc1, v2.0.0-rc2 and finally after QA sign-off become v2.0.0. Our versioning strategy for release and hotfix branches follows semver. Hotfixes are made on hotfix branches (cut from release branches) and deployed with minimal impact testing into production. Our feature branches are always cut from master and undergo some amount of developer testing before merging with master upon which they undergo the CI-CD stability checks. We release almost every two weeks to production. ![]() Say, after cutting a release branch (from a stable master), a full regression is run, fixes are made and deployed to production. We look at this pipeline of jobs before cutting a release branch. This is where a subset of nightly tests run to ensure the stability of master. The master branch is considered the development branch and is deployed to an automated CI-CD enabled QA environment. For purposes of this discussion let's assume we have branch master in all repositories. I figured I should explain our release process a little more. What would development versions look like when the master branch has no tags? I understand that git describe can provide me a useful representation of a build version but that works well when various release points on the branch are tagged. But we should be able to query the deployed packages in the test machines using standard yum/rpm semantics. We don't want to excessively tag the master branch of each repo and restrict tags to release branches only. I am stuck trying to figure out a scheme to perform versioning of packages coming from development branches. This is then given to quality assurance who run tests and sign-off on a set of artifacts.įor eg this is a typical git repository with its associated release branches: 0-0-0-0-0-0-0-0-0-0 (master) The release process involves cutting off a release branch from the development branch (master in most cases) of each the git repositories. Artifacts are tarballs but I would like to convert them into RPMs so we can think and reason about versions correctly. Quality assurance members of each team want the artifacts from their team's changes deployed into a test bed where all the components are combined by chef. We are trying to formalise the process around versioning and packaging.Įvery team has a master branch where they do day-to-day development. This is a web platform and each team's artifacts are deployed at the end of the day for nightly tests. We are a small-ish firm with multiple teams who manage their own git repositories. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |