O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

140 releases per month

414 visualizações

Publicada em

Short presentation of Tuleap release process. How we are leveraging Gerrit, Jenkins, Tuleap and docker to make a very efficient integration pipeline and to deliver 10 times a day.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

140 releases per month

  1. 1. @vaceletm – tuleap.org - enalean.com How @EnaleanTeam delivers @TuleapOpenALM 140 releases per month
  2. 2. @vaceletm – tuleap.org - enalean.com Who am I ● Manuel Vacelet (@vaceletm) ● Enalean CTO (@EnaleanTeam) ● Tuleap Product Owner (@TuleapOpenALM) ● Tuleap contributor and maintainer ● Grenoble Docker Meetup org ● Former Agile Grenoble org
  3. 3. @vaceletm – tuleap.org - enalean.com Tuleap ● Application Lifecycle Management – Requirements, Planning, Dev, CI, Test Management, Delivery, Issues, Documentation ● Open Source (GPLv2)
  4. 4. @vaceletm – tuleap.org - enalean.com How a commit goes to prod Developer Maintainer Gerrit Jenkins Jenkins ● 140 times a month ● From issue to release as fast as 1 hour
  5. 5. @vaceletm – tuleap.org - enalean.com Principles ● What a Release is ? – Tuleap is delivered as RPM packages to be installed on a Red Hat compatible OS – Two kind of releases ● “dev”: built out of master ● “stable”: built out of tags (snapshot of master at given date) ● Continuous Integration – No branches (vs. git flow & feature branches) – All developments made on master – Each commit on master triggers a new release
  6. 6. @vaceletm – tuleap.org - enalean.com Code review with Gerrit ● Gerrit is for code review & integration workflow ● Developed by Google, SAP, Ericsson, … ● Used by android, chrome, golang, openstack, mediawiki, ... Developer Maintainer Gerrit Jenkins
  7. 7. @vaceletm – tuleap.org - enalean.com Code review with Gerrit ● Review pattern completely different than Pull Requests – Maintainers review commits (vs branches) – Fixes are made by amending commits (vs updating branches) – Formal approval of commits “+2” (vs LGTM) ● For Tuleap Core (since January) – ~2000 commits got merged – ~6500 patchsets submitted (28 patchsets per day) ● For 1 commit accepted by maintainers, 3.25 version of the commit were submitted Developer Maintainer Gerrit Jenkins
  8. 8. @vaceletm – tuleap.org - enalean.com Code review with Gerrit and Jenkins ● Jenkins is essential in code review process ● Heavily use “Pipelines” Developer Maintainer Gerrit Jenkins ● 13300 tests run for each commit ● Unit tests (php, javascript) ● Integration tests (DB, REST, SOAP) ● Platform tests (deployment + selenium) ● Build and Run (packages and install)
  9. 9. @vaceletm – tuleap.org - enalean.com Integration ● Maintainers merge the commit ● GPG sign of merge – Ensure traceability and trust of source code ● Push into Tuleap git reference repository Maintainer
  10. 10. @vaceletm – tuleap.org - enalean.com Build the release Jenkins ● Again Jenkins pipelines are key ● Build of – Tuleap – External plugins & tools – For 2 distributions (RHEL6 & RHEL7) – With automated GPG signature of packages (again ensure trust) ● Publish – Packages for On Prem use (community) – Docker images in our internal registry
  11. 11. @vaceletm – tuleap.org - enalean.com Deployment ● Docker Images – Based on Tuleap Enterprise, deployed every week with important fixes and backport (stability) ● RPMs – Automatically installed on our servers (tuleap.net, etc) every morning → dog fooding – Installed by community → bug reports & fixes
  12. 12. @vaceletm – tuleap.org - enalean.com Outcome / Take away ● Always on going process – Current heavy work is around pipeline efficiencies ● Continuous integration is hard – Hard to get right – Hard to actually help developers – Hard to stabilize – It’s time consuming ● But it pays off – Stability of product – Ability to cut a release at any time – Push a fix at any time in less than 1 hour

×