Files
stack/packages/mosaic/framework/tools/woodpecker/README.md
Hermes Agent d7028f959b
Some checks failed
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/pr/ci Pipeline was canceled
feat(framework/tools): orchestration helpers — lane-brief.sh + ci-wait.sh (#546)
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
2026-06-18 13:30:13 -05:00

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
```