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 # Setup SSH deploy keys - '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' # Stop server and upload - 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: # Setup SSH deploy keys - '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' # Stop server and upload - ssh medald@jwinf.de "sudo /bin/systemctl stop medal && sudo /bin/systemctl stop medal1 && sudo /bin/systemctl stop medal2 && sudo /bin/systemctl stop medal3" - "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 && sudo /bin/systemctl start medal2 && sudo /bin/systemctl start medal3" only: - deploy cache: paths: - apt/ - cargo/ - target/