Support:Sumodev/Continuous Deployment: Difference between revisions
Jump to navigation
Jump to search
(9 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
=== Q1 2011 === | === Q1 2011 === | ||
* {{ | * {{done|Get JavaScript tests running.}} [https://bugzilla.mozilla.org/show_bug.cgi?id=638242] | ||
** {{ | ** {{miss|XUnit results from JS test suite.}} | ||
* {{done|Stop using SVN.}} [https://bugzilla.mozilla.org/show_bug.cgi?id=616703] | * {{done|Stop using SVN.}} [https://bugzilla.mozilla.org/show_bug.cgi?id=616703] | ||
* {{ | * {{done|Crontab in Git.}} [https://bugzilla.mozilla.org/show_bug.cgi?id=625376] | ||
* {{ | ** ''Now we just need to start using it.'' | ||
* {{miss|Script deployment.}} | |||
=== Q2 2011 === | === Q2 2011 === | ||
* Get release cycle down to one week. | * {{done|Get release cycle down to one week.}} | ||
* Replace branches with flags. | * {{done|Replace branches with flags.}} | ||
* {{done|XUnit results from Qunit}} | |||
=== Q3 2011 === | === Q3 2011 === | ||
* Update dev server from CI. | |||
* Break Selenium into deploy-blocking and environmental. | |||
* Run deploy-blocking Selenium after check-in/dev update. | |||
* Run QUnit on all major browsers. | |||
* Deploy with Chief (big red button!). | |||
=== Q4 2011 === | === Q4 2011 === | ||
Line 28: | Line 36: | ||
=== Testing === | === Testing === | ||
* Expand unit test suite to cover front end and JavaScript. | * {{ok|Expand unit test suite to cover front end and JavaScript.}} | ||
* Organize test suite into unit/functional/acceptance/etc. | * Organize test suite into unit/functional/acceptance/etc. | ||
* Work with Web QA Automation to maximize automated coverage and combine results. | * Work with Web QA Automation to maximize automated coverage and combine results. | ||
Line 38: | Line 46: | ||
* Define a secure, defensive, robust flow from source control to production. | * Define a secure, defensive, robust flow from source control to production. | ||
** If someone steals James' laptop, breaks in, and commits an infinite loop, that change should not reach production. | ** If someone steals James' laptop, breaks in, and commits an infinite loop, that change should not reach production. | ||
* Automate push process. | * Automate/one-button push process. | ||
=== Release Planning === | === Release Planning === | ||
Line 44: | Line 52: | ||
There is a qualitative difference between deciding which work to group into a release and when to fix small bugs when changes go live immediately. Our concept of planning will have to change. | There is a qualitative difference between deciding which work to group into a release and when to fix small bugs when changes go live immediately. Our concept of planning will have to change. | ||
# Push every week. (By end of Q2.) | # {{done|Push every week.}} (By end of Q2.) | ||
# Push every day. | # Push every day. | ||
# Push several times per day. | # Push several times per day. | ||
Line 50: | Line 58: | ||
=== Features === | === Features === | ||
* Support feature flags. | * {{done|Support feature flags.}} | ||
* Support features per group or percentage. | * {{done|Support features per group or percentage.}} |
Latest revision as of 15:58, 3 August 2011
By the end of 2011, Support Engineering wants to move from big releases to Continuous Deployment. There's lots to do to reach that goal.
Measurable Goals
- A bugfix reaches production within 30 minutes of being checked in.
Q1 2011
- [DONE] Get JavaScript tests running. [1]
- [MISSED] XUnit results from JS test suite.
- [DONE] Stop using SVN. [2]
- [DONE] Crontab in Git. [3]
- Now we just need to start using it.
- [MISSED] Script deployment.
Q2 2011
- [DONE] Get release cycle down to one week.
- [DONE] Replace branches with flags.
- [DONE] XUnit results from Qunit
Q3 2011
- Update dev server from CI.
- Break Selenium into deploy-blocking and environmental.
- Run deploy-blocking Selenium after check-in/dev update.
- Run QUnit on all major browsers.
- Deploy with Chief (big red button!).
Q4 2011
Action Items
Testing
- [ON TRACK] Expand unit test suite to cover front end and JavaScript.
- Organize test suite into unit/functional/acceptance/etc.
- Work with Web QA Automation to maximize automated coverage and combine results.
- Automated performance tests.
- Aggregation and graphs.
Infrastructure
- Define a secure, defensive, robust flow from source control to production.
- If someone steals James' laptop, breaks in, and commits an infinite loop, that change should not reach production.
- Automate/one-button push process.
Release Planning
There is a qualitative difference between deciding which work to group into a release and when to fix small bugs when changes go live immediately. Our concept of planning will have to change.
- [DONE] Push every week. (By end of Q2.)
- Push every day.
- Push several times per day.
Features
- [DONE] Support feature flags.
- [DONE] Support features per group or percentage.