Hi!
Final stage of my CD pipline is deploy to dev server. Now it is done by copying files over ssh. Overall size of files is approximately 45 Mb, ~ 2.8k files. When I copy thne from my computer (50Mbps internet connetction) it takes about 2 minutes to copy them all. But when they copied from gitlab.com runner it takes more than 1h and I get timeout error. Here is my .gitlab-ci.yml:
stages:
- deploy
.deploy_template: &deploy_tpl
stage: deploy
allow_failure: false
.dev_deploy_template: &dev_deploy_tpl
<<: *deploy_tpl
variables:
DEPLOY_HOST: myhost
DEPLOY_USER: myuser
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$DEPLOY_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan $DEPLOY_HOST >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
only:
- develop
api to dev:
<<: *dev_deploy_tpl
image: php:7.1
environment: api dev
cache:
untracked: true
paths:
- api/vendor
- ~/.composer
script:
- apt-get install -y pkg-config git unzip
- pecl install mongodb
- docker-php-ext-enable mongodb
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- php composer-setup.php --install-dir=/usr/bin --filename=composer
- rm -f ./composer-setup.php
- chmod +x /usr/bin/composer
- cd api/
- composer install
- ssh $DEPLOY_USER@$DEPLOY_HOST -C "mkdir /var/www/api/$CI_COMMIT_SHA"
- scp -r -C ./* $DEPLOY_USER@$DEPLOY_HOST:/var/www/api/$CI_COMMIT_SHA
- ssh $DEPLOY_USER@$DEPLOY_HOST -C "ln -s /var/www/shared/.env /var/www/api/$CI_COMMIT_SHA/.env"
- ssh $DEPLOY_USER@$DEPLOY_HOST -C "ln -s /var/www/shared/runtime /var/www/api/$CI_COMMIT_SHA/runtime"
- ssh $DEPLOY_USER@$DEPLOY_HOST -C "unlink /var/www/api/current && ln -s /var/www/api/$CI_COMMIT_SHA /var/www/api/current"
- ssh $DEPLOY_USER@$DEPLOY_HOST -C "/var/www/api/current/vendor/bin/phinx migrate"
front to dev:
<<: *dev_deploy_tpl
image: node:10
environment: front dev
cache:
untracked: true
paths:
- app/node_modules
- ~/.node-gyp
- ~/.npm
script:
- cd app/
- npm install --no-audit
- npm run build
- ssh $DEPLOY_USER@$DEPLOY_HOST -C "mkdir /var/www/html/$CI_COMMIT_SHA"
- scp -r -C ./* $DEPLOY_USER@$DEPLOY_HOST:/var/www/html/$CI_COMMIT_SHA
- ssh $DEPLOY_USER@$DEPLOY_HOST -C "unlink /var/www/html/current && ln -s /var/www/html/$CI_COMMIT_SHA /var/www/html/current"
chat server to dev:
<<: *dev_deploy_tpl
image: node:10
environment: chat dev
cache:
untracked: true
paths:
- chat-server/node_modules
- ~/.node-gyp
- ~/.npm
script:
- cd chat-server/
- npm install --no-audit
- ssh $DEPLOY_USER@$DEPLOY_HOST -C "rm -rf /opt/chat-server/*"
- scp -r -C ./* $DEPLOY_USER@$DEPLOY_HOST:/opt/chat-server/
- ssh $DEPLOY_USER@$DEPLOY_HOST -C "rm -f /opt/chat-server/server.json && ln -s /opt/shared/server.json /opt/chat-server/server.json 2>&1 > /dev/null"