--- # deploy ansible/roles/common code deployment: stage: "deployment" image: name: "cr.simoncor.net/siempie/ansible-deployment:latest" entrypoint: ["/bin/sh", "-c"] rules: - if: '$CI_PIPELINE_SOURCE == "push"' - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: "never" # prepare ssh before_script: # prepare ssh - | # prepare ssh mkdir -p ~/.ssh chmod 700 ~/.ssh echo "$SSH_CONFIG" > ~/.ssh/config echo "$SSH_DEPLOYMENT_KEY" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 # deployment commands script: - | # git cleanup ssh $SSH_DEPLOYMENT_USER@$ANSIBLE_SERVER "sudo /usr/bin/git -C /etc/ansible/roles/common reset --hard HEAD --quiet" ssh $SSH_DEPLOYMENT_USER@$ANSIBLE_SERVER "sudo /usr/bin/git -C /etc/ansible/roles/common clean -fx" ssh $SSH_DEPLOYMENT_USER@$ANSIBLE_SERVER "sudo /usr/bin/git -C /etc/ansible/roles/common clean -fd" - | # print deployment details ssh $SSH_DEPLOYMENT_USER@$ANSIBLE_SERVER "echo Deploying commit id $CI_COMMIT_SHORT_SHA with message: $CI_COMMIT_MESSAGE" - | # download deployment ssh $SSH_DEPLOYMENT_USER@$ANSIBLE_SERVER "sudo /usr/bin/git -C /etc/ansible/roles/common fetch --quiet" ssh $SSH_DEPLOYMENT_USER@$ANSIBLE_SERVER "sudo /usr/bin/git -C /etc/ansible/roles/common checkout $CI_COMMIT_SHORT_SHA --quiet"