fix: woodpecker pipeline
This commit is contained in:
parent
8a2101120f
commit
0938b7584a
1 changed files with 51 additions and 80 deletions
131
.woodpecker.yml
131
.woodpecker.yml
|
|
@ -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.
|
|
||||||
#
|
|
||||||
# ============================================
|
|
||||||
Loading…
Add table
Reference in a new issue