Update release procedure, use GitVersion 5

This commit is contained in:
Jerome Laban 2019-11-26 10:35:09 -05:00
Родитель 1933995ad5
Коммит 2cade7f69b
3 изменённых файлов: 72 добавлений и 9 удалений

Просмотреть файл

@ -23,8 +23,10 @@ jobs:
versionSpec: 4.9.1
checkLatest: false
- task: GitVersion@4
- task: GitVersion@5
inputs:
useConfigFile: true
configFilePath: gitversion.yml
updateAssemblyInfo: false
- powershell: |
@ -75,6 +77,12 @@ jobs:
steps:
- checkout: self
clean: true
- task: GitVersion@5
inputs:
useConfigFile: true
configFilePath: gitversion.yml
updateAssemblyInfo: false
- bash: |
cd /emsdk

24
doc/release-procedure.md Normal file
Просмотреть файл

@ -0,0 +1,24 @@
# Uno.Wasm.Bootstrap release procedure
Uno.Wasm.Bootstrap uses [GitVersion])(https://gitversion.readthedocs.io/en/latest/) for its versioning, in `mainline` mode for the `release/stable` branches, and **ContinuousDeployment** for the `master` branch.
Tagging is the main driver for planning releases.
## Branches
- On the `master` branch, the main development is happening and is considered unstable. The nuget packages produced end with `-dev.X`, where X is the number of commits since the last initiated release.
- On the `release/beta` branch, stabilisation occurs to get a stable release. The version is inherited from the branch point from master. The nuget packages produced end with `-beta.X`, where X is the number of commits since the last stable release.
- On the `release/stable` branch, stable nuget packages are produced for each pushed merge or commit. The **Patch** number is increased by the number of commits since the release tagging occured.
- On `dev`, `feature`, and `project` branches, the behavior is to inherit from the base branch it was created from and create a nuget package with an experimental tag. Those branches must not be tagged.
## Creating a release
### When planning for a beta
- Once a release is planned, make a branch in `release/beta` (e.g. `release/beta/1.29`), and tag the commit using the requested version (e.g. `1.29`). Do not include the patch number, as it will be added by GitHub when publishing a release. Tagging will automatically increased the version in the `master` branch by a **minor** number.
- Make stabilisation fixes to the `release/beta/1.29` branch.
- Once the stabilization fixes are done, take the last `release/beta/1.29` commit and make a `release/stable/1.29` branch. Commits to this branch will automatically keep the `1.29` version, as the base **beta branch** was tagged `1.29`.
- Publish the release on GitHub using the patch number (e.g. `1.29.0` if there where no changes)
### When planning for a release without a beta
- Once a release is planned, make a branch in `release/stable` (e.g. `release/stable/1.29`), and tag the commit using the requested version (e.g. `1.29`). Tagging will automatically the version in the `master` increased by a **minor** number.
- Commits to `release/stable/1.29` will automatically keep the `1.29` version.
- Publish the release on GitHub using the patch number (e.g. `1.29.0` if there where no changes)

Просмотреть файл

@ -1,21 +1,52 @@
assembly-versioning-scheme: MajorMinorPatch
mode: ContinuousDeployment
continuous-delivery-fallback-tag: ""
mode: Mainline
next-version: 1.1
branches:
master:
mode: ContinuousDeployment
regex: master
tag: dev
release:
tag: ""
increment: Minor
pull-request:
regex: ^(pull|pull\-requests|pr)[/-]
mode: ContinuousDeployment
tag: PullRequest
increment: Inherit
stable:
regex: release/stable/.*
tag: ''
increment: Patch
regex: release/.*?
source-branches: ['master']
is-mainline: true
beta:
mode: ContinuousDeployment
regex: release/beta/.*
tag: 'beta'
increment: inherit
source-branches: ['master']
dev:
tag: dev.{BranchName}
mode: ContinuousDeployment
regex: dev/.*?/(.*?)
source-branches: ['master']
tag: dev.{BranchName}
source-branches: ['master', 'release', 'projects', 'feature']
increment: inherit
projects:
tag: proj-{BranchName}
regex: projects/(.*?)
source-branches: ['master']
increment: inherit
feature:
tag: feature.{BranchName}
regex: feature/(.*?)
source-branches: ['master']
increment: inherit
ignore:
sha: []
sha: []