diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c7a9e099c2..a3da50d050 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -68,3 +68,29 @@ The last line is the most important. `AssertFullSemver` will run GitVersion and ## 6. Submit a pull request with the failing test Even better include the fix, but a failing test is a great start + + +# Build / Release Process +We use Cake for our build and deployment process. The way the build / release process is setup is: + +1) We build releasable artifacts on AppVeyor +1) Login to AppVeyor +1) Deploy the latest master build +![docs/img/release-1-deploy.png](docs/img/release-1-deploy.png) +1) Choose GitVersion release, when you press deploy it will create a *non-released* GitHub release, this *will not* create a Git tag. This step is so we can validate the release and release notes before pushing the button. +![docs/img/release-2-deploy.png](docs/img/release-2-deploy.png) +1) All the artifacts should upload nicely +![docs/img/release-3-deploy.png](docs/img/release-3-deploy.png) +1) Head over to GitHub releases, you should have a draft release, download a copy of the release notes +![docs/img/release-4-deploy.png](docs/img/release-4-deploy.png) +1) Edit the release and do the following: + 1. Remove the build metadata from the tag and title (the + and everything after it) + 2. Paste the downloaded release notes in, you can clean them up if you want otherwise there may be closed issues which were questions etc. + 3. Tick the pre-release box if it's pre-release + 4. Press Publish +1) Publishing tags (a git tag) the release commit, this will trigger another appveyor build which only builds tags, this build uses deploy.cake. It downloads the artifacts from that GitHub release, then performs the release + +## Docker +It is a manual release step after the release now, first download the appropriate ZIP and put into a `releaseArtifacts` folder in the GitVersion repository, then run: + +`docker build . --build-arg GitVersionZip=GitVersion_.zip --tag gittools/gitversion` \ No newline at end of file diff --git a/docs/img/release-1-deploy.png b/docs/img/release-1-deploy.png new file mode 100644 index 0000000000..89783eb6c2 Binary files /dev/null and b/docs/img/release-1-deploy.png differ diff --git a/docs/img/release-2-deploy.png b/docs/img/release-2-deploy.png new file mode 100644 index 0000000000..244c19ac02 Binary files /dev/null and b/docs/img/release-2-deploy.png differ diff --git a/docs/img/release-3-deploy.png b/docs/img/release-3-deploy.png new file mode 100644 index 0000000000..bee8032004 Binary files /dev/null and b/docs/img/release-3-deploy.png differ diff --git a/docs/img/release-4-deploy.png b/docs/img/release-4-deploy.png new file mode 100644 index 0000000000..1fb9f8e15a Binary files /dev/null and b/docs/img/release-4-deploy.png differ