The Travis Linux distribution must be upgraded because the Trusty
(Ubuntu 14.04) image does not have Python 3.9. Xenial (Ubuntu 16.04) is
the earliest version that offers Python 3.9.
I have not chosen a later release, in order to aid restoration of Python
2.4 - 2.6 tests.
I hope this will prevent AWS Elastic Container Registry returning 429:
Too Many Requests error, due to the burst of activity from multiple VMs,
when a CI build begins.
The ansible_mitogen test suite takes over an hour when Ansible is not
accelerated by Mitogen. This change aims to reduce that by skipping
tests with a large number of iterations when the linear strategy is
chosen.
The tagged tests are intended to uncover Mitogen resource leaks. Since
Mitogen is not invoked when strategy=linear, the slight reduction in
test coverage is an acceptable trade off.
These are not part of the official testing regime (tests run for pull
requests). I find them convenient for local development.
Limitations
- Python 2.7+ only. No Python 2.4, 2.5, or 2.6.
- Requires Pythons pre-installed (e.g. DeadSnakes, pyenv)
- No coverage of alternate controller OS (e.g. MacOS)
The environments tested by default are
py27-mode_ansible-ansible2.10
py36-mode_ansible-ansible2.10
py39-mode_ansible-ansible2.10
py27-mode_mitogen
py36-mode_mitogen
py39-mode_mitogen
py27-mode_mitogen-distro_centos7
py36-mode_mitogen-distro_centos7
py39-mode_mitogen-distro_centos7
* origin/master: (277 commits)
Fix DjangoMixin test imports for setuptools >= 50.0
Add ansible.legacy.setup to be fixed on py3.5
code cleanup + adds 0.2.10 + 0.3.0 changelog
adding clarifying comments
fix py3.5.1-3.5.3 setup import error for Ansible 2.10
tests: Fix AttributeError in callback plugins used by test suite
code review changes, using when statements and adding trailing comma
ssh: Match newer ssh host key prompt that accepts the fingerprint
🎉 no more warnings, only load specific collection subdirs instead of top-level collection path (ie no ansible_collections/google, only ansible_collections/google/cloud, etc)
ansible 2.10 no longer has a at the end of the error msg... 🤦
skip vanilla Ansible 2.10 hanging task if not is_mitogen
vanilla ansible is now running but is really slow; bump timeout
try vanilla ansible 2.10 on Mac
travis is having trouble running vanilla Ansible so migrating to Azure
disable debops since it breaks with ansible 2.10
install all required debops extras for ansible
netaddr needs to be on the Ansible controller, not in target nodes
forgot to update apt cache
turn off host key checking with ad-hoc python-netaddr install and add back in debops command line
don't need to ci_lib run setting up python-netaddr
need to specify strategy plugin for ansible ad-hoc
need python-netaddr in docker target containers for debops
adding hopefully new-style import that works for Ansible 2.10
make sure to apt-get update first before install
apt needs sudo
disable python <= 2.6 tests
install missing python-netaddr for debops
revert missing interpreter change, it breaks with Mitogen and without Mitogen, something else might be causing new-style detection to not work
oops, broke new-style missing interpreter detection. Regex should match now
fix custom_python_new_style_missing_interpreter, looks like Ansible 2.10 changed how new-style module detection works
add workaround for TravisCI 4MB log limit job termination
fix regression in Darwin 19 (OSX 10.15+) ansible python interpreter detection
something broke with Mac 10.14 with dscl, before trying a hack see if OS upgrade works
don't run sshpass install through run
azure tests don't like sshpass v1.06 so pegging to 1.05
fix Error: Calling Non-checksummed download of sshpass formula file from an arbitrary URL is disabled
result length is 3 in Azure, 4 on local Mac
fixed ansible_become_pass test, looks like regression on Ansible's end
localhost_ansible tests now pass, adding -vvv to ansible_tests to get more debug info there
fixed issue of switching between mitogen and non-mitogen strategies
fix yml parsing
oops, yml file can't be empty
ignore another flaky test that works locally
fix ansible version check error
fix runner_one_job ansible version comparison
oops, 0664 not 0666
fix fixup_perms2() test
default copy perms look like 0644 now based on ansible source and docs
missed a format call var
remove ansible from github tag install setup in test config files
add support for ansible_collections site-package (from pip ansible==2.10.0 install) + switch to ansible 2.10.0 rather than github tag
remove debugging
remove synchronize fail test for azure
ignore synchronize for now, made ticket
try and get some visibility into test failures
fix venv install
see if sys.path is being loaded properly on azure
print didn't work because verbosity, throw valueerror to see
more debugging, synchronize is being weird on azure
python3 needs python3-venv
tests are in a bad state...somehow both apt and brew can exist on azure using a linux job with an ubuntu vm image???
need to group all python install commands together
python3 tests are broken...
cffi super old, try and update it
try a different psycopg2 package as well
need to install psycopg2-binary in the created venv
fix 'struct _is' error hopefully
brew is missing postgresql
awesome, /usr/local/bin/python2.7 already exists
missed a format
wrong letter 🤦 what am I doing
missed a )
missed a ,
clean up azure python version used
print what's being ran in tests
try running ansible_mitogen 2.10 tests with python3
check sys.path issue
add back in ansible tests but don't run synchronize
turn off failing Ansible-only tests for now, also raising errors to see what Azure is gonna do with collections
removed duplicate install and added debug dump of collection loading to see what tests are doing
ansible.posix.synchronize isn't being loaded in tests but is locally, reducing v count to get around azure devops scroll bug
hopefully this also fails the same way
any amount of v is too much v, even when viewing tests in raw log file mode
add missing collections 🤦
verify collection is working as expected
can't replicate but think it's because synchronize is now a collection
2 v freezes things...this is impossible to debug
figure out what synchronize is now
put future import in wrong place
3 v is too much v for azure devops to render
add some debugging info, was able to run the failed synchronize test locally just fine using test framework, not sure what's going on
test cleanup and trying to replicate synchronize fails
warnings silenced, see if can put back in vvv
try and suppress mode warning clogging up logs
logs too verbose, unable to load test page
run tests with verbose logging
perhaps a modern debops version will work
travis pip is 9 from what the logs say
remove ansible 2.4-specific test
fix fixup_perms2 default file mode
...
The environment variable DISTRO is used to set the target Docker image
used when running the Mitogen unit tests. DISTROS is used for the
Ansible integration tests. VER sets the version of Ansible that is
installed on the controller.
When MODE=Mitogen
- there is no need to set VER, because nothing that installs Ansible
- it does not make sense to set DISTROS.