Add Woodpecker CI pipeline #1

Closed
opened 2026-02-27 20:22:12 +00:00 by forgejo_admin · 0 comments

Plan

plan-2026-02-25-mcp-gateway-migration — Phase 2

Repo

gmail-mcp — the repo where the code change happens

User Story

As a platform operator
I need gmail-mcp to have a Woodpecker CI pipeline running tests on push and publishing to PyPI on tag
So that code quality is enforced and releases are automated via the Forgejo GitOps pipeline

Acceptance Criteria

When I push to main or open a pull request
Then Woodpecker runs ruff check, ruff format --check, and pytest

When I push a tag matching v*
Then Woodpecker builds and publishes the package to PyPI (if version not already published)

Additional Information

Part of the batch Phase 2 work covering all 9 library repos. Tracked in pal-e-docs as issue-pal-e-services-library-pipelines.

PyPI package name: gmail-mcp-ldraney
Dev deps location: [dependency-groups].dev (PEP 735 format)
Build system: setuptools
Special: [tool.uv.sources] references ../gmail-sdk — local dev convenience, not touched.
Special: test step uses pip install -e . ruff pytest instead of pip install -e ".[dev]" ruff because deps are in [dependency-groups] not [project.optional-dependencies].

Checklist

  • .woodpecker.yaml added with test + publish steps
  • ruff>=0.4.0 added to [dependency-groups].dev
  • PR opened and merged
  • issue-pal-e-services-library-pipelines — parent tracking issue
  • plan-2026-02-25-mcp-gateway-migration — parent plan
  • project-pal-e — parent project
### Plan `plan-2026-02-25-mcp-gateway-migration` — Phase 2 ### Repo `gmail-mcp` — the repo where the code change happens ### User Story As a platform operator I need gmail-mcp to have a Woodpecker CI pipeline running tests on push and publishing to PyPI on tag So that code quality is enforced and releases are automated via the Forgejo GitOps pipeline ### Acceptance Criteria When I push to main or open a pull request Then Woodpecker runs ruff check, ruff format --check, and pytest When I push a tag matching `v*` Then Woodpecker builds and publishes the package to PyPI (if version not already published) ### Additional Information Part of the batch Phase 2 work covering all 9 library repos. Tracked in pal-e-docs as `issue-pal-e-services-library-pipelines`. PyPI package name: `gmail-mcp-ldraney` Dev deps location: `[dependency-groups].dev` (PEP 735 format) Build system: setuptools Special: `[tool.uv.sources]` references `../gmail-sdk` — local dev convenience, not touched. Special: test step uses `pip install -e . ruff pytest` instead of `pip install -e ".[dev]" ruff` because deps are in `[dependency-groups]` not `[project.optional-dependencies]`. ### Checklist - [ ] `.woodpecker.yaml` added with test + publish steps - [ ] `ruff>=0.4.0` added to `[dependency-groups].dev` - [ ] PR opened and merged ### Related - `issue-pal-e-services-library-pipelines` — parent tracking issue - `plan-2026-02-25-mcp-gateway-migration` — parent plan - `project-pal-e` — parent project
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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
forgejo_admin/gmail-mcp#1
No description provided.