Two additive orchestration tools distilled from forensic analysis of a live U-Connect delivery session, both adopted by the live orchestrator before this contribution. lane-brief.sh (git/): one call returns the CURRENT open issue set for a repo lane (milestone/label) from Gitea, classified for dispatch. Defeats stale worker self-report (workers brief from static notes and report already-CLOSED issues as "todo"). Closed excluded by definition; partitions by PR-linkage (reliable) not assignee/dependency (empty in this fleet). Login resolution: -L > $GITEA_LOGIN > owner inference > detect-platform.sh fallback. ci-wait.sh (woodpecker/): blocks until pipeline(s) reach terminal state, wrapping pipeline-status.sh (resolves repo->id, instance-aware). Replaces hand-rolled `curl .../repos/1/pipelines/$n` loops that hardcode repo id 1. Intended as a Monitor command + long (>=1500s) timed fallback, not a tight poll. Exit 0=all success / 1=terminal non-success / 2=usage / 3=timeout. Tested live vs usc/uconnect. README updated. No version bump (separate release PR per convention). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kt2D8TsnDwhtzEAPijsNmR
63 lines
1.6 KiB
Markdown
63 lines
1.6 KiB
Markdown
# Woodpecker CI Tool Suite
|
|
|
|
Interact with Woodpecker CI pipelines (list builds, check status, trigger builds).
|
|
|
|
## Prerequisites
|
|
|
|
- `jq` and `curl` installed
|
|
- Woodpecker credentials in `~/src/jarvis-brain/credentials.json`
|
|
|
|
## Setup
|
|
|
|
A Woodpecker API token is required. To configure:
|
|
|
|
1. Go to Woodpecker CI → User Settings → API
|
|
2. Generate a personal token
|
|
3. Add to `credentials.json`:
|
|
|
|
```json
|
|
{
|
|
"woodpecker": {
|
|
"url": "https://ci.mosaicstack.dev",
|
|
"token": "YOUR_TOKEN_HERE"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Scripts
|
|
|
|
| Script | Purpose |
|
|
| --------------------- | ------------------------------------------- |
|
|
| `pipeline-list.sh` | List recent pipelines for a repo |
|
|
| `pipeline-status.sh` | Get status of a specific or latest pipeline |
|
|
| `pipeline-trigger.sh` | Trigger a new pipeline build |
|
|
| `ci-wait.sh` | Block until pipeline(s) reach terminal state |
|
|
|
|
## Common Options
|
|
|
|
- `-r owner/repo` — Repository (auto-detected from git remote if omitted)
|
|
- `-f json` — JSON output (default: table)
|
|
- `-h` — Show help
|
|
|
|
## API Reference
|
|
|
|
- Base URL: `https://ci.mosaicstack.dev`
|
|
- API prefix: `/api/`
|
|
- Auth: Bearer token in `Authorization` header
|
|
|
|
## Examples
|
|
|
|
```bash
|
|
# List recent builds
|
|
~/.config/mosaic/tools/woodpecker/pipeline-list.sh
|
|
|
|
# Check latest build status
|
|
~/.config/mosaic/tools/woodpecker/pipeline-status.sh
|
|
|
|
# Trigger a build on a specific branch
|
|
~/.config/mosaic/tools/woodpecker/pipeline-trigger.sh -b feature/my-branch
|
|
|
|
# Block until one or more pipelines finish (event-driven CI wait)
|
|
~/.config/mosaic/tools/woodpecker/ci-wait.sh -r usc/uconnect -n 3917 -n 3918
|
|
```
|