Files
xkater/.woodpecker.yaml
Konstantin 5e610a3980
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Изменение .woodpecker.yaml 12
2026-04-12 20:49:19 +07:00

71 lines
1.9 KiB
YAML

# .woodpecker.yaml
steps:
# Шаг 1: Сборка ассетов темы
- name: build-assets
image: node:20-alpine
commands:
- cd wp-content/themes/xkater
- if [ -f package.json ]; then npm ci && npm run build; fi
when:
branch: main
# Шаг 2: Деплой на боевой сервер
- name: deploy-production
image: alpine:latest
environment:
SSH_KEY:
from_secret: PROD_SSH_KEY
SSH_USER:
from_secret: PROD_SSH_USER
SSH_HOST:
from_secret: PROD_SSH_HOST
REMOTE_PATH:
from_secret: REMOTE_PATH
commands:
# Устанавливаем rsync и openssh
- apk add --no-cache rsync openssh-client
# Настраиваем SSH-ключ
- mkdir -p ~/.ssh
- echo "$SSH_KEY" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh-keyscan -H "$SSH_HOST" >> ~/.ssh/known_hosts 2>/dev/null
# Запускаем rsync
- |
rsync -az \
--exclude=uploads/ \
--exclude=plugins/akismet/ \
--exclude=plugins/index.php \
--exclude=.git/ \
--exclude=node_modules/ \
--exclude=.DS_Store \
--exclude=mu-plugins/local-dev-performance.php \
-e "ssh -p 22 -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no" \
./wp-content/ \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/wp-content/"
when:
branch: main
# Шаг 3: Очистка кэша на сервере
- name: flush-cache
image: appleboy/drone-ssh
settings:
host:
from_secret: PROD_SSH_HOST
username:
from_secret: PROD_SSH_USER
key:
from_secret: PROD_SSH_KEY
envs:
- REMOTE_PATH
script:
- cd $REMOTE_PATH
- if command -v wp > /dev/null 2>&1; then wp cache flush; fi
- touch wp-config.php
environment:
REMOTE_PATH:
from_secret: REMOTE_PATH
when:
branch: main