Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- image: node:latest
- stages:
- - build
- - test
- - deploy
- cache:
- paths:
- - node_modules/
- - .next/
- install_dependencies:
- stage: build
- script:
- - npm install
- - npm run build
- artifacts:
- paths:
- - node_modules/
- - .next/
- test-build:
- stage: test
- script:
- - npm run test
- deploy_production:
- stage: deploy
- only:
- - master
- before_script:
- - "which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )"
- - mkdir -p ~/.ssh
- - eval $(ssh-agent -s)
- - '[[ -f /.dockerenv ]] && echo -e "Host *ntStrictHostKeyChecking nonn" > ~/.ssh/config'
- - ssh-add <(echo "$SSH_PRIVATE_KEY")
- - apt-get update -y
- - apt-get -y install rsync
- script:
- - ssh -p22 dev@example.com "mkdir -p /var/www/example.com/index_tmp"
- - rsync -rav -e ssh --exclude='.git/' --exclude='.gitlab-ci.yml' --delete-excluded ./ dev@example.com:/var/www/example.com/index_tmp
- - ssh -p22 dev@example.com "mv /var/www/example.com/index /var/www/example.com/index_old && mv /var/www/example.com/index_tmp /var/www/example.com/index"
- - ssh -p22 dev@example.com "rm -rf /var/www/example.com/index_old"
- - ssh -p22 dev@example.com "pm2 restart landing-page"
- [... rsync output ...]
- sent 193,022,347 bytes received 550,996 bytes 9,003,411.30 bytes/sec
- total size is 191,108,661 speedup is 0.99
- $ ssh -p22 dev@example.com "mv /var/www/example.com/index /var/www/example.com/index_old && mv /var/www/example.com/index_tmp /var/www/example.com/index"
- $ ssh -p22 dev@example.com "rm -rf /var/www/example.com/index_old"
- $ ssh -p22 dev@example.com "pm2 restart landing-page"
- bash: pm2: command not found
- ERROR: Job failed: exit code 1
- dev@example.com:~$ pm2 restart landing-page
- Use --update-env to update environment variables
- [PM2] Applying action restartProcessId on app [landing-page](ids: 0)
- [PM2] [landing-page](0) ✓
- ┌──────────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬──────────┬──────┬──────────┐
- │ App name │ id │ version │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
- ├──────────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼──────────┼──────┼──────────┤
- │ landing-page │ 0 │ 0.33.11 │ fork │ 18174 │ online │ 2 │ 0s │ 0% │ 7.6 MB │ dev │ disabled │
- └──────────────┴────┴─────────┴──────┴───────┴────────┴─────────┴────────┴─────┴──────────┴──────┴──────────┘
- Use `pm2 show <id|name>` to get more details about an app
- whereis pm2
- # Output something like /usr/bin/pm2
- script:
- - ...
- - ssh -p22 dev@example.com "/usr/bin/pm2 restart landing-page"
Add Comment
Please, Sign In to add comment