File: .gitlab-ci.yml

package info (click to toggle)
python-asyncinotify 4.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 232 kB
  • sloc: python: 1,188; makefile: 15
file content (64 lines) | stat: -rw-r--r-- 1,346 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
image: python:latest

# Change pip's cache directory to be inside the project directory since we can
# only cache local items.
variables:
  PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
  
stages:
  - package
  - test
  - deploy

# Pip's cache doesn't store the python packages
# https://pip.pypa.io/en/stable/topics/caching/
#
# If you want to also cache the installed packages, you have to install
# them in a virtualenv and cache it as well.
cache:
  paths:
    - .cache/pip
    - venv/

before_script:
  - python --version  # For debugging
  - python -mvenv venv
  - . venv/bin/activate

package:
  stage: package
  script:
    - pip install wheel 'flit >=3.2, <4' build
    - python -mbuild
  artifacts:
    paths:
      - dist/*.whl
      - dist/*.tar.gz

test:
  stage: test
  parallel:
    matrix:
      - VERSION:
        - '3.6'
        - '3.7'
        - '3.8'
        - '3.9'
        - '3.10'
        - '3.11'
        - '3.12'
  image: python:$VERSION
  script:
    - pip install ./dist/*.whl
    - python test.py

deploy:
  stage: deploy
  script:
    - pip install wheel 'flit >=3.2, <4' build
    - echo '[pypi]' >"$HOME/.pypirc"
    - echo 'username = __token__' >>"$HOME/.pypirc"
    - echo "password = ${PYPI_TOKEN:?Only works on protected tags}" >>"$HOME/.pypirc"
    - flit publish
  rules:
    - if: $CI_COMMIT_TAG =~ /^v[0-9]/