]> kaliko git repositories - python-musicpd.git/blobdiff - .gitlab-ci.yml
Add logging
[python-musicpd.git] / .gitlab-ci.yml
index 38250898d60473ac1fca448d1654796020cdcc95..adcc708c09500ac2d9ef378b106f1bcf3f143ade 100644 (file)
@@ -1,3 +1,4 @@
+---
 image: python:latest
 
 before_script:
@@ -7,40 +8,90 @@ stages:
   - test
   - build
 
-test:
+.cache_python:
+  variables:
+    FF_USE_FASTZIP: 1  # enable faster caching/artifacting
+    PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
+  cache:
+    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
   script:
-  - pip install pytest-cov docutils
-  - py.test -q --cov=musicpd test.py
-  - python setup.py check -r -s
-  coverage: '/musicpd.py\s+\d+\s+\d+\s+(\d+)%/'
+    - python -m venv venv
+    - source venv/bin/activate
+    - pip install pytest-cov
+    - py.test -q --cov=musicpd test.py
   only:
     - pushes
 
+test-py3.11:
+  extends:
+    - .cache_python
+    - .test
+  image: "python:3.11"
+
+test-py3.10:
+  extends:
+    - .cache_python
+    - .test
+  image: "python:3.10"
+  coverage: '/musicpd.py\s+\d+\s+\d+\s+(\d+)%/'
+
+test-py3.9:
+  extends:
+    - .cache_python
+    - .test
+  image: "python:3.9"
+
+test-py3.8:
+  extends:
+    - .cache_python
+    - .test
+  image: "python:3.8"
+
+test-py3.7:
+  extends:
+    - .cache_python
+    - .test
+  image: "python:3.7"
+
+test-py3.6:
+  extends:
+    - .cache_python
+    - .test
+  image: "python:3.6"
+
+
 build:
   stage: build
   script:
-  # packaging test
-  - python setup.py bdist_wheel sdist
-  - pip install dist/*.whl
+    # packaging test
+    - python setup.py bdist_wheel sdist
+    - pip install dist/*.whl
+    - pip install twine
+    - twine check dist/*
   artifacts:
     expire_in: 1 week
     paths:
-    - dist/*.whl
-    - dist/*.tar.gz
-    - dist/*.zip
+      - dist/*.whl
+      - dist/*.tar.gz
+      - dist/*.zip
   only:
     - pushes
 
 tag_release:
   stage: build
   script:
-  - python setup.py bdist_wheel sdist
+    - python setup.py bdist_wheel sdist
   artifacts:
     paths:
-    - dist/*.whl
-    - dist/*.tar.gz
-    - dist/*.zip
+      - dist/*.whl
+      - dist/*.tar.gz
+      - dist/*.zip
     name: "$CI_PROJECT_NAME-$CI_COMMIT_TAG"
   only:
     - tags
@@ -48,10 +99,10 @@ tag_release:
 pages:
   stage: build
   script:
-  - pip install sphinx sphinx_rtd_theme
-  - sphinx-build -d ./build/doctrees doc/source -b html ./public -D html_theme=sphinx_rtd_theme
+    - pip install sphinx sphinx_rtd_theme
+    - sphinx-build -d ./build/doctrees doc/source -b html ./public -D html_theme=sphinx_rtd_theme
   artifacts:
     paths:
-    - public
+      - public
   only:
-  - master
+    - master