Skip to content

Commit 4071bf0

Browse files
committed
CI configuration docs cleanup
- delete obsolete docs - link to the new contribution docs from few places - warn about tempaltes being legacy
1 parent 318d574 commit 4071bf0

File tree

5 files changed

+41
-127
lines changed

5 files changed

+41
-127
lines changed

ALERTS.md

-57
This file was deleted.

CONTRIBUTING.md

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
Contributing documentation is maintained [here][ci-tools-webreg] and served [here][webreg-production].
1+
# Contributing to `openshift/release`
22

3+
[Contributing documentation][openshift-release-contributing] is served (together
4+
with other documentation related to CI) on [steps.ci.openshift.org][steps].
5+
It is maintained in the [ci-tools][ci-tools-webreg] repository.
6+
7+
## Useful shortcuts
8+
9+
- [Pull Requests to openshift/release][orc-reviews]
10+
- [Adding CI Configuration for New Repositories][orc-newrepos]
11+
12+
[openshift-release-contributing]: https://steps.ci.openshift.org/help/release
13+
[orc-reviews]: https://steps.ci.openshift.org/help/release#reviews
14+
[orc-newrepos]: https://steps.ci.openshift.org/help/release#new-repos
315
[ci-tools-webreg]: https://github.com/openshift/ci-tools/blob/master/pkg/webreg
4-
[webreg-production]: https://steps.svc.ci.openshift.org/
16+
[steps]: https://steps.ci.openshift.org/

README.md

+14-15
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,30 @@ OCP.
66

77
## CI Workflow Configuration
88

9-
To setup a CI workflow for a new repository, use `make new-repo`.
9+
To setup a CI workflow for a new repository, use `make new-repo`. See the
10+
[Contributing CI Configuration to the openshift/release Repository](https://steps.ci.openshift.org/help/release)
11+
document for detailed information about how to contribute to this repository.
1012

1113
Configuration files for CI workflows live under [`ci-operator/`](./ci-operator/)
1214
and are split into the following categories:
1315

1416
- [`ci-operator/config`](./ci-operator/config/) contains configuration for the
15-
`ci-operator`, detailing builds and tests for component repositories. See the
16-
[contributing guide](./ci-operator/README.md) for details on how to configure
17-
new repositories or tests.
17+
`ci-operator`, detailing builds and tests for component repositories.
1818
- [`ci-operator/jobs`](./ci-operator/jobs/) contains configuration for `prow`,
19-
detailing job triggers. In almost all cases, this configuration can be
19+
detailing job triggers. In almost all cases, this configuration is
2020
generated automatically from the `ci-operator` config. For manual edits, see
21-
the [upstream configuration document](https://github.com/kubernetes/test-infra/blob/master/prow/README.md#how-to-add-new-jobs)
22-
for details on how to configure a job, but prefer the `ci-operator` config
23-
whenever possible.
24-
- [`ci-operator/templates`](./ci-operator/templates/) contains black-box test
21+
[this section](https://steps.ci.openshift.org/help/release#component-jobs)
22+
of the contribution document and the [upstream configuration document](https://github.com/kubernetes/test-infra/blob/master/prow/README.md#how-to-add-new-jobs). Prefer the `ci-operator` config whenever possible.
23+
- [`ci-operator/step-registry`](./ci-operator/step-registry/) contains the
24+
registry of reusable test steps and workflows. See the documentation for
25+
this content [here](https://steps.ci.openshift.org/help).
26+
- **[LEGACY]** [`ci-operator/templates`](./ci-operator/templates/) contains black-box test
2527
workflows for use by the `ci-operator`. The parent directory's
2628
[README](./ci-operator#end-to-end-tests) documents how to use them. See the
2729
[template document](https://github.com/openshift/ci-tools/blob/master/TEMPLATES.md)
28-
for general information on template tests.
29-
- [`ci-operator/infra`](./ci-operator/infra/) contains manifests for infrastructure
30-
components used by the `ci-operator`. Contact a CI Administrator if you feel
31-
like one of these should be edited. (**legacy**: do not add new services
32-
here. Use [`core-services`](./core-services) or [`projects`](./projects)
33-
instead.)
30+
for general information on template tests. Templates are legacy and new
31+
ones should not be added. Multi-stage tests using steps from the shared
32+
registry should be used instead.
3433

3534
## Cluster and Service Configuration Manifests
3635

ci-operator/README.md

+12-5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ensure that your changes are compliant to our conventions and pass the CI tests
1313
that will run when you submit your changes as a PR:
1414

1515
```
16-
make jobs
16+
make update
1717
```
1818

1919
By default `CONTAINER_ENGINE` is set to `docker`, if preferred you can install
@@ -26,7 +26,7 @@ does not generate any new configuration.
2626
Conventions
2727
-----------
2828

29-
Under this directory, we have three main directories:
29+
Under this directory, we have four main directories:
3030

3131
* `config/$org/$repo/$org-$repo-$branch.yaml`
3232
Contains your ci-operator definition which describes how the images and tests
@@ -40,16 +40,23 @@ Under this directory, we have three main directories:
4040
or periodically. When we branch jobs, we will copy the current master jobs into
4141
a release branch specific job. Each prow job calls into the appropriate subset
4242
of the tests defined in your ci-operator config and passes in the secrets and
43-
infrastructure info specific to our CI environment
44-
* `templates/*.yaml`
45-
These templates are used for more complicated jobs that don't run in a single
43+
infrastructure info specific to our CI environment.
44+
* `step-registry`
45+
Contains reusable test steps and workflows for multi-stage tests.
46+
* **[LEGACY]** `templates/*.yaml`
47+
These templates are used for more complicated jobs that don't run in a single
4648
pod. The templates are referenced by the Prow jobs and are instantiated by
4749
the ci-operator using parameters generated by the build (references to images
4850
usually).
4951

52+
5053
End-to-end tests
5154
----------------
5255

56+
> :warning: This section describes the legacy approach to end-to-end tests.
57+
> Whenever possible, the current *"multi-stage"* tests should be used instead.
58+
> You can find the documentation for multi-stage tests [here](https://steps.ci.openshift.org/help).
59+
5360
This section describes how to configure end-to-end tests using ci-operator. In
5461
this context, "end-to-end" means the functionality of the application is being
5562
tested on top of a Kubernetes cluster from an end-user perspective.

ci-operator/REHEARSALS.md

+1-48
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,3 @@
11
# CI job rehearsals
22

3-
Pull requests to this repository that contain changes affecting Prow job setup
4-
trigger a so-called "rehearsal". Jobs that would be affected by a PR are
5-
executed as if run against a target component repository after job changes
6-
would be merged. This provides job config authors early feedback about how job
7-
config changes impact CI setup for a given repo.
8-
9-
## How rehearsal works
10-
11-
All pull requests trigger a `ci/prow/pj-rehearse` job, which detects the jobs
12-
affected by the proposed change. For each job selected for rehearsal (for
13-
various reasons, we are not able to rehearse all jobs), new Prowjob is
14-
dynamically created, reporting results via a GitHub context named with the
15-
`ci/rehearse/$org/$repo/$branch/$test` pattern. Both the "driver" job
16-
(`ci/prow/pj-rehearse`) and the actual rehearsals are optional, which means
17-
that their failures do not block Tide from merging the PR. The driver job waits
18-
for individual rehearsals to finish, and its own PASS/FAIL value depends on
19-
them: it will fail if at least one of the rehearsals did not succeed.
20-
21-
## Which jobs are rehearsed
22-
23-
At the moment, we are not able to rehearse all affected jobs for various
24-
reasons. Currently, we only rehearse `Presubmit` jobs affected by the
25-
following changes:
26-
27-
1. Newly added presubmit jobs
28-
2. Presubmit jobs whose `spec:` field was changed
29-
3. Presubmit jobs whose `agent:` field was changed to `kubernetes` from a
30-
different value
31-
32-
These jobs are then further filtered to exclude jobs where some factor prevents
33-
us from reliably rehearsing them. Decisions about why a job was excluded from
34-
rehearsing are logged in the output of the `ci/prow/pj-rehearse` job. Most
35-
importantly, we are currently *not* rehearsing template-based jobs.
36-
37-
## Rehearsal reruns
38-
39-
It is not possible to re-run individual rehearsal jobs (they do not react to any
40-
trigger command themselves). Rerunning rehearsals must be always done by
41-
re-triggering the "driver" job (`ci/prow/pj-rehearse`), which then re-triggers
42-
each individual rehearsal job, including those that were passing before.
43-
44-
## Future work
45-
In the near future, we would like to enlarge the set of jobs that are
46-
rehearsed. First, changes to several fields other that `spec:` should cause a
47-
rehearsal. Afterwards, we would like to enable rehearsing template-based jobs.
48-
Additionally, we want to consider for rehearsal even jobs that are affected by
49-
a change *indirectly*, e.g., by a change of an underlying ci-operator config
50-
file, template or other asset used by the job.
3+
The documentation for rehearsals was moved [here](https://steps.ci.openshift.org/help/release#rehearsals).

0 commit comments

Comments
 (0)