# .woodpecker.yaml pipeline: # Шаг 1: Сборка ассетов темы build-assets: image: node:20-alpine commands: - cd wp-content/themes/xkater # Проверяем, есть ли package.json (вдруг вы не используете сборщик) - if [ -f package.json ]; then npm ci && npm run build; fi when: branch: main # Шаг 2: Деплой на боевой сервер deploy-production: image: drillster/drone-rsync settings: user: ${PROD_SSH_USER} host: ${PROD_SSH_HOST} key: ${PROD_SSH_KEY} source: ./wp-content/ target: ${REMOTE_PATH}/wp-content/ recursive: true delete: false # ← ВАЖНО: не удалять то, чего нет в репозитории args: > --exclude=uploads/ --exclude=plugins/akismet/ --exclude=plugins/index.php --exclude=.git/ --exclude=node_modules/ --exclude=.DS_Store --exclude=mu-plugins/local-dev-performance.php when: branch: main # Шаг 3: Очистка кэша на сервере flush-cache: image: appleboy/drone-ssh settings: host: ${PROD_SSH_HOST} username: ${PROD_SSH_USER} key: ${PROD_SSH_KEY} script: - cd ${REMOTE_PATH} # Очистка кэша WordPress (если есть WP-CLI) - if command -v wp &> /dev/null; then wp cache flush; fi # Или просто трогаем wp-config.php для сброса кэша опкодов - touch wp-config.php when: branch: main status: success