From 0e54e264715c5acb52414ab89d0447cd232fb9b6 Mon Sep 17 00:00:00 2001 From: John Jarvis Date: Tue, 23 Apr 2019 14:51:03 +0200 Subject: [PATCH 01/10] Add doc for auto-deploy --- general/deploy/auto-deploy.md | 84 +++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 general/deploy/auto-deploy.md diff --git a/general/deploy/auto-deploy.md b/general/deploy/auto-deploy.md new file mode 100644 index 00000000..aad37af9 --- /dev/null +++ b/general/deploy/auto-deploy.md @@ -0,0 +1,84 @@ +## Overview + +GitLab auto-deploy deployments and branches are used to increase the frequency +of deployments to GitLab.com from the master branch. + +Approximately once a week, a new branch will be created named + +``` +MAJOR-MINOR-auto-deploy-ID +``` + +### Auto-deploy schedule + + +### Auto-deploy branches + +Approximately once a week, up until the release date on the 22nd there will be +new auto-deploy branches with the following format: + +``` +MAJOR-MINOR-auto-deploy-ID +``` + +example: `11-10-auto-deploy-0000001` + + +* MAJOR.MINOR: This comes from the currently active milestone on the gitlab-ce + project. It generally tracks to the release date. +* The `ID` is the pipeline $CI_PIPELINE_IID of the release-tools job that + created the branch. + +Auto-deploy branches are created for the following projects: + +* gitlab-ee +* gitlab-ce +* omnibus-gitlab + + +As soon as these branches are created, a new auto-deploy release is tagged which +results in a new EE omnibus-gitlab package and a deployment to a +pre-production environments. + + +### Auto-deploy tagging + +For every auto-deploy, there is an auto-deploy tag that matches the version of +what is deployed to a pre-production environment. The auto-deploy tag has the +following format: + +``` +MOJOR.MINOR.ID+. +``` + + +* `MAJOR.MINOR`: This comes from the currently active milestone on the gitlab-ce + project. It generally tracks to the release date. +* `ID`: The pipeline $CI_PIPELINE_IID of the release-tools job that + created the tag +* `gitlab-ee sha`: The sha of gitlab-ee that will be used for next auto-deploy +* `omnibus-gitlab sha`: The sha of omnibus-gitlab that will be used for the next + auto-deploy + + +When the repositories are tagged, an omnibus-gitlab pipeline on dev.gitlab.org +will run that will build the package. This pipeline will trigger a deployment +of the auto-deploy package to a pre-production environment. + +### Auto-deploy schedule + + +| Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday | +| :----------- | :----------- | :----------- | :----------- | :----------- | :----------- | :----------- | +| 11-12-auto-deploy-00001 branch created, 11.12.100+aaaa.ffff deployed to pre-production environment | | | | | | | + + +## FAQ + +### How often do we auto-deploy? +### How do I mark an MR so that will be picked into the auto-deploy branch? +### +### Does auto-deploy change how we release software to the self-managed community? +### How are auto-deploy branches different than the stable branch? +### Why are we not deploying directly from the master branch? +### How do I see the latest -- GitLab From 01f0c212144762fcb39e884d0f4d4e0abeedae78 Mon Sep 17 00:00:00 2001 From: John Jarvis Date: Tue, 23 Apr 2019 16:49:41 +0200 Subject: [PATCH 02/10] Fix table --- general/deploy/auto-deploy.md | 118 +++++++++++++++++++++++++--------- 1 file changed, 89 insertions(+), 29 deletions(-) diff --git a/general/deploy/auto-deploy.md b/general/deploy/auto-deploy.md index aad37af9..b7cb16fb 100644 --- a/general/deploy/auto-deploy.md +++ b/general/deploy/auto-deploy.md @@ -3,19 +3,10 @@ GitLab auto-deploy deployments and branches are used to increase the frequency of deployments to GitLab.com from the master branch. -Approximately once a week, a new branch will be created named - -``` -MAJOR-MINOR-auto-deploy-ID -``` - -### Auto-deploy schedule - - ### Auto-deploy branches -Approximately once a week, up until the release date on the 22nd there will be -new auto-deploy branches with the following format: +Approximately once a week, up until the release date on the 22nd, there will be +new auto-deploy branches in code repositories with the following format: ``` MAJOR-MINOR-auto-deploy-ID @@ -24,9 +15,9 @@ MAJOR-MINOR-auto-deploy-ID example: `11-10-auto-deploy-0000001` -* MAJOR.MINOR: This comes from the currently active milestone on the gitlab-ce - project. It generally tracks to the release date. -* The `ID` is the pipeline $CI_PIPELINE_IID of the release-tools job that +* `MAJOR.MINOR`: This comes from the currently active milestone on the gitlab-ce + project. It generally tracks to the release month +* `ID`: The pipeline `$CI_PIPELINE_IID` of the release-tools job that created the branch. Auto-deploy branches are created for the following projects: @@ -36,15 +27,15 @@ Auto-deploy branches are created for the following projects: * omnibus-gitlab -As soon as these branches are created, a new auto-deploy release is tagged which -results in a new EE omnibus-gitlab package and a deployment to a -pre-production environments. +As soon as these branches are created, a new auto-deploy release is tagged. +Tagging omnibus-gitlab results in a new EE omnibus-gitlab package and a deployment to a +pre-production environment. ### Auto-deploy tagging -For every auto-deploy, there is an auto-deploy tag that matches the version of -what is deployed to a pre-production environment. The auto-deploy tag has the +For every auto-deploy deployment, there is a git tag that matches the version of +what is deployed. The auto-deploy tag has the following format: ``` @@ -52,7 +43,7 @@ MOJOR.MINOR.ID+. ``` -* `MAJOR.MINOR`: This comes from the currently active milestone on the gitlab-ce +* `MAJOR.MINOR`: This is the currently active milestone on the gitlab-ce project. It generally tracks to the release date. * `ID`: The pipeline $CI_PIPELINE_IID of the release-tools job that created the tag @@ -62,23 +53,92 @@ MOJOR.MINOR.ID+. When the repositories are tagged, an omnibus-gitlab pipeline on dev.gitlab.org -will run that will build the package. This pipeline will trigger a deployment +builds the package. This pipeline will trigger a deployment of the auto-deploy package to a pre-production environment. ### Auto-deploy schedule - - -| Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday | -| :----------- | :----------- | :----------- | :----------- | :----------- | :----------- | :----------- | -| 11-12-auto-deploy-00001 branch created, 11.12.100+aaaa.ffff deployed to pre-production environment | | | | | | | - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Day 1 + + * Branch **11-12-auto-deploy-00001** created in gitlab-ce, omnibus-gitlab and + gitlab-ee from master + * The merge train ensures that ce is merged into ee + * The latest green commit of gitlab-ee is used to update versions GitLab + services in omnibus-gitlab. + * The commits in gitlab-ee and omnibus-gitlab is tagged with **11.12.100+aaaa.ffff** + * The resulting auto-deploy package deployed to a pre-production environment production + +
Day 2 + + * MR that is merged to master is targeted for auto-deploy by adding a **Pick into 11.12** tag + * The MR is picked automatically into the **11-12-auto-deploy-00001** branch + * New commit is tagged with **11.12.101+aaaa.ffff** + * Auto-deploy package deployed to a pre-production environment -> production + * MRs are updated to let the MR author know that the change has been deployed + +
Days 3-7 + + * *The pick process continues, new MRs that target master are labeled and + picked into the auto-deploy branch, tagged and deployed to a pre-production + environment* +
Day 8 + + * Branch **11-12-auto-deploy-00002** created in gitlab-ce, omnibus-gitlab and + gitlab-ee from master + * The merge train ensures that ce is merged into ee + * Latest green commit tagged with **11.12.120+aaaa.ffff** + * Auto-deploy package deployed to a pre-production environment -> production + +
Days 9-21 + + * The process for creating auto-deploy branches and picking changes continue up until + the 22nd release date. As long as deployments are successful, + pipelines are passing the auto-deploy process will continue to send changes + to production + +
Day 22 + + * The omnibus-gitlab and gitlab-ee sha are tagged for an official release, + this package is published, with a blog post announcement for what features + are avialble on gitlab.com and for self-managed installations. + +
## FAQ ### How often do we auto-deploy? +### How does this change the existing code freeze on the 7th? +### What about registry, workhorse, gitaly, pages and other components? ### How do I mark an MR so that will be picked into the auto-deploy branch? -### ### Does auto-deploy change how we release software to the self-managed community? ### How are auto-deploy branches different than the stable branch? ### Why are we not deploying directly from the master branch? -### How do I see the latest +### How do I see the latest? +### How will marketing know what features to put in the release blog post? + -- GitLab From 2636ccc2a703a32db83acd29042421d5fe241dff Mon Sep 17 00:00:00 2001 From: John Jarvis Date: Tue, 23 Apr 2019 18:03:28 +0200 Subject: [PATCH 03/10] Add more to the timeline --- general/deploy/auto-deploy.md | 90 +++++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 31 deletions(-) diff --git a/general/deploy/auto-deploy.md b/general/deploy/auto-deploy.md index b7cb16fb..a0c36561 100644 --- a/general/deploy/auto-deploy.md +++ b/general/deploy/auto-deploy.md @@ -43,8 +43,8 @@ MOJOR.MINOR.ID+. ``` -* `MAJOR.MINOR`: This is the currently active milestone on the gitlab-ce - project. It generally tracks to the release date. +* `MAJOR.MINOR`: This is the currently active milestone in the `gitlab-org` + group on gitlab.com with the latest due date. * `ID`: The pipeline $CI_PIPELINE_IID of the release-tools job that created the tag * `gitlab-ee sha`: The sha of gitlab-ee that will be used for next auto-deploy @@ -58,72 +58,100 @@ of the auto-deploy package to a pre-production environment. ### Auto-deploy schedule + + + + + + - + - + - + - + - + - + + - * The omnibus-gitlab and gitlab-ee sha are tagged for an official release, - this package is published, with a blog post announcement for what features - are avialble on gitlab.com and for self-managed installations. + + + @@ -132,8 +160,8 @@ of the auto-deploy package to a pre-production environment. ## FAQ -### How often do we auto-deploy? ### How does this change the existing code freeze on the 7th? +### How often do we auto-deploy? ### What about registry, workhorse, gitaly, pages and other components? ### How do I mark an MR so that will be picked into the auto-deploy branch? ### Does auto-deploy change how we release software to the self-managed community? -- GitLab From 7cb5b93b513ae1757ff9534d4dce525b42548108 Mon Sep 17 00:00:00 2001 From: John Jarvis Date: Tue, 23 Apr 2019 18:07:23 +0200 Subject: [PATCH 04/10] Formatting --- general/deploy/auto-deploy.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/general/deploy/auto-deploy.md b/general/deploy/auto-deploy.md index a0c36561..8fd7105a 100644 --- a/general/deploy/auto-deploy.md +++ b/general/deploy/auto-deploy.md @@ -66,11 +66,11 @@ of the auto-deploy package to a pre-production environment. - + - + - + - + - + - + - + -- GitLab From ffc9073b5ae7f607dfed23c18c9706614b0f62eb Mon Sep 17 00:00:00 2001 From: John Jarvis Date: Tue, 23 Apr 2019 18:17:58 +0200 Subject: [PATCH 06/10] Add more to the overview --- general/deploy/auto-deploy.md | 36 ++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/general/deploy/auto-deploy.md b/general/deploy/auto-deploy.md index 2446ece8..cc5edb15 100644 --- a/general/deploy/auto-deploy.md +++ b/general/deploy/auto-deploy.md @@ -9,16 +9,21 @@ Approximately once a week, up until the release date on the 22nd, there will be new auto-deploy branches in code repositories with the following format: ``` -MAJOR-MINOR-auto-deploy-ID +--auto-deploy- ``` example: `11-10-auto-deploy-0000001` * `MAJOR.MINOR`: This comes from the currently active milestone on the gitlab-ce - project. It generally tracks to the release month + project. It generally tracks to the release month and has the following + requirements: + * It must be an _active_ milestone + * The start date must be the current day or earlier + * The end date must be in teh future * `ID`: The pipeline `$CI_PIPELINE_IID` of the release-tools job that - created the branch. + created the branch. This ID is guaranteed to increment on every auto-deploy + branch. Auto-deploy branches are created for the following projects: @@ -27,29 +32,34 @@ Auto-deploy branches are created for the following projects: * omnibus-gitlab -As soon as these branches are created, a new auto-deploy release is tagged. -Tagging omnibus-gitlab results in a new EE omnibus-gitlab package and a deployment to a -pre-production environment. +As soon as these branches are created, the latest green (passing) commit on the branch +will be tagged for an auto-deployment. + +When omnibus-gitlab is tagged, it will result in a new EE omnibus-gitlab package and a +deployment to a pre-production environment with a deployer pipeline extending to +production ### Auto-deploy tagging For every auto-deploy deployment, there is a git tag that matches the version of -what is deployed. The auto-deploy tag has the -following format: +what is deployed. The auto-deploy tag has the following format: ``` -MOJOR.MINOR.ID+. +..+. ``` * `MAJOR.MINOR`: This is the currently active milestone in the `gitlab-org` - group on gitlab.com with the latest due date. + group on gitlab.com with the latest due date and follows the same requirements + for the auto-deploy branch (see above). * `ID`: The pipeline $CI_PIPELINE_IID of the release-tools job that - created the tag -* `gitlab-ee sha`: The sha of gitlab-ee that will be used for next auto-deploy + created the tag. This ID is guaranteed to increment on every tag job. +* `gitlab-ee sha`: The sha of gitlab-ee for auto-deploy, it corresponds to a + green (passing) ref on the gitlab-ee auto-deploy branch. * `omnibus-gitlab sha`: The sha of omnibus-gitlab that will be used for the next - auto-deploy + auto-deploy, it corresponds to a green (passing) ref on the omnibus-gitab + auto-deploy branch When the repositories are tagged, an omnibus-gitlab pipeline on dev.gitlab.org -- GitLab From 1e3075664f8553ead57a6c60f823c7e5b9d0006d Mon Sep 17 00:00:00 2001 From: John Jarvis Date: Tue, 23 Apr 2019 18:21:46 +0200 Subject: [PATCH 07/10] Wording --- general/deploy/auto-deploy.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/general/deploy/auto-deploy.md b/general/deploy/auto-deploy.md index cc5edb15..1bcc7d2c 100644 --- a/general/deploy/auto-deploy.md +++ b/general/deploy/auto-deploy.md @@ -1,12 +1,14 @@ ## Overview -GitLab auto-deploy deployments and branches are used to increase the frequency -of deployments to GitLab.com from the master branch. +GitLab auto-deploy deployments allow us to increase the frequency +of deployments to GitLab.com from the master branch of +[gitlab-ee](https://gitlab.com/gitlab-org/gitlab-ee) +and [omnibus-gitlab](https://gitlab.com/gitlab-org/omnibus-gitlab). ### Auto-deploy branches -Approximately once a week, up until the release date on the 22nd, there will be -new auto-deploy branches in code repositories with the following format: +Approximately once a week, up until the release date on the 22nd, auto-deploy +branches are created with the following format: ``` --auto-deploy- @@ -19,8 +21,8 @@ example: `11-10-auto-deploy-0000001` project. It generally tracks to the release month and has the following requirements: * It must be an _active_ milestone - * The start date must be the current day or earlier - * The end date must be in teh future + * The start date must be in the past + * The end date must be in the future * `ID`: The pipeline `$CI_PIPELINE_IID` of the release-tools job that created the branch. This ID is guaranteed to increment on every auto-deploy branch. @@ -37,8 +39,7 @@ will be tagged for an auto-deployment. When omnibus-gitlab is tagged, it will result in a new EE omnibus-gitlab package and a deployment to a pre-production environment with a deployer pipeline extending to -production - +production. ### Auto-deploy tagging -- GitLab From 36ec27e4614c51c82c033ecaacf26f8880638c63 Mon Sep 17 00:00:00 2001 From: John Jarvis Date: Tue, 23 Apr 2019 18:25:42 +0200 Subject: [PATCH 08/10] Wording --- general/deploy/auto-deploy.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/general/deploy/auto-deploy.md b/general/deploy/auto-deploy.md index 1bcc7d2c..bb341e19 100644 --- a/general/deploy/auto-deploy.md +++ b/general/deploy/auto-deploy.md @@ -21,8 +21,8 @@ example: `11-10-auto-deploy-0000001` project. It generally tracks to the release month and has the following requirements: * It must be an _active_ milestone - * The start date must be in the past - * The end date must be in the future + * The start date must be in the _past_ + * The end date must be in the _future_ * `ID`: The pipeline `$CI_PIPELINE_IID` of the release-tools job that created the branch. This ID is guaranteed to increment on every auto-deploy branch. @@ -41,6 +41,9 @@ When omnibus-gitlab is tagged, it will result in a new EE omnibus-gitlab package deployment to a pre-production environment with a deployer pipeline extending to production. +Auto-deploy branches are _protected branches_, meaning that they require special +permission for merging and pushing and also will be mirrored on dev.gitlab.org. + ### Auto-deploy tagging For every auto-deploy deployment, there is a git tag that matches the version of @@ -52,9 +55,9 @@ what is deployed. The auto-deploy tag has the following format: * `MAJOR.MINOR`: This is the currently active milestone in the `gitlab-org` - group on gitlab.com with the latest due date and follows the same requirements + group on gitlab.com and follows the same requirements for the auto-deploy branch (see above). -* `ID`: The pipeline $CI_PIPELINE_IID of the release-tools job that +* `ID`: The pipeline `$CI_PIPELINE_IID` of the release-tools job that created the tag. This ID is guaranteed to increment on every tag job. * `gitlab-ee sha`: The sha of gitlab-ee for auto-deploy, it corresponds to a green (passing) ref on the gitlab-ee auto-deploy branch. @@ -180,6 +183,6 @@ of the auto-deploy package to a pre-production environment. ### Does auto-deploy change how we release software to the self-managed community? ### How are auto-deploy branches different than the stable branch? ### Why are we not deploying directly from the master branch? -### How do I see the latest? +### How do I query what ref is running on gitlab.com or a pre-production environment? ### How will marketing know what features to put in the release blog post? -- GitLab From 44bff0c52aa1cdfc25a3d2ab0565cb689397964e Mon Sep 17 00:00:00 2001 From: John Jarvis Date: Tue, 23 Apr 2019 18:35:53 +0200 Subject: [PATCH 09/10] Add indents --- general/deploy/auto-deploy.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/general/deploy/auto-deploy.md b/general/deploy/auto-deploy.md index bb341e19..9ce4129a 100644 --- a/general/deploy/auto-deploy.md +++ b/general/deploy/auto-deploy.md @@ -86,12 +86,12 @@ of the auto-deploy package to a pre-production environment. * A new milestone is manually created named **11.12** with a start date of the 23rd and a due date of the 22nd * A CI job creates a branch named **11-12-auto-deploy-00001** in gitlab-ce, omnibus-gitlab and gitlab-ee from **master** - * The merge train ensures that ce is merged into ee - * The latest green commit of gitlab-ee is used to update versions GitLab + * The merge train ensures that ce is merged into ee + * The latest green commit of gitlab-ee is used to update versions GitLab services in omnibus-gitlab. - * The commits in gitlab-ee and omnibus-gitlab are tagged with **11.12.100+aaaa.ffff** - * The resulting auto-deploy package is deployed to a pre-production environment with a deployer - pipeline extending to production + * The commits in gitlab-ee and omnibus-gitlab are tagged with **11.12.100+aaaa.ffff** + * The resulting auto-deploy package is deployed to a pre-production environment with a deployer + pipeline extending to production @@ -99,13 +99,14 @@ of the auto-deploy package to a pre-production environment. -- GitLab From 28e15992afbd6f4a721a939ac64e354bebd771ea Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Wed, 24 Apr 2019 16:26:37 +0200 Subject: [PATCH 10/10] First draft of deployment transition timeline --- general/deploy/auto-deploy.md | 206 +++++++++++++++++++++++++++++++++- 1 file changed, 204 insertions(+), 2 deletions(-) diff --git a/general/deploy/auto-deploy.md b/general/deploy/auto-deploy.md index 9ce4129a..90f6fed9 100644 --- a/general/deploy/auto-deploy.md +++ b/general/deploy/auto-deploy.md @@ -1,10 +1,213 @@ -## Overview +# Overview GitLab auto-deploy deployments allow us to increase the frequency of deployments to GitLab.com from the master branch of [gitlab-ee](https://gitlab.com/gitlab-org/gitlab-ee) and [omnibus-gitlab](https://gitlab.com/gitlab-org/omnibus-gitlab). +Due to the fact that this process is a shift from the monthly release cycle that is in place for self-managed customers, and is generally a disruptive workflow change, below you can find the transition plan details as well as more details on the parts process consists of. + +## Transition plan + +With the current process highlighting two special days, the 7th and 22nd of the month, it is important to have an understanding of how the transition period will look like and what that means for everyone accustomed to the existing workflow. +Below you can find two overviews: + +* Overview per stakeholder lists important changes for different roles involved in releasing GitLab and to GitLab.com +* Process overview provides a timeline breakdown per day for all stakeholders, and is a more detailed overview + +### Overview per stakeholder + +The change in frequency of deployments to GitLab.com impacts the self-managed public releases, and stakeholders in a different areas: + +* Developers +* Release Managers +* Product Managers + +### Process overview + +
DayDescription
Day 123 + * A new milestone is manually created named **11.12** with a start date of the 23rd and a due date of the 22nd * Branch **11-12-auto-deploy-00001** created in gitlab-ce, omnibus-gitlab and - gitlab-ee from master + gitlab-ee from **master** * The merge train ensures that ce is merged into ee * The latest green commit of gitlab-ee is used to update versions GitLab services in omnibus-gitlab. - * The commits in gitlab-ee and omnibus-gitlab is tagged with **11.12.100+aaaa.ffff** - * The resulting auto-deploy package deployed to a pre-production environment production + * The commits in gitlab-ee and omnibus-gitlab are tagged with **11.12.100+aaaa.ffff** + * The resulting auto-deploy package is deployed to a pre-production environment with a deployer + pipeline extending to production
Day 223..1 - * MR that is merged to master is targeted for auto-deploy by adding a **Pick into 11.12** tag - * The MR is picked automatically into the **11-12-auto-deploy-00001** branch - * New commit is tagged with **11.12.101+aaaa.ffff** - * Auto-deploy package deployed to a pre-production environment -> production + * MRs that are merged to master are targeted for auto-deploy by adding a **Pick into 11.12** tag + * MR with this label are picked automatically into the **11-12-auto-deploy-00001** branch + * The merge train ensures that ce is merged into ee + * The next green commit on the auto-deploy branch is tagged with **11.12.101+bbbb.ffff** + * The resulting auto-deploy package is deployed to a pre-production environment with a deployer + pipeline extending to production * MRs are updated to let the MR author know that the change has been deployed + * This process is repeated on a frequent interval, with multiple deployments + to pre-production environments and production
Days 3-71 - * *The pick process continues, new MRs that target master are labeled and - picked into the auto-deploy branch, tagged and deployed to a pre-production - environment* + * Branch **11-12-auto-deploy-00003** created in gitlab-ce, omnibus-gitlab and + gitlab-ee from **master** + * The same automated process happens for the new auto-deploy brach, the merge + train ensures the ce->ee merge, a green commit found, tagged and deployed + to a pre-proudction environment with a deployer pipeline extending to + production + * The same picking and deploying process is now done for the new auto-deploy + branch, **11-12-auto-deploy-00003**
Day 88 - * Branch **11-12-auto-deploy-00002** created in gitlab-ce, omnibus-gitlab and - gitlab-ee from master - * The merge train ensures that ce is merged into ee - * Latest green commit tagged with **11.12.120+aaaa.ffff** - * Auto-deploy package deployed to a pre-production environment -> production + * Branch **11-12-auto-deploy-00004** created in gitlab-ce, omnibus-gitlab and + gitlab-ee from **master** + * The same picking and deploying process is now done for the new auto-deploy + branch, **11-12-auto-deploy-00004**
Days 9-2115 - * The process for creating auto-deploy branches and picking changes continue up until - the 22nd release date. As long as deployments are successful, - pipelines are passing the auto-deploy process will continue to send changes - to production + * Branch **11-12-auto-deploy-00005** created in gitlab-ce, omnibus-gitlab and + gitlab-ee from **master** + * The same picking and deploying process is now done for the new auto-deploy + branch, **11-12-auto-deploy-00005**
Day 2222 RELEASE DAY + * The commit that is currently on production will be used for the official + release + * Changes that are released on production will be part of the release blog + post + * Not all picked changes will be deployed and included in the final release + as it is possible that not all MRs that are picked will have been deployed + to production in time to make the release +
23 + + * A new milestone is manually created named **11.13** with a start date of the 23rd and a due date of the 22nd + * The process auto-deploy cycle repeats
2323rd * A new milestone is manually created named **11.12** with a start date of the 23rd and a due date of the 22nd - * Branch **11-12-auto-deploy-00001** created in gitlab-ce, omnibus-gitlab and + * A CI job creates a branch named **11-12-auto-deploy-00001** in gitlab-ce, omnibus-gitlab and gitlab-ee from **master** * The merge train ensures that ce is merged into ee * The latest green commit of gitlab-ee is used to update versions GitLab @@ -82,7 +82,7 @@ of the auto-deploy package to a pre-production environment.
23..123rd..1st * MRs that are merged to master are targeted for auto-deploy by adding a **Pick into 11.12** tag @@ -98,35 +98,35 @@ of the auto-deploy package to a pre-production environment.
11st - * Branch **11-12-auto-deploy-00003** created in gitlab-ce, omnibus-gitlab and + * Branch **11-12-auto-deploy-00002** created in gitlab-ce, omnibus-gitlab and gitlab-ee from **master** * The same automated process happens for the new auto-deploy brach, the merge train ensures the ce->ee merge, a green commit found, tagged and deployed to a pre-proudction environment with a deployer pipeline extending to production * The same picking and deploying process is now done for the new auto-deploy - branch, **11-12-auto-deploy-00003** + branch, **11-12-auto-deploy-00002**
88th - * Branch **11-12-auto-deploy-00004** created in gitlab-ce, omnibus-gitlab and + * Branch **11-12-auto-deploy-00003** created in gitlab-ce, omnibus-gitlab and gitlab-ee from **master** * The same picking and deploying process is now done for the new auto-deploy - branch, **11-12-auto-deploy-00004** + branch, **11-12-auto-deploy-00003**
1515th - * Branch **11-12-auto-deploy-00005** created in gitlab-ce, omnibus-gitlab and + * Branch **11-12-auto-deploy-00004** created in gitlab-ce, omnibus-gitlab and gitlab-ee from **master** * The same picking and deploying process is now done for the new auto-deploy branch, **11-12-auto-deploy-00005** @@ -134,7 +134,7 @@ of the auto-deploy package to a pre-production environment.
22 RELEASE DAY22nd RELEASE DAY * The commit that is currently on production will be used for the official release @@ -147,7 +147,7 @@ of the auto-deploy package to a pre-production environment.
2323rd * A new milestone is manually created named **11.13** with a start date of the 23rd and a due date of the 22nd -- GitLab From 5ceda366a358352289b898a859c5955faaaf05c2 Mon Sep 17 00:00:00 2001 From: John Jarvis Date: Tue, 23 Apr 2019 18:08:49 +0200 Subject: [PATCH 05/10] format --- general/deploy/auto-deploy.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/general/deploy/auto-deploy.md b/general/deploy/auto-deploy.md index 8fd7105a..2446ece8 100644 --- a/general/deploy/auto-deploy.md +++ b/general/deploy/auto-deploy.md @@ -136,6 +136,7 @@ of the auto-deploy package to a pre-production environment.
22nd RELEASE DAY + * The commit that is currently on production will be used for the official release * Changes that are released on production will be part of the release blog @@ -143,6 +144,7 @@ of the auto-deploy package to a pre-production environment. * Not all picked changes will be deployed and included in the final release as it is possible that not all MRs that are picked will have been deployed to production in time to make the release +
23rd..1st - * MRs that are merged to master are targeted for auto-deploy by adding a **Pick into 11.12** tag - * MR with this label are picked automatically into the **11-12-auto-deploy-00001** branch - * The merge train ensures that ce is merged into ee - * The next green commit on the auto-deploy branch is tagged with **11.12.101+bbbb.ffff** - * The resulting auto-deploy package is deployed to a pre-production environment with a deployer - pipeline extending to production - * MRs are updated to let the MR author know that the change has been deployed + * MRs that are merged to master are targeted for auto-deploy by manually adding a **Pick into 11.12** tag + * A CI job picks these MRs for auto-deploy + * Labeled MRs are picked automatically into the **11-12-auto-deploy-00001** branch + * The merge train ensures that ce is merged into ee + * The next green commit on the auto-deploy branch is tagged with **11.12.101+bbbb.ffff** + * The resulting auto-deploy package is deployed to a pre-production environment with a deployer + pipeline extending to production + * MRs are updated to let the MR author know that the change has been deployed * This process is repeated on a frequent interval, with multiple deployments to pre-production environments and production @@ -143,7 +144,7 @@ of the auto-deploy package to a pre-production environment. * Branch **11-12-auto-deploy-00004** created in gitlab-ce, omnibus-gitlab and gitlab-ee from **master** * The same picking and deploying process is now done for the new auto-deploy - branch, **11-12-auto-deploy-00005** + branch, **11-12-auto-deploy-00004**
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DateProcessChange
2019-05-01Start of the new release cycle + + * No change from the currently established process + * Release managers will create the `11-11-stable` branches, tag `11.11.0-rc1` and deploy to the staging server + * QA issue is created and the 24 hour deadline for checking of the items in the QA checklist is running + +
2019-05-02Deployment to GitLab.com environments + + * No change from the currently established process + * Release managers will deploy `11.11.0-rc1` to production canaries and GitLab.com + +
2019-05-06Repeat the RC process + + * No change from the currently established process + * Release managers will deploy as many RCs as necessary to get GitLab.com running the latest code in the `master` branch + +
2019-05-07Feature freeze day + + * No change from the currently established process + * Changes merged in `master` on this day will be included it the next deployment to GitLab.com + * Changes merged in `master` on this day will be included in the final 11.11.0 public release + * `11-11-stable` branches will contain changes merged into `master` on this day + +
2019-05-08Post feature freeze day + + * *Change from the currently established process* + * A branch named `11-11-auto-deploy-0001` is created in gitlab-ce, gitlab-ee and omnibus-gitlab projects + * This branch is created from the latest commit on the `master` branch found on this day + * The latest commit with the passing pipeline in the `gitlab-ee` project will be selected from the `11-11-auto-deploy-0001` branch + * A new omnibus-gitlab package is created with the version `11.11.xxx+aaaa.ffff`. See below for explanation of what significance do the letters have + * This package will be automatically deployed to the staging environment + * GitLab.com has `11.11.0-rcN`running at this time + +
2019-05-08/2019-05-12First auto-deploy week + + * *Change from the currently established process* + * In case of an issue observed on staging, the developers will create a MR and label it with `Pick into 11.11` + * An automated job will automatically pick any change into `11-11-auto-deploy-0001` branch + * In case of a failure to pick automatically, a standard message will be left asking for manual intervention + * If manual intervention is needed, developer needs to join the #releases channel on slack, check the latest pinned message containing the name of the auto-deploy branch, create a MR against this branch and assign to the release manager + * A new omnibus-gitlab package is created with the version `11.11.yyy+bbbb.gggg` and is automatically deployed to the staging environment + * Release managers deploy `11.11.yyy+bbbb.gggg` to Canary at their discretion once it is confirmed that the version running is sufficiently stable + * GitLab.com has `11.11.0-rcN`running at this time + * In case of a P1/S1 problem requiring an urgent fix on a running rcN version in production environments, developer will need to inform the release managers + * Release managers will pick this change manually into the `11-11-stable` branch, create a new `11.11.-rcN` package and deploy to GitLab.com + * Changes committed to the `master` branch during this period will be a part of `11.11.0` final release + +
2019-05-12New staging deployment + + * *Change from the currently established process* + * A branch named `11-11-auto-deploy-0002` is created in gitlab-ce, gitlab-ee and omnibus-gitlab projects + * This branch is created from the latest commit on the `master` branch + * The latest commit with the passing pipeline in the `gitlab-ee` project will be selected from the `11-11-auto-deploy-0002` branch + * A new omnibus-gitlab package is created with the version `11.11.zzz+cccc.hhhh` + * This package will be automatically deployed to the staging environment + +
2019-05-13Deployment to GitLab.com + + * *Change from the currently established process* + * Release managers deploy to the package running on Canary at that moment, to GitLab.com + +
2019-05-13/2019-05-19Second auto-deploy week + + * *Change from the currently established process* + * Branch `11-11-auto-deploy-0002` is the currently active branch, and staging is being deployed from commits on this branch + * In case of an issue observed on staging, the developers will create an MR and label it with `Pick into 11.11`, which will then be automatically picked and deployed to staging + * In case of of a P1/S1 problem observed on GitLab.com, the developers will create an MR and label it with `Pick into 11.11`, and will inform the release manager that a change is addressing a current issue on GitLab.com + * Release managers will pick the change manually to `11-11-auto-deploy-0001`, and create a package that will be manually deployed to Pre environment and then GitLab.com + * Release managers deploy `11.11.zzz+cccc.hhhh` to Canary at their discretion once it is confirmed that the version running is sufficiently stable + +
2019-05-19New staging deployment + + * *Change from the currently established process* + * A branch named `11-11-auto-deploy-0003` is created in gitlab-ce, gitlab-ee and omnibus-gitlab projects + * This branch is created from the latest commit on the `master` branch + * The latest commit with the passing pipeline in the `gitlab-ee` project will be selected from the `11-11-auto-deploy-0003` branch + * A new omnibus-gitlab package is created with the version `11.11.xxx+dddd.iiii` + * This package will be automatically deployed to the staging environment + +
2019-05-20Deploy to GitLab.com + + * *Change from the currently established process* + * Release managers deploy to the package running on Canary at that moment, to GitLab.com + * Changes currently contained in the `11-11-auto-deploy-0002` branch (from which the deploy to GitLab.com was just completed) are included in the final 11.11.0 release + * Changes contained in the `11-11-auto-deploy-0003`, will be a part of `12.0.0` release + +
2019-05-20/2019-05-26Second auto-deploy week + + * *Change from the currently established process* + * Branch `11-11-auto-deploy-0003` is the currently active branch, and staging is being deployed from commits on this branch + +
+ +## Process details + +The general deployment process on GitLab.com has a couple of important new terms: + +* Auto-deploy branches +* Auto-deploy tags +* Auto-deploy schedule + +`Auto-deploy` is used to make a clear distinction between the process that has been used for years at GitLab. This will be revisited when the process is in place and stake-holders are more used to changes. + ### Auto-deploy branches Approximately once a week, up until the release date on the 22nd, auto-deploy @@ -186,4 +389,3 @@ of the auto-deploy package to a pre-production environment. ### Why are we not deploying directly from the master branch? ### How do I query what ref is running on gitlab.com or a pre-production environment? ### How will marketing know what features to put in the release blog post? - -- GitLab