44 lines
1.0 KiB
YAML
44 lines
1.0 KiB
YAML
image: python:latest
|
|
|
|
workflow:
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
|
|
stages:
|
|
- test
|
|
- deploy
|
|
|
|
# Move pip's and poetry's caches to somewhere gitlab can cache
|
|
# https://pip.pypa.io/en/stable/topics/configuration/#environment-variables
|
|
# https://python-poetry.org/docs/configuration/#using-environment-variables
|
|
variables:
|
|
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
|
|
POETRY_VIRTUALENVS_PATH: "$CI_PROJECT_DIR/.cache/poetry"
|
|
|
|
cache:
|
|
paths:
|
|
- .cache/pip
|
|
- .cache/poetry
|
|
- .mypy_cache
|
|
|
|
before_script:
|
|
- pip install poetry
|
|
- poetry install
|
|
|
|
test:
|
|
stage: test
|
|
script:
|
|
- poetry run isort --check-only jubeatools
|
|
- poetry run black --check jubeatools
|
|
- poetry run flake8 jubeatools
|
|
- poetry run mypy jubeatools
|
|
- poetry run pytest jubeatools
|
|
|
|
build and publish:
|
|
stage: deploy
|
|
when: manual
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG =~ /v.+/'
|
|
script:
|
|
- poetry publish --build |