key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
paths: # cache the venv and pip cache (you may opt to use just 1 of these)
- $PIP_CACHE_DIR
- #- venv
.test:
stage: test
- py.test -q --cov=musicpd test.py
rules:
- changes:
- - musicpd.py
- - test.py
- - if: $MUSICPD_TEST
+ - musicpd.py
+ - test.py
+ - if: $CI_PIPELINE_SOURCE == "schedule"
+
+test-py3.12:
+ extends:
+ - .cache_python
+ - .test
+ image: "python:3.12"
test-py3.11:
extends:
artifacts:
expire_in: 1 week
paths:
- - dist/*.whl
- - dist/*.tar.gz
- - dist/*.zip
+ - dist/*.*
rules:
- if: $CI_PIPELINE_SOURCE == "push"
+ changes:
+ - .gitlab-ci.yml
+ - musicpd.py
+ - test.py
+ - MANIFEST.in
+ - pyproject.toml
+ - if: $CI_PIPELINE_SOURCE == "schedule"
tag_release:
stage: build
- python3 -m build -s -w
artifacts:
paths:
- - dist/*.whl
- - dist/*.tar.gz
- - dist/*.zip
+ - dist/*.*
name: "$CI_PROJECT_NAME-$CI_COMMIT_TAG"
rules:
- if: $CI_COMMIT_TAG
+# Documentation
+build_doc:
+ stage: build
+ script:
+ - pip install sphinx sphinx_rtd_theme
+ - sphinx-build doc/source -b html ./html -D html_theme=sphinx_rtd_theme -E -W -n --keep-going
+ rules:
+ - if: $CI_PIPELINE_SOURCE == "push"
+ changes:
+ - doc/source/*
+ - if: $CI_PIPELINE_SOURCE == "schedule"
+
pages:
stage: build
script: