From Fedora Project Wiki
(→‎More Details: Update scope section)
(Complete all the sections)
Line 7: Line 7:
A '''contintuous integration''' pipeline builds and composes Fedora Atomic Host artifacts exactly as they will be delivered and used (eg: in QCow2 and OSTree formats), and runs integration tests on it in that form.  
A '''contintuous integration''' pipeline builds and composes Fedora Atomic Host artifacts exactly as they will be delivered and used (eg: in QCow2 and OSTree formats), and runs integration tests on it in that form.  


'''Continuous integration''' will gate changes to packages. It will prevent a broken package change, as defined by integration tests, from affecting other developer's and/or testers of Fedora. The package maintainer will be able to change the tests on which their package is gated.
'''Continuous integration''' pipeline will gate changes to packages. It will prevent a broken package change, as defined by integration tests, from affecting other developer's and/or testers of Fedora. The package maintainer will be able to change the tests on which their package is gated. The pipeline also gates broken combinations of package changes.


'''Continuous delivery''' will deliver the artifacts composed during integration step above to users of Fedora Atomic Host. It allows, but does not mandate constant or frequent delivery of changes to the Fedora mirrors. During delivery we will gate a broken combination of changes, or otherwise unacceptable set of changes (due to policy, schedule, etc.) from reaching users.
'''Continuous delivery''' will deliver the artifacts composed during integration step above to users of Fedora Atomic Host. It allows, but does not mandate constant or frequent delivery of changes to the Fedora mirrors. During delivery we can prevent unacceptable changes, due to policy or schedule, from reaching users.


=== Scope ===
=== More Details ===


During this objective, the focus and scope of CI will be on packages included in Atomic Host. These represent many of the core packages in Fedora.  
* ''TODO Link Needed:'' Fedora requirements for CI/CD Pipelines
* [[CI|CI Landing Page]]
* Tests will be [[https://fedoraproject.org/wiki/Changes/InvokingTests|stored in dist-git]]
 
=== Deliverables and Scope ===
 
During this objective, the focus and scope of CI will be on packages included in Atomic Host. These represent many of the core packages in Fedora. Testing and gating of build requirements is out of initial scope, and should be covered by future objectives.


In addition the delivery will be limited to composed artifacts of Atomic Host:
In addition the delivery will be limited to composed artifacts of Atomic Host:
Line 22: Line 28:
* Amazon Public Cloud images
* Amazon Public Cloud images


=== Deliverables ===
The composes delivered by the CI/CD pipeline will not include full RPM based composes of Fedora at this point. Although the integration tests will help improve the quality of Fedora overall.
 
== Key Results ==
 
Look for the following key results during progress on this objective:
 
* 100 packages in Fedora Atomic host have at least one test stored in dist-git according to the spec.
* Work with package maintainers to start to add additional tests or update tests when needed.
* 100% of tests in Fedora Atomic Host packages pass on OSTree composes before a composed Fedora Atomic Host image is delivered.
* Fedora Atomic Host artifact composes have no human interaction after the gating points.
* Tests ported upstream from downstream sources have been reviewed by QE.
* Tests check that Fedora Atomic Host works with key containers produced by Modularity effort.


TODO: Fill this section in.
== Working Group and Special Interest Group ==


The contents of Fedora Atomic Host should be consistent with previous
We will engage with the [Fedora Atomic Working Group](https://fedoraproject.org/wiki/Atomic/PRD) to align on goals, content and deliverables of Fedora Atomic Host.  
releases.  


== Special Interest Group ==
Much of the pipeline and testing effort on this Objective will be undertaken by a new "'''CI Special Interest Group'''". This group will invite people from the Fedora Engineering team, Fedora Release-Engineering team, Fedora QA, Security Team and more. Work will be coordinated when possible with the Factory 2.0 effort. Contact info:


TODO: Describe SIG
* #fedora-ci on FreeNode
* Mailing list: ci@lists.fedoraproject.org
* If you don't know where to go: [[user:Stefw|Stef Walter]] [[user:pingou|Pierre-Yves Chibon]]


== Objective Lead ==
== Objective Lead ==


[[user:Stefw|Stef Walter]]
[[user:Stefw|Stef Walter]]
Line 40: Line 57:
== Timeframe ==
== Timeframe ==


TODO: More details
This Objective aims to deliver Fedora Atomic Host at the Fedora 27 Beta and Release dates.  
 
Fedora Atomic 27
 
Describe Plan B around Atomic Host.


By Flock in September (also of this year), ...
By Flock in September 2017, we will discuss the concrete results of this objective so far, and together imagine next steps for CI/CD objectives in Fedora.

Revision as of 08:06, 2 July 2017

Objective: Deliver Fedora Atomic Host via CI/CD

Goal

We aim to deliver Atomic Host in Fedora via Continuous Integration and Continuous Delivery.

A contintuous integration pipeline builds and composes Fedora Atomic Host artifacts exactly as they will be delivered and used (eg: in QCow2 and OSTree formats), and runs integration tests on it in that form.

Continuous integration pipeline will gate changes to packages. It will prevent a broken package change, as defined by integration tests, from affecting other developer's and/or testers of Fedora. The package maintainer will be able to change the tests on which their package is gated. The pipeline also gates broken combinations of package changes.

Continuous delivery will deliver the artifacts composed during integration step above to users of Fedora Atomic Host. It allows, but does not mandate constant or frequent delivery of changes to the Fedora mirrors. During delivery we can prevent unacceptable changes, due to policy or schedule, from reaching users.

More Details

Deliverables and Scope

During this objective, the focus and scope of CI will be on packages included in Atomic Host. These represent many of the core packages in Fedora. Testing and gating of build requirements is out of initial scope, and should be covered by future objectives.

In addition the delivery will be limited to composed artifacts of Atomic Host:

  • QCow2 images
  • Vagrant images
  • OSTree trees
  • Amazon Public Cloud images

The composes delivered by the CI/CD pipeline will not include full RPM based composes of Fedora at this point. Although the integration tests will help improve the quality of Fedora overall.

Key Results

Look for the following key results during progress on this objective:

  • 100 packages in Fedora Atomic host have at least one test stored in dist-git according to the spec.
  • Work with package maintainers to start to add additional tests or update tests when needed.
  • 100% of tests in Fedora Atomic Host packages pass on OSTree composes before a composed Fedora Atomic Host image is delivered.
  • Fedora Atomic Host artifact composes have no human interaction after the gating points.
  • Tests ported upstream from downstream sources have been reviewed by QE.
  • Tests check that Fedora Atomic Host works with key containers produced by Modularity effort.

Working Group and Special Interest Group

We will engage with the [Fedora Atomic Working Group](https://fedoraproject.org/wiki/Atomic/PRD) to align on goals, content and deliverables of Fedora Atomic Host.

Much of the pipeline and testing effort on this Objective will be undertaken by a new "CI Special Interest Group". This group will invite people from the Fedora Engineering team, Fedora Release-Engineering team, Fedora QA, Security Team and more. Work will be coordinated when possible with the Factory 2.0 effort. Contact info:

Objective Lead

Stef Walter

Timeframe

This Objective aims to deliver Fedora Atomic Host at the Fedora 27 Beta and Release dates.

By Flock in September 2017, we will discuss the concrete results of this objective so far, and together imagine next steps for CI/CD objectives in Fedora.