64 lines
2.2 KiB
YAML
64 lines
2.2 KiB
YAML
---
|
|
# Woodpecker CI pipeline voor trading_bot
|
|
# Triggered bij elke push naar main
|
|
# Bouwt backend + frontend images en pusht naar lokale registry
|
|
|
|
when:
|
|
branch: main
|
|
event: [push, manual]
|
|
|
|
steps:
|
|
# ── Stap 1: Backend image bouwen ─────────────────────────────────────────────
|
|
- name: build-backend
|
|
image: woodpeckerci/plugin-docker-buildx
|
|
settings:
|
|
repo: https://registry.smulders.online/trading-bot-backend
|
|
registry: https://registry.smulders.online
|
|
username:
|
|
from_secret: registry_user
|
|
password:
|
|
from_secret: registry_pass
|
|
dockerfile: backend/Dockerfile
|
|
context: backend
|
|
tags:
|
|
- latest
|
|
- ${CI_COMMIT_SHA:0:8}
|
|
# Geen TLS verificatie nodig want Traefik regelt het certificaat
|
|
insecure: false
|
|
|
|
# ── Stap 2: Frontend image bouwen ────────────────────────────────────────────
|
|
- name: build-frontend
|
|
image: woodpeckerci/plugin-docker-buildx
|
|
settings:
|
|
repo: registry.smulders.online/trading-bot-frontend
|
|
registry: registry.smulders.online
|
|
username:
|
|
from_secret: registry_user
|
|
password:
|
|
from_secret: registry_pass
|
|
dockerfile: frontend/Dockerfile
|
|
context: frontend
|
|
tags:
|
|
- latest
|
|
- ${CI_COMMIT_SHA:0:8}
|
|
insecure: false
|
|
|
|
# ── Stap 3: Portainer stack herdeploy triggeren ───────────────────────────────
|
|
- name: deploy
|
|
image: curlimages/curl:latest
|
|
environment:
|
|
PORTAINER_TOKEN:
|
|
from_secret: PORTAINER_TOKEN
|
|
PORTAINER_URL:
|
|
from_secret: PORTAINER_URL
|
|
PORTAINER_STACK_ID:
|
|
from_secret: PORTAINER_STACK_ID
|
|
commands:
|
|
- |
|
|
curl -s -X POST \
|
|
"$PORTAINER_URL/api/stacks/$PORTAINER_STACK_ID/git/redeploy" \
|
|
-H "X-API-Key: $PORTAINER_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"pullImage": true}' \
|
|
| grep -q '"Id"' && echo "✓ Deploy getriggerd" || echo "✗ Deploy mislukt"
|