Support:Sumodev/Continuous Deployment: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 10: Line 10:


* {{ok|Get JavaScript tests running on Hudson.}} [no tracker]
* {{ok|Get JavaScript tests running on Hudson.}} [no tracker]
** {{ok|XUnit results from JS test suite.}}
** {{risk|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]
* {{ok|Crontab in Git.}} [https://bugzilla.mozilla.org/show_bug.cgi?id=625376]
* {{ok|Crontab in Git.}} [https://bugzilla.mozilla.org/show_bug.cgi?id=625376]

Revision as of 22:13, 2 March 2011

Draft-template-image.png THIS PAGE IS A WORKING DRAFT Pencil-emoji U270F-gray.png
The page may be difficult to navigate, and some information on its subject might be incomplete and/or evolving rapidly.
If you have any questions or ideas, please add them as a new topic on the discussion page.

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

  • [ON TRACK] Get JavaScript tests running on Hudson. [no tracker]
    • [AT RISK] XUnit results from JS test suite.
  • [DONE] Stop using SVN. [1]
  • [ON TRACK] Crontab in Git. [2]
  • Script deployment.

Q2 2011

  • Get release cycle down to one week.
  • Replace branches with flags.

Q3 2011

Q4 2011

Action Items

Testing

  • 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 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.

  1. Push every week. (By end of Q2.)
  2. Push every day.
  3. Push several times per day.

Features

  • Support feature flags.
  • Support features per group or percentage.