-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy path.gitlab-ci.yml
93 lines (74 loc) · 2.05 KB
/
.gitlab-ci.yml
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
variables:
DJANGO_SETTINGS_MODULE: "hub20.api.settings"
HUB20_BROKER_URL: "redis://redis:6379/0"
HUB20_CACHE_BACKEND: "django_redis.cache.RedisCache"
HUB20_CACHE_LOCATION: "redis://redis:6379/1"
HUB20_CHANNEL_LAYER_HOST: "redis"
HUB20_DATA_FOLDER: "/var/hub20"
HUB20_DATABASE_NAME: "hub20_ci"
HUB20_DATABASE_USER: "hub20"
HUB20_DATABASE_PASSWORD: "hub20_pass"
HUB20_DATABASE_HOST: "postgres"
HUB20_DATABASE_PORT: "5432"
HUB20_EMAIL_MAILER_ADDRESS: "[email protected]"
HUB20_EMAIL_BACKEND: "django.core.mail.backends.console.EmailBackend"
HUB20_STATIC_ROOT: "/var/hub20/static"
HUB20_SECRET_KEY: "base-hub20-secret-key"
HUB20_RAIDEN_ADDRESS_URL: "http://raiden.example.com:5001"
HUB20_WALLET_MODEL: "ethereum.KeystoreAccount"
cache:
paths:
- ~/.cache/pip/
stages:
- test
- build
- release
test:
image: python:3.8
stage: test
services:
- postgres:latest
- redis:latest
variables:
POSTGRES_DB: "$HUB20_DATABASE_NAME"
POSTGRES_USER: "$HUB20_DATABASE_USER"
POSTGRES_PASSWORD: "$HUB20_DATABASE_PASSWORD"
script:
- export
- pip install -e .
- pytest
build_python_package:
image: python:3.8
stage: build
script:
- python setup.py build sdist
artifacts:
paths:
- dist/
publish_python_package:
image: python:3.8
stage: release
variables:
TWINE_USERNAME: $TWINE_USERNAME
TWINE_PASSWORD: $TWINE_PASSWORD
TWINE_REPOSITORY_URL: $TWINE_REPOSITORY_URL
script:
- pip install twine
- twine upload dist/* --non-interactive
rules:
- if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+$/'
build_docker_image:
image: docker:19
stage: release
services:
- docker:19-dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- DOCKER_TAG=${CI_COMMIT_TAG:-latest}
- echo "Building and publishing ${CI_REGISTRY_IMAGE}:${DOCKER_TAG}"
- docker build --pull --target hub20_base -t "${CI_REGISTRY_IMAGE}" .
- docker push "${CI_REGISTRY_IMAGE}:${DOCKER_TAG}"
only:
- master
- tags