mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-16 19:23:27 +00:00
92 lines
2.3 KiB
YAML
92 lines
2.3 KiB
YAML
stages:
|
|
- test
|
|
- deploy
|
|
|
|
# Installs and launch unittests
|
|
unittests:
|
|
stage: test
|
|
script:
|
|
# Install dependencies
|
|
- apt-get update
|
|
- apt-get install -y gettext libxapian-dev libgraphviz-dev
|
|
- pip install poetry
|
|
# Check pyproject.toml validity
|
|
- poetry check
|
|
# Install project
|
|
- poetry install -E testing -E docs
|
|
# Setup xapian index
|
|
- mkdir -p /dev/shm/search_indexes
|
|
- ln -s /dev/shm/search_indexes sith/search_indexes
|
|
# Setup project
|
|
- poetry run ./manage.py compilemessages
|
|
# Run tests and export report
|
|
- poetry run coverage run ./manage.py test
|
|
- poetry run coverage xml
|
|
- poetry run coverage report
|
|
# Build documentation
|
|
- cd doc
|
|
- poetry run make html
|
|
variables:
|
|
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip_tests"
|
|
cache:
|
|
paths:
|
|
- .cache/pip_tests
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- coverage.xml
|
|
- coverage_report/
|
|
- docs/_build
|
|
reports:
|
|
junit: coverage.xml
|
|
|
|
# Check black
|
|
black:
|
|
stage: test
|
|
script:
|
|
- version=$(cat pyproject.toml | grep --color=never black | grep --color=never -oE '[0-9]([0-9.a-z]+)')
|
|
- pip install black==$version
|
|
- black --check .
|
|
variables:
|
|
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip_black"
|
|
cache:
|
|
paths:
|
|
- .cache/pip_black
|
|
|
|
deploy:
|
|
stage: deploy
|
|
before_script:
|
|
##
|
|
## Install ssh-agent if not already installed, it is required by Docker.
|
|
## (change apt-get to yum if you use an RPM-based image)
|
|
##
|
|
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
|
|
|
|
##
|
|
## Run ssh-agent (inside the build environment)
|
|
##
|
|
- eval $(ssh-agent -s)
|
|
|
|
##
|
|
## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
|
|
## We're using tr to fix line endings which makes ed25519 keys work
|
|
## without extra base64 encoding.
|
|
## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
|
|
##
|
|
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
|
|
|
##
|
|
## Create the SSH directory and give it the right permissions
|
|
##
|
|
- mkdir -p ~/.ssh
|
|
- chmod 700 ~/.ssh
|
|
script:
|
|
- ssh -o StrictHostKeyChecking=accept-new sith@ae-web $SITH_PROD_SCRIPT_PATH
|
|
environment:
|
|
name: prod
|
|
url: https://ae.utbm.fr
|
|
only:
|
|
refs:
|
|
- master
|
|
when: on_success
|