cycles/.gitlab-ci.yml

54 lines
1.4 KiB
YAML

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