Newer
Older
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
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
# 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.7
# 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:
- make test
pylint-test-job:
stage: test
script:
- make pylint
pyflakes-test-job:
stage: test
script:
- make pyflakes
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/pyzenkit*.whl dist/pyzenkit*.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