1- # Releasing a New Deis Version
1+ # Releasing a new Deis version
22
33This document describes how to release a new Deis version. It's targetted toward the Deis core
44maintainers.
55
6- # Manual Testing
6+ The below sections present a step by step guide to releasing a new Deis Workflow. Throughout all
7+ examples, we'll be assuming we're going to release ` $DEIS_RELEASE ` . Before you begin, set this
8+ environment variable to the correct version that you intend to release (for example, ` 2.0.0-beta2 ` ).
9+
10+ # What's a release?
11+
12+ A release consists of the following artifacts:
13+
14+ 1 . Docker images with ` $DEIS_RELEASE ` tags for each Deis Workflow component:
15+ - [ builder] ( https://github.com/deis/builder )
16+ - [ controller] ( https://github.com/deis/controller )
17+ - [ dockerbuilder] ( https://github.com/deis/dockerbuilder )
18+ - [ fluentd] ( https://github.com/deis/fluentd )
19+ - [ logger] ( https://github.com/deis/logger )
20+ - [ minio] ( https://github.com/deis/minio )
21+ - [ postgres] ( https://github.com/deis/postgres )
22+ - [ registry] ( https://github.com/deis/registry )
23+ - [ router] ( https://github.com/deis/router )
24+ - [ slugbuilder] ( https://github.com/deis/slugbuilder )
25+ - [ slugrunner] ( https://github.com/deis/slugrunner )
26+ - [ workflow] ( https://github.com/deis/worflow )
27+ - [ workflow-e2e] ( https://github.com/deis/workflow-e2e )
28+ - [ workflow-manager] ( https://github.com/deis/workflow-manager ) (v2.0.0-beta1-8-g9ba6db7)
29+ 2 . A new [ Helm chart for Deis] ( https://github.com/deis/charts ) that references all of the new
30+ images referenced above. For example, if ` $DEIS_RELEASE ` is ` 2.0.0-beta2 ` , the new chart would
31+ be in a new directory called ` workflow-beta2 ` .
32+
33+ # Step 1: Get the status of all components
34+
35+ First, we'll need to get the statuses of all repositories that house the components we're
36+ interested in upgrading. We'll use
37+ [ sgoings/deis-workflow-group] ( https://github.com/sgoings/deis-workflow-group ) to do that in one
38+ place. That repository is a group of git submodules with all of the applicable repositories in it,
39+ so that we can manage everything from one place.
40+
41+ Clone that repository to any location on your local machine, and make sure to update all submodules:
42+
43+ ``` console
44+ git clone https://github.com/sgoings/deis-workflow-group
45+ cd deis-workflow-group
46+ make git-update
47+ ```
48+
49+ # Step 2: Create a new Helm chart
50+
51+ TODO
52+
53+ - Copy from old chart
54+ - Run ` git submodule update ` to get git SHAs
55+ - Update ` generate_params.toml `
56+ - Branch and PR your new chart (the branch should be called ` release-$DEIS_RELEASE ` )
57+
58+ # Step 3: Manual Testing
759
860After the chart is created with the immutable Docker image tags that represent the final images
961(i.e. the ones that will be re-tagged to the immutable release tag, such as ` 2.0.0-beta2 ` ), it
@@ -19,3 +71,24 @@ Object Storage / Kubernetes Install | Kube-Solo | Google Container Engine | AWS
1971Default (Minio) |
2072Google Cloud Storage |
2173Amazon S3 |
74+
75+ # Step 4: Tag and push Docker images
76+
77+ TODO
78+
79+ Tag docker images for each component, from the Docker tags that you set in step 2 to ``$DEIS_RELEASE`
80+
81+ # Step 5: Update changelogs
82+
83+ TODO
84+
85+ Update changelogs for each repository
86+
87+ # Step 6: Tag and push git repos
88+
89+ Inside the deis-workflow-group directory, run:
90+
91+ ``` console
92+ TAG=$DEIS_RELEASE TAG_MESSAGE="releasing workflow $DEIS_RELEASE" make git-tag
93+ make git-tag-push
94+ ```
0 commit comments