Migrate CI from Drone to Woodpecker

Replace .drone.yml with .woodpecker/ pipeline configs (frontend.yml, api.yml).
Convert Drone env vars to Woodpecker equivalents (CI_PIPELINE_NUMBER, CI_COMMIT_SHA),
use woodpeckerci/plugin-git for clone with retry, woodpeckerci/plugin-slack for
notifications, and plugins/docker for image builds. Update all docs and skills.
This commit is contained in:
Viktor Barzin 2026-02-23 22:00:09 +00:00
parent 2357722e80
commit c7c3331d30
No known key found for this signature in database
GPG key ID: 0EB088298288D958
9 changed files with 190 additions and 448 deletions

View file

@ -51,7 +51,7 @@ Minimize Docker build times and production image sizes for both the backend (Pyt
- Add non-root nginx user.
- Add `HEALTHCHECK`.
### 4. CI Pipeline (Drone)
### 4. CI Pipeline (Woodpecker)
- Enable BuildKit in the API pipeline (`DOCKER_BUILDKIT=1` in `plugins/docker` settings).
- Frontend pipeline (Kaniko) already has good caching; no changes needed.

View file

@ -767,17 +767,17 @@ git commit -m "Expand frontend .dockerignore to exclude build artifacts"
---
### Task 14: Enable BuildKit in Drone CI API pipeline
### Task 14: Enable BuildKit in Woodpecker CI API pipeline
**Files:**
- Modify: `.drone.yml`
- Modify: `.woodpecker/api.yml`
**Step 1: Add DOCKER_BUILDKIT environment to API build step**
In the `.drone.yml` file, under the `api` pipeline's "Build and test API image" step, add the `build_args` setting:
In the `.woodpecker/api.yml` file, under the "build-api-image" step, add the `build_args` setting:
```yaml
- name: Build and test API image
- name: build-api-image
image: plugins/docker
environment:
DOCKER_BUILDKIT: 1
@ -794,14 +794,14 @@ In the `.drone.yml` file, under the `api` pipeline's "Build and test API image"
tags:
- latest
- builder
- "${DRONE_BUILD_NUMBER}"
- "${CI_PIPELINE_NUMBER}"
```
**Step 2: Commit**
```bash
git add .drone.yml
git commit -m "Enable BuildKit in Drone API pipeline"
git add .woodpecker/api.yml
git commit -m "Enable BuildKit in Woodpecker API pipeline"
```
---

View file

@ -4,7 +4,7 @@ Date: 2026-02-21
## Problem
The Drone CI pipeline is slow. Both the frontend and backend pipelines install dependencies multiple times per build and pull Docker cache layers from Docker Hub instead of the local registry at `10.0.20.10:5000`.
The Woodpecker CI pipeline is slow. Both the frontend and backend pipelines install dependencies multiple times per build and pull Docker cache layers from Docker Hub instead of the local registry at `10.0.20.10:5000`.
## Root Causes
@ -23,7 +23,7 @@ Switch all `cache_from` and `cache_repo` references from Docker Hub to `10.0.20.
### 2. Merge Tests into Dockerfile (Frontend)
Replace the separate "Run frontend tests" Drone step + Kaniko build with a single multi-stage Dockerfile build:
Replace the separate "Run frontend tests" Woodpecker step + Docker build with a single multi-stage Dockerfile build:
- `deps` stage: `npm ci` (cached if `package-lock.json` unchanged)
- `test` stage: runs `vitest run` (fails the build if tests fail)