wip
This commit is contained in:
72
.woodpecker.yml
Normal file
72
.woodpecker.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
pipeline:
|
||||
# Test stage
|
||||
test:
|
||||
image: node:22-alpine
|
||||
commands:
|
||||
- npm ci
|
||||
- npm run test:smoke
|
||||
- npm run test:links
|
||||
|
||||
# Build stage
|
||||
build:
|
||||
image: node:22-alpine
|
||||
commands:
|
||||
- npm ci
|
||||
- npm run build
|
||||
when:
|
||||
branch: [main, master]
|
||||
event: [push, tag]
|
||||
|
||||
# Build and push Docker image
|
||||
docker-build:
|
||||
image: docker:24-dind
|
||||
environment:
|
||||
- DOCKER_HOST=tcp://docker:2375
|
||||
commands:
|
||||
- docker build -t mintel-website:${CI_COMMIT_SHA} -f docker/Dockerfile .
|
||||
- docker tag mintel-website:${CI_COMMIT_SHA} ${REGISTRY_URL}:latest
|
||||
when:
|
||||
branch: [main, master]
|
||||
event: [push, tag]
|
||||
|
||||
# Deploy to Hetzner
|
||||
deploy:
|
||||
image: appleboy/ssh-action
|
||||
environment:
|
||||
- SSH_KEY=${SSH_PRIVATE_KEY}
|
||||
commands:
|
||||
- echo "$SSH_PRIVATE_KEY" > /tmp/deploy_key
|
||||
- chmod 600 /tmp/deploy_key
|
||||
- ssh -o StrictHostKeyChecking=no -i /tmp/deploy_key ${DEPLOY_USER}@${DEPLOY_HOST} "
|
||||
cd /opt/mintel &&
|
||||
echo '${REGISTRY_URL}:latest' > .env.deploy &&
|
||||
docker-compose pull &&
|
||||
docker-compose up -d --remove-orphans &&
|
||||
docker system prune -f"
|
||||
when:
|
||||
branch: [main, master]
|
||||
event: [push]
|
||||
|
||||
# Services
|
||||
services:
|
||||
docker:
|
||||
image: docker:24-dind
|
||||
privileged: true
|
||||
environment:
|
||||
- DOCKER_TLS_CERTDIR=/certs
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
# Notifications
|
||||
notify:
|
||||
- name: slack
|
||||
image: plugins/slack
|
||||
settings:
|
||||
webhook: ${SLACK_WEBHOOK}
|
||||
channel: deployments
|
||||
template: |
|
||||
🚀 Mintel Blog Deployed!
|
||||
Branch: {{CI_COMMIT_BRANCH}}
|
||||
Commit: {{CI_COMMIT_SHA}}
|
||||
Author: {{CI_COMMIT_AUTHOR}}
|
||||
URL: https://mintel.me
|
||||
Reference in New Issue
Block a user