-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtox.ini
More file actions
128 lines (110 loc) · 3.55 KB
/
Copy pathtox.ini
File metadata and controls
128 lines (110 loc) · 3.55 KB
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
[tox]
skipsdist = True
skip_missing_interpreters = True
requires =
tox>=4
envlist =
; Add the `ci` factor to any env that should be running during CI.
py3{9,10,11,12,13}-ci-test-{cloudtrace,cloudmonitoring,propagator,cloudlogging}
{lint,mypy}-ci-{cloudtrace,cloudmonitoring,propagator,cloudlogging}
docs-ci
; These are development commands and share the same virtualenv within each
; package root directory
{fix}-{cloudtrace,cloudmonitoring,propagator,cloudlogging}
; Installs dev depenedencies and all packages in this repo with editable
; install into a single env. Useful for editor autocompletion
dev
; this section contains constants that can be referenced elsewhere
[constants]
base_deps =
-c {toxinidir}/dev-constraints.txt
-e {toxinidir}/test-common
dev_basepython = python3.10
dev_deps =
{[constants]base_deps}
black
flake8
isort
mypy
pylint
pytest
setuptools
syrupy
types-protobuf
types-requests
types-setuptools
# 3rd party package until https://github.com/googleapis/python-api-common-protos/issues/135
# is fixed
googleapis-common-protos-stubs
; CircleCI won't show results if I put them in .test-results directly
test_results_dir = {toxinidir}/.test-results/test-results
[testenv]
download = true
setenv =
; for package specific commands, use these envvars to cd into the directory
cloudtrace: PACKAGE_NAME = opentelemetry-exporter-gcp-trace
cloudmonitoring: PACKAGE_NAME = opentelemetry-exporter-gcp-monitoring
cloudlogging: PACKAGE_NAME = opentelemetry-exporter-gcp-logging
propagator: PACKAGE_NAME = opentelemetry-propagator-gcp
[testenv:py3{9,10,11,12,13}-ci-test-{cloudtrace,cloudmonitoring,propagator,cloudlogging}]
deps =
; editable install the package itself
-e {toxinidir}/{env:PACKAGE_NAME}
test: {[constants]base_deps}
; test specific deps
test: pytest
test: syrupy
passenv = SKIP_GET_MOCK_SERVER
changedir = {env:PACKAGE_NAME}
commands_pre =
{toxinidir}/get_mock_server.sh {envbindir}
commands = pytest --junitxml={[constants]test_results_dir}/{envname}/junit.xml {posargs}
allowlist_externals =
bash
{toxinidir}/get_mock_server.sh
[testenv:{lint,mypy}-ci-{cloudtrace,cloudmonitoring,propagator,cloudlogging}]
basepython = {[constants]dev_basepython}
deps =
; editable install the package itself
-e {toxinidir}/{env:PACKAGE_NAME}
{[constants]dev_deps}
changedir = {env:PACKAGE_NAME}
commands =
lint: black . --diff --check
lint: isort . --diff --check-only
lint: flake8 --config {toxinidir}/.flake8 .
lint: pylint --rcfile {toxinidir}/.pylintrc src/ tests/
mypy: mypy src/ --pretty --show-error-codes --junit-xml \
mypy: {[constants]test_results_dir}/mypy-{env:PACKAGE_NAME}/junit.xml {posargs}
[testenv:docs-ci]
deps =
-r docs-requirements.txt
commands =
make -C docs/ clean html
allowlist_externals =
make
bash
[testenv:{fix}-{cloudtrace,cloudmonitoring,propagator,cloudlogging}]
basepython = {[constants]dev_basepython}
envdir =
cloudtrace: opentelemetry-exporter-gcp-trace/venv
cloudmonitoring: opentelemetry-exporter-gcp-monitoring/venv
propagator: opentelemetry-propagator-gcp/venv
cloudlogging: opentelemetry-exporter-gcp-logging/venv
deps =
{[constants]dev_deps}
-e {env:PACKAGE_NAME}
changedir = {env:PACKAGE_NAME}
commands =
; To run fixers (black, isort) `tox -f fix`.
fix: black .
fix: isort .
[testenv:dev]
basepython = {[constants]dev_basepython}
envdir = venv
deps =
{[constants]dev_deps}
-e opentelemetry-exporter-gcp-monitoring
-e opentelemetry-exporter-gcp-trace
-e opentelemetry-propagator-gcp
-e opentelemetry-exporter-gcp-logging