Newer
Older
# Official language image. Look for the different tagged releases at:
# https://hub.docker.com/r/library/python/tags/
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/python:3.6
# 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"
# Pip's cache doesn't store the python packages
# https://pip.pypa.io/en/stable/reference/pip_install/#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:
- pip install virtualenv
- make show-version # Print out python version for debugging
- virtualenv venv
- source venv/bin/activate
- make deps
stages: # List of stages for jobs, and their order of execution
- test
- build
- deploy
unit-test-job:
stage: test
script:
artifacts:
when: always
reports:
junit: nosetests.xml
pylint-test-job:
stage: test
script:
- make pylint
pyflakes-test-job:
stage: test
script:
- make pyflakes
check-deprecation-warnings:
before_script: []
stage: check-warnings
script:
- "if [[ $(grep DeprecationWarning errors.log) ]]; then cat errors.log; exit 1; fi"
allow_failure: true
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
build-job:
stage: build
script:
- make buildbot
- git clone https://gitlab-ci-token:$SIGNER_TOKEN@$SIGNER_REPO
- bash signer/init_keyring.sh
- python signer/signer.py --verbose $GPG_KEY "$PWD/dist"
artifacts:
paths:
- dist
only:
- devel
- master
sphinx-metadata-job:
stage: build
script:
- printf "{\n\"codename\":\"$CI_COMMIT_BRANCH\",\n" > metadata.json
- printf "\"suite\":$(if [ "$CI_COMMIT_BRANCH" == "master" ]; then echo \"stable\"; else echo \"unstable\"; fi),\n" >> metadata.json
- printf "\"bversion\":\"$(make show-version)\",\n" >> metadata.json
- printf "\"revision\":\"$CI_COMMIT_SHA\",\n" >> metadata.json
- printf "\"bnumber\":\"$CI_PIPELINE_ID\",\n" >> metadata.json
- printf "\"bdate\":\"$(date '+%Y-%m-%d %T')\"\n}\n" >> metadata.json
artifacts:
paths:
- metadata.json
only:
- master
- devel
twine-job:
stage: deploy
script:
- printf "[pypi]\nusername = __token__\npassword = $TWINE_TOKEN\n" > .pypirc
- mkdir dist2
- cp dist/*.whl dist/*.tar.gz dist2/.
- twine upload 'dist2/*' --skip-existing --config-file .pypirc
only:
- master
pages:
stage: deploy
script:
- make docs
- curl -L --header "JOB-TOKEN:$CI_JOB_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/artifacts/devel/download?job=pages" -o devel.zip
- curl -L --header "JOB-TOKEN:$CI_JOB_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/artifacts/master/download?job=pages" -o master.zip
- unzip -n '*.zip' || true # Ignore not existing zipfiles
- mkdir -p public/"$CI_COMMIT_BRANCH"
- mkdir -p public/"$CI_COMMIT_BRANCH"/files
- cp -rf doc/_build/html public/"$CI_COMMIT_BRANCH"
- cp -rf dist/* public/"$CI_COMMIT_BRANCH"/files/.
- cd public/"$CI_COMMIT_BRANCH"/files
- echo "<html><body><h1>Directory listing:</h1>" > ./index.html
- find -exec echo "<a href='{}'>{}</a><br/>" \; | sort >> ./index.html
- echo "</body></html>" >> ./index.html
artifacts:
name: "$CI_COMMIT_BRANCH"
paths:
- public
only:
- master