forked from ansible/workshops
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
196 lines (188 loc) · 5.89 KB
/
tox.ini
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
[tox]
envlist = linters,workshop-rhel,workshop-f5,workshop-security,workshop-windows,workshop-networking,workshop-smart_mgmt
skipsdist = true
[testenv]
[testenv:linters]
deps =
-r{toxinidir}/test-requirements.txt
commands =
yamllint -s .
[testenv:workshops]
sitepackages = True
whitelist_externals =
ansible-playbook
ansible-galaxy
bash
curl
deps =
ansible-core
netaddr
pywinrm
requests
requests-credssp
boto
boto3
paramiko
# TODO(spredzy): This is to by-pass a current issue in CI that causes CI to
# pull urllib3==1.24.2 randomly and runs end up failing with
# ModuleNotFoundError: No module named 'urllib3.packages.six'
urllib3 >= 1.25.10
setenv =
ANSIBLE_CONFIG = provisioner/ansible.cfg
# globally add more retries and clientside delays to boto functions to fix AWS throttling/timeouts
# https://github.com/boto/botocore/blob/master/botocore/configprovider.py#L99
AWS_MAX_ATTEMPTS = 10
AWS_RETRY_MODE = standard
passenv =
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
WORKSHOPS_CHANGE_ID
commands_pre =
python provisioner/tests/generate_ci_common.py
ansible --version
ansible-galaxy collection build --verbose --output-path build/
# tox doesn't expand wildcards, so we run a shell to expand it explicitly
/bin/sh -c 'ansible-galaxy collection install --verbose build/*.tar.gz'
# monkeypatching to prevent route53 throttling (backoffs and pauses are ineffective)
/bin/sh -c 'sed -E -i -e "s/record_sets = .*build_full_result\(\)/record_sets = client.list_resource_record_sets(**params)/" "$(find /root/ /home/ /usr/ -name route53_info.py)"'
[testenv:workshop-rhel]
sitepackages =
{[testenv:workshops]sitepackages}
whitelist_externals =
{[testenv:workshops]whitelist_externals}
deps =
{[testenv:workshops]deps}
setenv =
{[testenv:workshops]setenv}
passenv =
{[testenv:workshops]passenv}
commands_pre =
{[testenv:workshops]commands_pre}
commands =
ansible-playbook provisioner/provision_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-rhel.yml
bash ./provisioner/tests/verify-rhel.sh
commands_post =
ansible-playbook provisioner/teardown_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-rhel.yml
[testenv:workshop-security]
sitepackages =
{[testenv:workshops]sitepackages}
whitelist_externals =
{[testenv:workshops]whitelist_externals}
deps =
{[testenv:workshops]deps}
setenv =
{[testenv:workshops]setenv}
passenv =
{[testenv:workshops]passenv}
commands_pre =
{[testenv:workshops]commands_pre}
commands =
ansible-playbook provisioner/provision_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-security.yml
commands_post =
ansible-playbook provisioner/teardown_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-security.yml
[testenv:workshop-f5]
sitepackages =
{[testenv:workshops]sitepackages}
whitelist_externals =
{[testenv:workshops]whitelist_externals}
deps =
{[testenv:workshops]deps}
setenv =
{[testenv:workshops]setenv}
passenv =
{[testenv:workshops]passenv}
commands_pre =
{[testenv:workshops]commands_pre}
commands =
ansible-playbook provisioner/provision_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-f5.yml
bash ./provisioner/tests/verify-f5.sh
commands_post =
ansible-playbook provisioner/teardown_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-f5.yml
[testenv:workshop-windows]
sitepackages =
{[testenv:workshops]sitepackages}
whitelist_externals =
{[testenv:workshops]whitelist_externals}
deps =
{[testenv:workshops]deps}
setenv =
{[testenv:workshops]setenv}
passenv =
{[testenv:workshops]passenv}
commands_pre =
{[testenv:workshops]commands_pre}
commands =
ansible-playbook provisioner/provision_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-windows.yml
commands_post =
ansible-playbook provisioner/teardown_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-windows.yml
[testenv:workshop-networking]
sitepackages =
{[testenv:workshops]sitepackages}
whitelist_externals =
{[testenv:workshops]whitelist_externals}
deps =
{[testenv:workshops]deps}
setenv =
{[testenv:workshops]setenv}
passenv =
{[testenv:workshops]passenv}
commands_pre =
{[testenv:workshops]commands_pre}
commands =
ansible-playbook provisioner/provision_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-networking.yml
commands_post =
ansible-playbook provisioner/teardown_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-networking.yml
[testenv:workshop-smart_mgmt]
sitepackages =
{[testenv:workshops]sitepackages}
whitelist_externals =
{[testenv:workshops]whitelist_externals}
deps =
{[testenv:workshops]deps}
setenv =
{[testenv:workshops]setenv}
passenv =
{[testenv:workshops]passenv}
commands_pre =
{[testenv:workshops]commands_pre}
commands =
ansible-playbook provisioner/provision_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-smart_mgmt.yml
bash ./provisioner/tests/verify-rhel.sh
commands_post =
ansible-playbook provisioner/teardown_lab.yml \
-e @provisioner/tests/vars.yml \
-e @provisioner/tests/ci-common.yml \
-e @provisioner/tests/ci-smart_mgmt.yml