Add gitlab-ci config

This commit is contained in:
Benoît Seignovert 2024-02-23 15:58:21 +01:00
parent e72460d4c0
commit 1f51d5e017
Signed by: Benoît Seignovert
GPG key ID: F5D8895227D18A0B
2 changed files with 68 additions and 0 deletions

65
.gitlab-ci.yml Normal file
View file

@ -0,0 +1,65 @@
image: python:3.10
stages:
- build
- linter
- tests
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
# Trigger only if python file changes
.py_changes: &py_changes
only:
refs:
- merge_requests
- branches
- tags
changes:
- .gitlab-ci.yml
- "**/*.py"
.poetry: &poetry
<<: *py_changes
before_script:
- python -m pip install poetry>=1.7
- poetry config virtualenvs.in-project true
- poetry install
# Build
Poetry install:
stage: build
<<: *poetry
script:
- poetry version
# Linter
Ruff check:
stage: linter
<<: *poetry
script:
- poetry run ruff check .
Ruff format:
stage: linter
<<: *poetry
script:
- poetry run ruff format
# Tests
Pytest:
stage: tests
<<: *poetry
script:
- poetry run pytest
--cov-report xml:coverage.xml
--junitxml=report.xml
coverage: '/^TOTAL\s+\d+\s+\d+\s+(\d+\%)$/'
artifacts:
expire_in: 1 day
reports:
junit: report.xml
coverage_report:
coverage_format: cobertura
path: coverage.xml

View file

@ -1,6 +1,9 @@
JupyterHub Batch Spawner for GLiCID JupyterHub Batch Spawner for GLiCID
=================================== ===================================
[![Gitlab CI](https://gitlab.univ-nantes.fr/glicid/jupyter/spawner/badges/main/pipeline.svg)](https://gitlab.univ-nantes.fr/glicid/jupyter/spawner/pipelines/main/latest)
[![Test coverage](https://gitlab.univ-nantes.fr/glicid/jupyter/spawner/badges/main/coverage.svg)](https://gitlab.univ-nantes.fr/glicid/jupyter/spawner/pipelines/main/latest)
![Spawner form](img/spawner_form.png) ![Spawner form](img/spawner_form.png)