diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cfad0aa..0e70cd6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,28 +22,34 @@ build-site: expire_in: 1 day deploy-site: - image: node:lts stage: deploy only: - main before_script: - - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' + - 'which rsync || ( apk update && apk add rsync )' + - 'which ssh-agent || ( apk update && apk add openssh-client)' - eval $(ssh-agent -s) - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null - mkdir -p ~/.ssh - chmod 700 ~/.ssh + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' >> ~/.ssh/key_firq + - chmod 600 ~/.ssh/key_firq + - echo "Host $DEPLOY_HOST" >> ~/.ssh/config + - echo $'\n\tIdentityFile ~/.ssh/key_firq' >> ~/.ssh/config + - echo $'\n\tStrictHostKeyChecking no\n\tIdentitiesOnly yes\n' >> ~/.ssh/config + - chmod 644 ~/.ssh/config - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts + - echo "SSH setup completed" script: - echo "Getting artifacts" - ls public - echo "Stopping screen session and cleaning" - - ssh $DEPLOY_USER@$DEPLOY_HOST -o StrictHostKeyChecking=no IdentitiesOnly=yes "screen -X -S website-firq-npx kill; rm -r -f public/*;" + - ssh $DEPLOY_USER@$DEPLOY_HOST "screen -X -S website-firq-npx kill; rm -r -f public/*;" - echo "Copying to proxmox machine" - - rsync -e "ssh -o StrictHostKeyChecking=no IdentitiesOnly=yes" -a --progress public/ $DEPLOY_USER@$DEPLOY_HOST:~/public + - rsync -az --stats public $DEPLOY_USER@$DEPLOY_HOST:~/. - echo "Restarting screen session" - - ssh $DEPLOY_USER@$DEPLOY_HOST -o StrictHostKeyChecking=no IdentitiesOnly=yes "screen -S website-firq-npx -dm npx serve public/ -p 9000 -c serve.json" + - ssh $DEPLOY_USER@$DEPLOY_HOST "screen -S website-firq-npx -dm npx serve public/ -p 9000 -c serve.json" - echo "Website is up on https://firq.dev/" success_notification: