stages: - build - deploy before_script: - set -e - set -u - set -o pipefail build: stage: build image: microsoft/dotnet:2.1.300-sdk-stretch variables: NUGET_PACKAGES: "${CI_PROJECT_DIR}/.nugetcache" cache: paths: - .nugetcache artifacts: expire_in: 1h paths: - Geekbot.net/Binaries/ script: - dotnet restore - dotnet test Tests - dotnet publish --version-suffix ${CI_COMMIT_SHA:0:8} --configuration Release -o Binaries ./ deploy: stage: deploy image: instrumentisto/rsync-ssh only: - master dependencies: - build environment: name: Production url: https://discordapp.com/oauth2/authorize?client_id=171249478546882561&scope=bot&permissions=1416834054 before_script: - eval $(ssh-agent -s) - mkdir -p ~/.ssh - '[[ -f /.dockerenv ]] && echo -e "Host *\n StrictHostKeyChecking no" > ~/.ssh/config' - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null - chmod 700 ~/.ssh script: - rsync -rav -e "ssh -p 65432" ./Geekbot.net/Binaries/* www-data@31.220.42.224:$DEPPATH - ssh -p 65432 www-data@31.220.42.224 "sudo systemctl restart geekbot.service" mirror: stage: deploy image: bravissimolabs/alpine-git:latest only: - master script: - git push https://runebaas:$TOKEN@github.com/pizzaandcoffee/Geekbot.net.git origin/master:master -f