stages: - build - docker - deploy - ops Build: stage: build image: mcr.microsoft.com/dotnet/core/sdk:5.0-focal artifacts: expire_in: 1h paths: - app script: - dotnet restore - dotnet test Tests - dotnet publish --version-suffix ${CI_COMMIT_SHA:0:8} -r linux-x64 -c Release -o ./app ./Geekbot.net/ Package: stage: docker image: docker # only: # - master services: - docker:stable-dind variables: IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t $IMAGE_TAG . - docker push $IMAGE_TAG Deploy: stage: deploy image: runebaas/rsync-ssh-git only: - master 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/* geekbot@$DEPIP:$DEPPATH - ssh -p 65432 geekbot@$DEPIP "sudo systemctl restart geekbot.service" Sentry: stage: ops image: getsentry/sentry-cli allow_failure: true only: - master script: - sentry-cli releases new -p geekbot 4.2.0-${CI_COMMIT_SHA:0:8} - sentry-cli releases set-commits --auto 4.2.0-${CI_COMMIT_SHA:0:8} - sentry-cli releases deploys 4.2.0-${CI_COMMIT_SHA:0:8} new -e Production Github Mirror: stage: ops image: runebaas/rsync-ssh-git only: - master script: - git push https://runebaas:$TOKEN@github.com/pizzaandcoffee/Geekbot.net.git origin/master:master -f