Skip to content

Latest commit

 

History

History
104 lines (76 loc) · 5.83 KB

CONTRIBUTING.md

File metadata and controls

104 lines (76 loc) · 5.83 KB

Contributing to cncf.ci - CNCF CI Status Dashboard

Welcome! We gladly accept contributions from CNCF Project Maintainers and encourage you to get involved!

This page will be updated incrementally as each new opportunity for collaboration becomes available.


About cncf.ci

V2 of the CNCF CI status dashboard -- cncf.ci -- will provide a third party validation of builds, deployments and end-to-end testing for CNCF’s Graduated and Incubating projects. The CNCF CI status dashboard continually validates each CNCF project, for any commit on stable and head, running on Kubernetes clusters which are provisioned to a bare metal environment. The results of each testing stage are published to the cncf.ci status dashboard.

Upcoming iterations of the CNCF CI status dashboard will focus on supporting a sustainable and scalable project ecosystem. To accelerate adding & maintaining projects on cncf.ci, the status dashboard will integrate with a project’s existing CI System and accept contributions from CNCF project maintainers.


Updating existing CNCF projects on cncf.ci:

Updating Project Details:

What are the "Project Details" on cncf.ci?

  • Project's logo in svg format
  • Project's display name
  • Project's subtitle
  • Project's GitHub repo URL

Project Details Example

How can a CNCF Project Maintainer update Project Details?

  • Using Prometheus as an example:
  1. Go to https://github.com/crosscloudci
  2. Open the project-configuration repo for the CNCF Project, ie. prometheus-configuration
  3. Open the cncfci.yml file on the master branch, ie. cncfci.yml
  4. Click the "edit" icon
  5. Create a fork of the project to make updates
  6. Update content, as needed: Prometheus YML
    1. logo_url: "https://raw.githubusercontent.com/cncf/artwork/master/prometheus/icon/color/prometheus-icon-color.svg?sanitize=true" (for svg format, append ?sanitize=true to url)
    2. display_name: (ie. Prometheus)
    3. sub_title: (ie. Monitoring, up to 21 characters)
    4. project_url: (ie. "https://github.com/prometheus/prometheus")
  7. Submit a pull request to master branch
  8. Tag reviewers as CNCF.CI project maintainers: @denverwilliams, @lixuna, @taylor, @wavell
  9. CNCF.CI project maintainer will review and merge pull request to master branch
  10. Updated content will display on cncf.ci CNCF CI Status Dashboard

Updating Release Details:

What are the "Release Details" on cncf.ci?

  • Project's latest stable release
  • Project's latest commit on master branch

Release Details Example

How can a CNCF Project Maintainer update Release Details?

  • Using CoreDNS as an example:
  1. Go to https://github.com/crosscloudci
  2. Open the project-configuration repo for the CNCF Project, ie. coredns-configuration
  3. Open the cncfci.yml file on the master branch, ie. cncfci.yml
  4. Click the "edit" icon
  5. Create a new branch to make updates
  6. Update content, as needed:
    1. stable_ref: "v1.5.2"
    2. head_ref: "master"
  7. Submit a pull request to master branch
  8. Tag reviewers as CNCF.CI project maintainers: @denverwilliams, @lixuna, @taylor, @wwatson
  9. CNCF.CI project maintainer will review and merge pull request to master branch
  10. Updated content will display on cncf.ci CNCF CI Status Dashboard

Updating Build Status Results:

What are the "Build Status Results" on cncf.ci? Build Status

  • The build status results are the statuses that show on the dashboard (e.g. success, failure).

How can a CNCF Project Maintainer update Build Status Results from Travis CI?

  • The dashboard can now use a project's internal ci system in order to capture the build status of a build. The dashboard must be configured using the cncfci.yml and gitlab-ci.yml for the project, located in the project's configuration folder.

  • Using the Test Project cncfci.yml as an example:

Test Project

  1. Create a ci_system element
    1. The ci_system element is an array which represents a list of all of the ci_systems (e.g. multiple Travis endpoints, a Travis and a Jenkins endpoint, etc) for a project
    2. ci_system_type is the type of ci system. Use "travis-ci" for Travis
    3. ci_project_url is the gitlab url for the project.
    4. ci_project_name is the organization and project name of the project e.g. crosscloudci/testproj
    5. arch is a list of architectures that are supported. e.g. amd64, arm64

How can a CNCF Project Maintainer update Build Status Results from Circle CI?

  • The Circle CI integration is planned for November. Only Travis CI is available at this time.