image: 'rust:latest'
stages:
- test
- build
- deploy
variables:
CARGO_HOME: $CI_PROJECT_DIR/cargo
APT_CACHE_DIR: $CI_PROJECT_DIR/apt
CACHE_COMPRESSION_LEVEL: 0
test:
stage: test
script:
- rustc --version
- cargo --version
- make stricttest
- rustup component add clippy
- make clippy
build:
stage: build
script:
- make dynrelease
- make doc
- 'which ssh-agent || ( apt-get install -qq openssh-client )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 -d)
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- ssh medald@jim.test.bwinf.de "sudo /bin/systemctl stop medal && sudo /bin/systemctl stop medalp && sudo /bin/systemctl stop medal-nachtermin"
- "scp target/release/medal medald@jim.test.bwinf.de:medal/"
- "scp -r migrations static templates export target/doc medald@jim.test.bwinf.de:medal/"
- "scp -r tasks/jwinf/wrapper.html medald@jim.test.bwinf.de:medal/tasks/jwinf/"
- "scp -r tasks/jwinf/pythonwrapper.html medald@jim.test.bwinf.de:medal/tasks/jwinf/"
- ssh medald@jim.test.bwinf.de "sudo /bin/systemctl start medal && sudo /bin/systemctl start medalp && sudo /bin/systemctl start medal-nachtermin"
only:
- master
- deploy
deploy:
stage: deploy
script:
- 'which ssh-agent || ( apt-get install -qq openssh-client )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_DEPLOY_KEY" | base64 -d)
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- ssh medald@jwinf.de "sudo /bin/systemctl stop medal && sudo /bin/systemctl stop medal1"
- "scp target/release/medal medald@jwinf.de:medal/"
- "scp -r migrations static templates export target/doc medald@jwinf.de:medal/"
- "scp -r tasks/jwinf/wrapper.html medald@jwinf.de:medal/tasks/jwinf/"
- "scp -r tasks/jwinf/pythonwrapper.html medald@jwinf.de:medal/tasks/jwinf/"
- ssh medald@jwinf.de "sudo /bin/systemctl start medal && sudo /bin/systemctl start medal1"
only:
- deploy
cache:
paths:
- apt/
- cargo/
- target/