Add Woodpecker CI/CD pipeline / changed .gitignore #1

Merged
ElZeckos merged 3 commits from ft/ci-and-gitignore into main 2026-05-17 12:31:29 +02:00
Collaborator
  • Add CI pipeline with fmt, lint, and build-test steps
  • Add Docker release workflow with multi-arch support
  • Add PR review bot for automated code review
  • Add release bot for automated releases
  • Enhance .gitignore with comprehensive patterns
- Add CI pipeline with fmt, lint, and build-test steps - Add Docker release workflow with multi-arch support - Add PR review bot for automated code review - Add release bot for automated releases - Enhance .gitignore with comprehensive patterns
phil self-assigned this 2026-05-17 10:11:07 +02:00
Add Woodpecker CI pipeline configuration.
All checks were successful
ci/woodpecker/pr/0-check Pipeline was successful
ci/woodpecker/pr/10-pr-review Pipeline was successful
73f8c9db2e
phil requested review from ElZeckos 2026-05-17 10:11:13 +02:00
fix/yaml Added newline at EOF for YAML spec.
All checks were successful
ci/woodpecker/pr/0-check Pipeline was successful
ci/woodpecker/pr/10-pr-review Pipeline was successful
3cd5078583
Collaborator

Summary: Adds a comprehensive Woodpecker CI/CD pipeline with code checking, Docker builds, AI PR reviews, and release automation, plus an expanded .gitignore for Go project files.

Issues:

🔴 HIGH .woodpecker/0-check.yml:11 - Formatter check always passes regardless of result

The command gofmt -l . | grep -q . && exit 1 || true will always exit 0 because the || true catches the exit 1 from the grep when no files are found, making formatting failures silently pass.

This defeats the purpose of the formatting check step.

⚠️ MEDIUM .woodpecker/99-release-bot.yml:1 - Release pipeline lacks dependency on check pipeline

The release workflow runs without depends_on: - 0-check, meaning releases can be created even if code doesn't pass format/lint/build checks. This could result in broken releases.

💡 LOW .woodpecker/99-release-bot.yml:10 - YAML structure ordering

The when: block appears after steps:, which while technically valid YAML, Woodpecker conventionally places when before steps for consistency with other pipeline files.

Recommendations:

💡 .woodpecker/0-check.yml:11 - Fix formatter check logic

Step 1: Change the fmt command to properly detect and fail on formatting issues:

- gofmt -l .

Step 2: Let the exit code propagate naturally. If gofmt -l finds unformatted files, it outputs them and exits 1, which will fail the pipeline. If all files are formatted, it outputs nothing and exits 0.

💡 .woodpecker/99-release-bot.yml - Add dependency and reorder

Step 1: Add depends_on: - 0-check after the when: block.

Step 2: Move when: block to the top of the file for consistency.

Score (Code Quality): 75

Result: ⚠️ Changes Requested

**Summary:** Adds a comprehensive Woodpecker CI/CD pipeline with code checking, Docker builds, AI PR reviews, and release automation, plus an expanded .gitignore for Go project files. **Issues:** <details> <summary>🔴 HIGH .woodpecker/0-check.yml:11 - Formatter check always passes regardless of result</summary> > The command `gofmt -l . | grep -q . && exit 1 || true` will always exit 0 because the `|| true` catches the exit 1 from the grep when no files are found, making formatting failures silently pass. > > This defeats the purpose of the formatting check step. </details> <details> <summary>⚠️ MEDIUM .woodpecker/99-release-bot.yml:1 - Release pipeline lacks dependency on check pipeline</summary> > The release workflow runs without `depends_on: - 0-check`, meaning releases can be created even if code doesn't pass format/lint/build checks. This could result in broken releases. </details> <details> <summary>💡 LOW .woodpecker/99-release-bot.yml:10 - YAML structure ordering</summary> > The `when:` block appears after `steps:`, which while technically valid YAML, Woodpecker conventionally places `when` before `steps` for consistency with other pipeline files. </details> **Recommendations:** <details> <summary>💡 .woodpecker/0-check.yml:11 - Fix formatter check logic</summary> > Step 1: Change the fmt command to properly detect and fail on formatting issues: > ``` > - gofmt -l . > ``` > > Step 2: Let the exit code propagate naturally. If `gofmt -l` finds unformatted files, it outputs them and exits 1, which will fail the pipeline. If all files are formatted, it outputs nothing and exits 0. </details> <details> <summary>💡 .woodpecker/99-release-bot.yml - Add dependency and reorder</summary> > Step 1: Add `depends_on: - 0-check` after the `when:` block. > > Step 2: Move `when:` block to the top of the file for consistency. </details> **Score (Code Quality):** 75 **Result:** ⚠️ Changes Requested
ElZeckos deleted branch ft/ci-and-gitignore 2026-05-17 12:31:29 +02:00
Sign in to join this conversation.
No description provided.