stages: - build - test - deploy buiild job: stage: build image: python:3-buster script: - export PYTHONPATH=. - export FLASK_APP=period - apt-get update -qy - apt-get install -y python3-dev python3-pip - pip3 install --upgrade pip - pip3 install --upgrade setuptools - pip3 install Flask gunicorn pytest pytest-cov - pip3 install pendulum test job: stage: test image: python:3-buster script: - export PYTHONPATH=. - export FLASK_APP=period - apt-get update -qy - apt-get install -y python3-dev python3-pip - pip3 install --upgrade pip - pip3 install --upgrade setuptools - pip3 install Flask gunicorn pytest pytest-cov - pip3 install pendulum - pytest tests --cov --cov-report term --cov-report html --junitxml=report.xml artifacts: when: always reports: junit: report.xml deploy-period: stage: deploy environment: production image: debian:buster before_script: - 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )' - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - mkdir -p ~/.ssh - chmod 700 ~/.ssh - ssh-keyscan 192.168.1.19 >> ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts script: - ssh ahosking@192.168.1.19 "cd /home/ahosking/period && git pull origin master && exit" only: - master