]> kaliko git repositories - python-musicpd.git/blobdiff - .gitlab-ci.yml
pyproject migration
[python-musicpd.git] / .gitlab-ci.yml
index 6aa06570aaeeeecc3a8847063ef42d3ad99943df..514412926cb3b9d9d138b404c55d8a7f8c014425 100644 (file)
@@ -8,45 +8,76 @@ stages:
   - test
   - build
 
+.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:
+    - python -m venv venv
+    - source venv/bin/activate
     - pip install pytest-cov
     - py.test -q --cov=musicpd test.py
   only:
-    - pushes
+    changes:
+      - musicpd.py
+      - test.py
 
 test-py3.11:
-  extends: ".test"
+  extends:
+    - .cache_python
+    - .test
   image: "python:3.11"
 
 test-py3.10:
-  extends: ".test"
+  extends:
+    - .cache_python
+    - .test
   image: "python:3.10"
   coverage: '/musicpd.py\s+\d+\s+\d+\s+(\d+)%/'
 
 test-py3.9:
-  extends: ".test"
+  extends:
+    - .cache_python
+    - .test
   image: "python:3.9"
 
 test-py3.8:
-  extends: ".test"
+  extends:
+    - .cache_python
+    - .test
   image: "python:3.8"
 
 test-py3.7:
-  extends: ".test"
+  extends:
+    - .cache_python
+    - .test
   image: "python:3.7"
 
 test-py3.6:
-  extends: ".test"
+  extends:
+    - .cache_python
+    - .test
   image: "python:3.6"
 
 
 build:
   stage: build
+  extends:
+    - .cache_python
   script:
+    - python -m venv venv
+    - source venv/bin/activate
+    - pip install build
     # packaging test
-    - python setup.py bdist_wheel sdist
+    - python3 -m build -s -w
     - pip install dist/*.whl
     - pip install twine
     - twine check dist/*
@@ -61,8 +92,13 @@ build:
 
 tag_release:
   stage: build
+  extends:
+    - .cache_python
   script:
-    - python setup.py bdist_wheel sdist
+    - python -m venv venv
+    - source venv/bin/activate
+    - pip install build
+    - python3 -m build -s -w
   artifacts:
     paths:
       - dist/*.whl