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:
parent
2357722e80
commit
c7c3331d30
9 changed files with 190 additions and 448 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
```
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue