image: golang:1.12-alpine stages: - lint - build - deploy before_script: - apk add --no-cache git make rsync openssh-client - mkdir -p /go/src/git.scc.kit.edu/feudal /go/src/_/builds - cp -r $CI_PROJECT_DIR /go/src/git.scc.kit.edu/feudal/feudalClient - ln -s /go/src/git.scc.kit.edu/feudal /go/src/_/builds/feudalClient - make dep lint: stage: lint script: make lint build: stage: build script: - make build artifacts: paths: - feudalClient deploy-dev: stage: deploy only: - dev environment: name: dev dependencies: - build script: - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | ssh-add - - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - rsync -v feudalClient $DEV_USER@$DEV_HOST:bin/feudalClientDev - ssh $DEV_USER@$DEV_HOST -- systemctl --user restart devClient@0 devClient@1 devClient@2 deploy-master: stage: deploy only: - master environment: name: master dependencies: - build script: - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | ssh-add - - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - rsync -v feudalClient $DEV_USER@$DEV_HOST:bin/feudalClient