Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

140 releases per month

413 vues

Publié le

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.

Publié dans : Technologie
  • Soyez le premier à commenter

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

×