From 845814c14be06ee0beccf0c476b99a6dccb5392b Mon Sep 17 00:00:00 2001 From: laruevin Date: Wed, 11 Feb 2026 12:47:50 +0700 Subject: [PATCH] fix: use local deploy instead of SSH (runner is on prod server) The GitLab Runner runs on the same VPS as the production app, so SSH-ing from the server to itself is unnecessary. This removes the SSH key dependency and simplifies the deploy stage. Co-Authored-By: Claude Opus 4.6 --- .gitlab-ci.yml | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 56a4221..7ac2290 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,32 +34,25 @@ build: - dist-bot/ expire_in: 1 hour -# Deploy — только при push в main +# Deploy — только при push в main (runner на том же сервере — деплой локальный) deploy_production: stage: deploy dependencies: - build - before_script: - - eval $(ssh-agent -s) - - echo "$SSH_PRIVATE_KEY" | base64 -d | ssh-add - - - mkdir -p ~/.ssh - - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts - - chmod 644 ~/.ssh/known_hosts script: - - tar -czf deploy.tar.gz dist/ dist-server/ dist-bot/ package.json package-lock.json ecosystem.config.cjs deploy/nginx-guidly.conf - - scp deploy.tar.gz "${DEPLOY_USER}@${DEPLOY_HOST}:/tmp/" - - | - ssh "${DEPLOY_USER}@${DEPLOY_HOST}" << 'ENDSSH' - set -e - cd /root/guidly - tar -xzf /tmp/deploy.tar.gz - rm /tmp/deploy.tar.gz - npm install --omit=dev - pm2 delete guidly-server 2>/dev/null || true - pm2 start ecosystem.config.cjs - pm2 save - echo "=== Deploy complete ===" - ENDSSH + - DEPLOY_DIR=/root/guidly + - mkdir -p "$DEPLOY_DIR"/{dist,dist-server,dist-bot,deploy} + - rsync -a --delete dist/ "$DEPLOY_DIR/dist/" + - rsync -a --delete dist-server/ "$DEPLOY_DIR/dist-server/" + - rsync -a --delete dist-bot/ "$DEPLOY_DIR/dist-bot/" + - cp -f package.json package-lock.json ecosystem.config.cjs "$DEPLOY_DIR/" + - cp -f deploy/nginx-guidly.conf "$DEPLOY_DIR/deploy/" 2>/dev/null || true + - cd "$DEPLOY_DIR" + - npm install --omit=dev + - pm2 delete guidly-server 2>/dev/null || true + - pm2 start ecosystem.config.cjs + - pm2 save + - echo "=== Deploy complete ===" rules: - if: $CI_COMMIT_BRANCH == "main" environment: