Изменение .woodpecker.yaml 8
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user