fix: woodpecker pipeline

This commit is contained in:
Lasse Rune Hansen 2026-06-07 13:09:44 +02:00
parent 8a2101120f
commit 0938b7584a

View file

@ -1,105 +1,76 @@
pipeline: when:
# Build and test backend - branch: main
build-and-test: event: push
steps:
- name: build-and-test
image: mcr.microsoft.com/dotnet/sdk:9.0 image: mcr.microsoft.com/dotnet/sdk:9.0
commands: commands:
- dotnet restore GermanApp/GermanApp.csproj - dotnet restore GermanApp/GermanApp.csproj
- dotnet build GermanApp/GermanApp.csproj --no-restore --configuration Release - dotnet build GermanApp/GermanApp.csproj --no-restore --configuration Release
- dotnet test Tests/GermanApp.Tests.Unit.csproj --no-build --configuration Release
- dotnet test Tests/GermanApp.Tests.Integration.csproj --no-build --configuration Release
when: when:
branch: - branch:
- main - main
- feature/* - feature/*
- bugfix/* - bugfix/*
- refactor/* - refactor/*
# Build and push backend image - name: build-backend
build-backend: image: woodpeckerci/plugin-docker-buildx
image: plugins/docker privileged: true
settings: settings:
dockerfile: GermanApp/Dockerfile dockerfile: GermanApp/Dockerfile
context: GermanApp context: GermanApp
registry: registry.lrhdev.dk registry: registry.lrhdev.dk
repo: registry.lrhdev.dk/lasserh/deutschlernen-backend repo: registry.lrhdev.dk/lasserh/deutschlernen-backend
username:
from_secret: REGISTRY_USERNAME
password:
from_secret: REGISTRY_PASSWORD
tags: tags:
- latest - latest
- ${CI_COMMIT_SHA:0:8} - ${CI_COMMIT_SHA}
username:
from_secret: docker_username
password:
from_secret: docker_password
when: when:
branch: - branch: main
- main
status:
- success
# Build and push frontend image - name: build-frontend
build-frontend: image: woodpeckerci/plugin-docker-buildx
image: plugins/docker privileged: true
settings: settings:
dockerfile: german-app-frontend/Dockerfile dockerfile: german-app-frontend/Dockerfile
context: german-app-frontend context: german-app-frontend
registry: registry.lrhdev.dk registry: registry.lrhdev.dk
repo: registry.lrhdev.dk/lasserh/deutschlernen-frontend repo: registry.lrhdev.dk/lasserh/deutschlernen-frontend
username:
from_secret: REGISTRY_USERNAME
password:
from_secret: REGISTRY_PASSWORD
tags: tags:
- latest - latest
- ${CI_COMMIT_SHA:0:8} - ${CI_COMMIT_SHA}
username:
from_secret: docker_username
password:
from_secret: docker_password
when: when:
branch: - branch: main
- main
status:
- success
# Deploy to production - name: deploy
deploy: image: appleboy/drone-ssh
image: alpine settings:
commands: host:
- apk add --no-cache openssh-client from_secret: SSH_HOST
- mkdir -p ~/.ssh username: root
- echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa key:
- chmod 600 ~/.ssh/id_rsa from_secret: SSH_PRIVATE_KEY
- ssh-keyscan deutsch.lrhdev.dk >> ~/.ssh/known_hosts script:
# Pull new images and restart containers - docker login registry.lrhdev.dk -u $REGISTRY_USERNAME -p $REGISTRY_PASSWORD
- ssh ci-deploy@deutsch.lrhdev.dk "cd /opt/deutschlernen && docker-compose pull && docker-compose up -d" - docker pull registry.lrhdev.dk/lasserh/deutschlernen-backend:latest
# Reload nginx to pick up any new configurations - docker pull registry.lrhdev.dk/lasserh/deutschlernen-frontend:latest
- ssh ci-deploy@deutsch.lrhdev.dk "nginx -t && nginx -s reload" - cd /opt/deutschlernen
secrets: - docker compose down
- SSH_PRIVATE_KEY - docker compose up -d
- docker image prune -f
environment:
REGISTRY_USERNAME:
from_secret: REGISTRY_USERNAME
REGISTRY_PASSWORD:
from_secret: REGISTRY_PASSWORD
when: when:
branch: - branch: main
- main
status:
- success
# ============================================
# WOODPECKER CONFIGURATION NOTES
# ============================================
#
# Required Secrets (configure in Woodpecker UI):
# --------------------------------------------
# 1. docker_username - Your registry username for registry.lrhdev.dk
# 2. docker_password - Your registry password for registry.lrhdev.dk
# 3. SSH_PRIVATE_KEY - SSH private key for deploying to deutsch.lrhdev.dk
#
# Registry Configuration:
# -----------------------
# - Registry URL: registry.lrhdev.dk
# - Repository: registry.lrhdev.dk/lasserh/deutschlernen
# - Images will be tagged as: latest and <short-commit-hash>
#
# Deployment:
# ----------
# The deploy stage connects via SSH to deutsch.lrhdev.dk and:
# 1. Pulls the latest backend image
# 2. Restarts the backend container
#
# Customize the deploy command to match your docker-compose setup.
# If you use a different path or service name, update the ssh command.
#
# ============================================