29 lines
868 B
Markdown
29 lines
868 B
Markdown
|
|
# CI/CD — Best Practices
|
||
|
|
|
||
|
|
## CI Pipeline Issues (P2)
|
||
|
|
|
||
|
|
When CI pipelines are stuck running >20min or pending >30min:
|
||
|
|
|
||
|
|
### Investigation Steps
|
||
|
|
1. Check pipeline status via Forgejo API:
|
||
|
|
```bash
|
||
|
|
curl -sf -H "Authorization: token $FORGE_TOKEN" \
|
||
|
|
"$FORGE_API/pipelines?limit=50" | jq '.[] | {number, status, created}'
|
||
|
|
```
|
||
|
|
|
||
|
|
2. Check Woodpecker CI if configured:
|
||
|
|
```bash
|
||
|
|
curl -sf -H "Authorization: Bearer $WOODPECKER_TOKEN" \
|
||
|
|
"$WOODPECKER_SERVER/api/repos/${WOODPECKER_REPO_ID}/pipelines?limit=10"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Common Fixes
|
||
|
|
- **Stuck pipeline**: Cancel via Forgejo API, retrigger
|
||
|
|
- **Pending pipeline**: Check queue depth, scale CI runners
|
||
|
|
- **Failed pipeline**: Review logs, fix failing test/step
|
||
|
|
|
||
|
|
### Prevention
|
||
|
|
- Set timeout limits on CI pipelines
|
||
|
|
- Monitor runner capacity and scale as needed
|
||
|
|
- Use caching for dependencies to reduce build time
|