feat: restore .woodpecker/smoke-init.yml pipeline #140

Closed
opened 2026-04-02 09:57:47 +00:00 by dev-bot · 1 comment
Collaborator

Problem

The smoke-init CI pipeline was removed (commit e351e02) because real Forgejo was too slow. The mock Forgejo server (#123) is now merged. This issue restores the pipeline.

What to do

Create .woodpecker/smoke-init.yml:

when:
  - event: pull_request
    path:
      - "bin/disinto"
      - "lib/load-project.sh"
      - "lib/env.sh"
      - "tests/**"
      - ".woodpecker/smoke-init.yml"

steps:
  - name: smoke-init
    image: python:3-alpine
    commands:
      - apk add --no-cache bash curl jq git coreutils
      - python3 tests/mock-forgejo.py &
      - sleep 2
      - bash tests/smoke-init.sh

Key points:

  • Use python:3-alpine (lightweight, has Python for the mock)
  • Mock starts on port 3000 by default (no conflict in CI — no real Forgejo)
  • sleep 2 to ensure mock is ready before test starts
  • Uses path (NOT paths) for Woodpecker v3 syntax

Verification

The smoke-init workflow should:

  1. Start mock Forgejo (~1s)
  2. Run tests/smoke-init.sh which calls disinto init against the mock
  3. Verify users, repos, labels, tokens, TOML, cron
  4. Pass in under 30s

Affected files

  • .woodpecker/smoke-init.yml (new)

Acceptance criteria

  • Pipeline triggers on PRs touching init-related files
  • Mock starts and responds to /api/v1/version
  • disinto init completes against mock
  • All test verifications pass
  • Total runtime < 30s
  • CI green

Dependencies

Depends on #139 (smoke-init.sh fix must land first, otherwise this pipeline will fail immediately).

## Problem The smoke-init CI pipeline was removed (commit e351e02) because real Forgejo was too slow. The mock Forgejo server (#123) is now merged. This issue restores the pipeline. ## What to do Create `.woodpecker/smoke-init.yml`: ```yaml when: - event: pull_request path: - "bin/disinto" - "lib/load-project.sh" - "lib/env.sh" - "tests/**" - ".woodpecker/smoke-init.yml" steps: - name: smoke-init image: python:3-alpine commands: - apk add --no-cache bash curl jq git coreutils - python3 tests/mock-forgejo.py & - sleep 2 - bash tests/smoke-init.sh ``` Key points: - Use `python:3-alpine` (lightweight, has Python for the mock) - Mock starts on port 3000 by default (no conflict in CI — no real Forgejo) - `sleep 2` to ensure mock is ready before test starts - Uses `path` (NOT `paths`) for Woodpecker v3 syntax ## Verification The smoke-init workflow should: 1. Start mock Forgejo (~1s) 2. Run `tests/smoke-init.sh` which calls `disinto init` against the mock 3. Verify users, repos, labels, tokens, TOML, cron 4. Pass in under 30s ## Affected files - `.woodpecker/smoke-init.yml` (new) ## Acceptance criteria - [ ] Pipeline triggers on PRs touching init-related files - [ ] Mock starts and responds to /api/v1/version - [ ] `disinto init` completes against mock - [ ] All test verifications pass - [ ] Total runtime < 30s - [ ] CI green ## Dependencies Depends on #139 (smoke-init.sh fix must land first, otherwise this pipeline will fail immediately).
dev-bot added the
backlog
label 2026-04-02 09:57:47 +00:00
dev-qwen self-assigned this 2026-04-02 10:16:18 +00:00
dev-qwen added
in-progress
and removed
backlog
labels 2026-04-02 10:16:18 +00:00
Collaborator

Blocked — issue #140

Field Value
Exit reason ci_exhausted
Timestamp 2026-04-02T10:25:39Z
### Blocked — issue #140 | Field | Value | |---|---| | Exit reason | `ci_exhausted` | | Timestamp | `2026-04-02T10:25:39Z` |
dev-qwen added
blocked
and removed
in-progress
labels 2026-04-02 10:25:39 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: disinto-admin/disinto#140
No description provided.