© MIRANTIS 2013 PAGE© MIRANTIS 2013
OpenStack -
development
and testing
processes
Ruslan Kamaldinov
© MIRANTIS 2013 PAGE
OpenStack community
• More than a hundred commercial entities
• More than a thousand individual contr...
© MIRANTIS 2013 PAGE
OpenStack community
* all projects, including stackforge and openstack-infra
© MIRANTIS 2013 PAGE
OpenStack community
© MIRANTIS 2013 PAGE
Code review - Gerrit
• Raise bus factor
• Ensure code readability
• Catch bugs
• Everybody gets revie...
© MIRANTIS 2013 PAGE
Workflow
© MIRANTIS 2013 PAGE
Project gating
• Automated testing
• Ensures code quality
• Protects developers
• Protects source tre...
© MIRANTIS 2013 PAGE
Project gating
© MIRANTIS 2013 PAGE
Project gating
© MIRANTIS 2013 PAGE
Project gating
© MIRANTIS 2013 PAGE
Zuul
• Interfaces with Gerrit and Jenkins
• Listens for events from Gerrit and launches
Jenkins jobs
...
© MIRANTIS 2013 PAGE
Zuul
- name: openstack/sahara
template:
- name: python-jobs
- name: check-requirements
- name: integr...
© MIRANTIS 2013 PAGE
Zuul
project-templates:
- name: python-jobs
check:
- 'gate-{name}-pep8'
- 'gate-{name}-docs'
- 'gate-...
© MIRANTIS 2013 PAGE
Jenkins Job Builder
Jenkins Job Builder is a system for configuring
Jenkins jobs using simple YAML fi...
© MIRANTIS 2013 PAGE
Jenkins Job Builder
- project:
name: sahara
github-org: openstack
node: bare-precise
tarball-site: ta...
© MIRANTIS 2013 PAGE
Jenkins Job Builder
- job-template:
name: 'gate-{name}-pep8'
builders:
- revoke-sudo
- gerrit-git-pre...
© MIRANTIS 2013 PAGE
Resources
● http://ci.openstack.org/
● https://git.openstack.org/cgit/openstack-infra/config/tree/
● ...
© MIRANTIS 2013 PAGE
Q&A
Upcoming SlideShare
Loading in …5
×

6.1

661 views

Published on

Процессы разработки, инструменты и методы автоматизации тестирования в проекте OpenStack. С какими сложностями сталкивается сообщество OpenStack? Какие инструменты были разработаны для того, чтобы всегда поддерживать этот широкомасштабный проект в рабочем состоянии?

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
661
On SlideShare
0
From Embeds
0
Number of Embeds
168
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

6.1

  1. 1. © MIRANTIS 2013 PAGE© MIRANTIS 2013 OpenStack - development and testing processes Ruslan Kamaldinov
  2. 2. © MIRANTIS 2013 PAGE OpenStack community • More than a hundred commercial entities • More than a thousand individual contributors • 700-1000 patch-set per day • ~250 commits per day
  3. 3. © MIRANTIS 2013 PAGE OpenStack community * all projects, including stackforge and openstack-infra
  4. 4. © MIRANTIS 2013 PAGE OpenStack community
  5. 5. © MIRANTIS 2013 PAGE Code review - Gerrit • Raise bus factor • Ensure code readability • Catch bugs • Everybody gets reviewed (no exceptions)
  6. 6. © MIRANTIS 2013 PAGE Workflow
  7. 7. © MIRANTIS 2013 PAGE Project gating • Automated testing • Ensures code quality • Protects developers • Protects source tree • Process is the same for everyone
  8. 8. © MIRANTIS 2013 PAGE Project gating
  9. 9. © MIRANTIS 2013 PAGE Project gating
  10. 10. © MIRANTIS 2013 PAGE Project gating
  11. 11. © MIRANTIS 2013 PAGE Zuul • Interfaces with Gerrit and Jenkins • Listens for events from Gerrit and launches Jenkins jobs • Allows parallel testing of serialized changes
  12. 12. © MIRANTIS 2013 PAGE Zuul - name: openstack/sahara template: - name: python-jobs - name: check-requirements - name: integrated-gate-sahara check: - gate-sahara-pylint post: - hook-sahara-rtfd - sahara-upstream-translation-update pre-release: - sahara-tarball - hook-sahara-rtfd release: - sahara-tarball: - hook-sahara-rtfd
  13. 13. © MIRANTIS 2013 PAGE Zuul project-templates: - name: python-jobs check: - 'gate-{name}-pep8' - 'gate-{name}-docs' - 'gate-{name}-python26' - 'gate-{name}-python27' gate: - 'gate-{name}-docs' - 'gate-{name}-pep8' - 'gate-{name}-python26' - 'gate-{name}-python27' post: - '{name}-branch-tarball' - '{name}-coverage'
  14. 14. © MIRANTIS 2013 PAGE Jenkins Job Builder Jenkins Job Builder is a system for configuring Jenkins jobs using simple YAML files stored in Git.
  15. 15. © MIRANTIS 2013 PAGE Jenkins Job Builder - project: name: sahara github-org: openstack node: bare-precise tarball-site: tarballs.openstack.org doc-publisher-site: docs.openstack.org jobs: - python-jobs - gate-{name}-pylint - hook-{name}-rtfd - pypi-jobs - translation-jobs - openstack-publish-jobs
  16. 16. © MIRANTIS 2013 PAGE Jenkins Job Builder - job-template: name: 'gate-{name}-pep8' builders: - revoke-sudo - gerrit-git-prep - pep8: github-org: '{github-org}' project: '{name}' publishers: - console-log node: '{node}'
  17. 17. © MIRANTIS 2013 PAGE Resources ● http://ci.openstack.org/ ● https://git.openstack.org/cgit/openstack-infra/config/tree/ ● https://git.openstack.org/cgit/openstack-infra/zuul/tree ● https://git.openstack.org/cgit/openstack-infra/jenkins-job-builder/tree ● #openstack-infra at freenode.net ● #openstack-dev at freenode.net ● #openstack-sahara at freenode.net ● http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ● http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra
  18. 18. © MIRANTIS 2013 PAGE Q&A

×