Add Woodpecker CI pipeline with semantic versioning

Pipeline stages:
- restore: Restore NuGet dependencies
- build: Build in Release mode
- test: Run test suite
- version: Determine version from git tags
- package-nuget: Create NuGet package (main branch)
- package-docker: Build multi-arch Docker image (tags only)
- release: Create GitHub release with artifacts (tags only)

Versioning:
- Tags (v1.0.0) → version 1.0.0
- Main branch → version X.Y.Z-dev.main.abc1234
- PRs → version X.Y.Z-dev.branch.abc1234

Docker image published to ghcr.io/barryw/paperlessmcp

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Barry Walker
2026-01-13 14:15:56 -05:00
parent 983c5c704c
commit e82c0cdb94
3 changed files with 139 additions and 5 deletions
+19
View File
@@ -139,6 +139,25 @@ dotnet build # Build
dotnet test # Run tests
```
### CI/CD
This project uses [Woodpecker CI](https://woodpecker-ci.org/) for continuous integration:
| Event | Actions |
|-------|---------|
| **Push/PR** | Build → Test |
| **Push to main** | Build → Test → Package NuGet |
| **Tag (vX.Y.Z)** | Build → Test → Package → Docker → GitHub Release |
**Versioning:** Semantic versioning via git tags. Create a release with:
```bash
git tag v1.0.0
git push origin v1.0.0
```
**Docker Images:** `ghcr.io/barryw/paperlessmcp:latest`
### Project Structure
```