Skip to content

Commit 77430e1

Browse files
committed
docs: move CI overview to .github and update links
Signed-off-by: Ayush More <ayushmore42595@gmail.com>
1 parent 1288570 commit 77430e1

2 files changed

Lines changed: 172 additions & 1 deletion

File tree

.github/ci.md

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
---
2+
title: "CI Overview"
3+
linkTitle: "CI Overview"
4+
weight: 30
5+
description: >
6+
An overview of PipeCD’s GitHub Actions CI workflows, what each workflow does,
7+
and when it runs.
8+
---
9+
10+
## Who Is This Document For?
11+
12+
This document is intended for contributors who:
13+
- submit pull requests to PipeCD
14+
- want to understand which CI workflows run and why
15+
- need basic context to debug CI failures
16+
---
17+
18+
## CI Philosophy
19+
20+
PipeCD’s CI is designed to:
21+
- provide fast feedback on pull requests
22+
- prevent regressions on the default and release branches
23+
- keep workflows explicit and deterministic
24+
- automate release and publishing tasks safely
25+
26+
---
27+
28+
## Workflow Overview
29+
30+
Below is a brief description of each GitHub Actions workflow under
31+
`.github/workflows/`.
32+
33+
### `test.yaml`
34+
**What it does:** Runs Go unit tests to validate core functionality.
35+
**When it runs:** On pull requests and pushes to the default branch.
36+
37+
---
38+
39+
### `lint.yaml`
40+
**What it does:** Runs linters and static analysis to enforce code quality.
41+
**When it runs:** On pull requests and pushes to the default branch.
42+
43+
---
44+
45+
### `build.yaml`
46+
**What it does:** Builds PipeCD binaries to ensure the project compiles correctly.
47+
**When it runs:** On pull requests and pushes to the default branch.
48+
49+
---
50+
51+
### `gen.yaml`
52+
**What it does:** Verifies that generated files are up to date.
53+
**When it runs:** On pull requests to prevent uncommitted generated changes.
54+
55+
---
56+
57+
### `web.yaml`
58+
**What it does:** Builds and validates the PipeCD Web UI.
59+
**When it runs:** On pull requests that include web-related changes.
60+
61+
---
62+
63+
### `chart.yaml`
64+
**What it does:** Validates Helm charts used to deploy PipeCD.
65+
**When it runs:** On pull requests affecting Helm chart files.
66+
67+
---
68+
69+
### `codeql-analysis.yaml`
70+
**What it does:** Runs CodeQL security analysis to detect potential vulnerabilities.
71+
**When it runs:** On a scheduled basis and on selected pushes.
72+
73+
---
74+
75+
### `labeler.yaml`
76+
**What it does:** Automatically applies labels to pull requests based on changed files.
77+
**When it runs:** When a pull request is opened or updated.
78+
79+
---
80+
81+
### `stale.yaml`
82+
**What it does:** Marks and closes inactive issues and pull requests.
83+
**When it runs:** On a scheduled basis.
84+
85+
---
86+
87+
### `cherry_pick.yaml`
88+
**What it does:** Automates cherry-picking changes into release branches.
89+
**When it runs:** When manually triggered by maintainers.
90+
91+
---
92+
93+
### `plugin_release.yaml`
94+
**What it does:** Builds and publishes PipeCD plugins.
95+
**When it runs:** During plugin release workflows.
96+
97+
---
98+
99+
### `publish_binary.yaml`
100+
**What it does:** Builds and publishes PipeCD binaries.
101+
**When it runs:** During release workflows.
102+
103+
---
104+
105+
### `publish_pipedv1_exp.yaml`
106+
**What it does:** Builds and publishes experimental `pipedv1` container images.
107+
**When it runs:** On prerelease or experimental release triggers.
108+
109+
---
110+
111+
### `publish_image_chart.yaml`
112+
**What it does:** Publishes Helm charts and related container images.
113+
**When it runs:** During release workflows.
114+
115+
---
116+
117+
### `publish_tool.yaml`
118+
**What it does:** Builds and publishes PipeCD CLI and tooling images.
119+
**When it runs:** On tool release events.
120+
121+
---
122+
123+
### `publish_site.yaml`
124+
**What it does:** Builds and publishes the PipeCD documentation website.
125+
**When it runs:** On documentation updates and release events.
126+
127+
---
128+
129+
### `prerelease.yaml`
130+
**What it does:** Prepares prerelease artifacts for testing and validation.
131+
**When it runs:** When a prerelease is triggered.
132+
133+
---
134+
135+
### `release.yaml`
136+
**What it does:** Orchestrates the full PipeCD release process.
137+
**When it runs:** When a release is created.
138+
139+
---
140+
141+
### `build_tool.yaml`
142+
**What it does:** Builds internal tooling images used by CI and release workflows.
143+
**When it runs:** On pushes affecting tool-related code.
144+
145+
---
146+
147+
### `code-butler.yaml`
148+
**What it does:** Runs automated code maintenance tasks.
149+
**When it runs:** On a scheduled basis or when triggered by maintainers.
150+
151+
---
152+
## Debugging CI Failures
153+
154+
When a CI check fails:
155+
1. Identify which workflow failed.
156+
2. Read the workflow name to understand its responsibility.
157+
3. Check the job logs for the specific failure.
158+
159+
Most CI failures are scoped to a single concern (tests, lint, build, or web),
160+
which usually makes the root cause clear.
161+
162+
## References
163+
164+
- **PipeCD GitHub Actions workflows**
165+
https://github.com/pipe-cd/pipecd/tree/master/.github/workflows
166+
167+
- **Contributing Guide**
168+
https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md
169+
170+
- **GitHub Actions documentation**
171+
https://docs.github.com/en/actions

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ All pull requests undergo checks by the continuous integration system, GitHub Ac
5151

5252
When you submit a pull request to PipeCD, multiple CI workflows are triggered to validate your changes. These checks help ensure code quality, correctness, and consistency across the project.
5353

54-
To better understand which CI workflows run and what they are responsible for, please refer to the [CI overview documentation](docs/content/en/docs-v1.0.x/development/ci.md).
54+
To better understand which CI workflows run and what they are responsible for, please refer to the [CI overview documentation](.github/ci.md).
5555

5656
### Branch Organization
5757

0 commit comments

Comments
 (0)