From fc4eade00047a4e9924e9e211834056fed30f8c7 Mon Sep 17 00:00:00 2001 From: Konstantin Date: Sun, 12 Apr 2026 19:00:39 +0700 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20.woodpecker.yaml=208?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .woodpecker.yaml | 84 +++++++++++++++++++++++++----------------------- 1 file changed, 44 insertions(+), 40 deletions(-) diff --git a/.woodpecker.yaml b/.woodpecker.yaml index c642a31..ea168ae 100644 --- a/.woodpecker.yaml +++ b/.woodpecker.yaml @@ -1,4 +1,7 @@ -# .woodpecker.yaml +when: + branch: main + event: push + steps: - name: debug-secrets image: alpine @@ -8,57 +11,58 @@ steps: MY_USER: from_secret: prod_ssh_user commands: - - echo "HOST is = $MY_HOST" - - echo "USER is = $MY_USER" - - env | grep -i prod || echo "no prod vars found" - when: - branch: main - # Шаг 1: Сборка ассетов темы + - echo "HOST = $MY_HOST" + - echo "USER = $MY_USER" + - 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: drillster/drone-rsync - secrets: - - source: prod_ssh_user - target: RSYNC_USER - - source: prod_ssh_host - target: RSYNC_HOSTS - - source: prod_ssh_key - target: RSYNC_KEY - - source: remote_path - target: REMOTE_PATH - settings: - port: 22 - source: ./wp-content/ - recursive: true - delete: false - args: '--exclude=uploads/ --exclude=plugins/akismet/ --exclude=.git/ --exclude=node_modules/ --exclude=.DS_Store' - when: - branch: main + image: alpine + environment: + SSH_KEY: + from_secret: prod_ssh_key + SSH_HOST: + from_secret: prod_ssh_host + SSH_USER: + from_secret: prod_ssh_user + REMOTE_PATH: + from_secret: remote_path + commands: + - apk add --no-cache rsync openssh-client + - mkdir -p ~/.ssh + - echo "$SSH_KEY" > ~/.ssh/id_rsa + - chmod 600 ~/.ssh/id_rsa + - ssh-keyscan -H $SSH_HOST >> ~/.ssh/known_hosts + - | + rsync -avz \ + --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 -i ~/.ssh/id_rsa -p 22 -o StrictHostKeyChecking=no" \ + ./wp-content/ \ + $SSH_USER@$SSH_HOST:$REMOTE_PATH/wp-content/ - # Шаг 3: Очистка кэша - name: flush-cache image: appleboy/drone-ssh - secrets: - - source: prod_ssh_host - target: SSH_HOST - - source: prod_ssh_user - target: SSH_USERNAME - - source: prod_ssh_key - target: SSH_KEY - - source: remote_path - target: REMOTE_PATH + environment: + SSH_HOST: + from_secret: prod_ssh_host + SSH_USERNAME: + from_secret: prod_ssh_user + SSH_KEY: + from_secret: prod_ssh_key + REMOTE_PATH: + from_secret: remote_path settings: script: - cd $REMOTE_PATH - if command -v wp > /dev/null 2>&1; then wp cache flush; fi - touch wp-config.php - when: - branch: main