I moved to implementation on this, but I hit an issue with the original plan:

[...]
The job should be lightweight enough to run on the executor. With all those safeguards in place, I do not expect it to trigger significant additional load.

My current implementation is a python script run from tox. But I can't use the standard tox jobs as they have "hosts:all" tasks all over them which are bypassed[1] if the job is run on the executor.

[1] See https://zuul.opendev.org/t/openstack/build/4056ca3ee8b247ebbe1cbb1474191c16/console

Ideally I would define my own narrow playbook to run the script, without inheriting from the standard tox job. However the current script requires some dependencies to be installed (openstack-governance, yaml...).

Here are the options I see:

1- reimplementing most of the unittests/tox job logic in "hosts:localhost" playbook(s) -- would mean lots of copypaste, does not rhyme so well with "lightweight", and increases execution times significantly

2- rewrite the Python script so that it can run on stdlib -- not sure I want to write a YAML parser from scratch though

3- Abandon the idea of running on the executor -- the trick is that for such a short job the overhead of requesting a test node is a bit heavy, and we want to run the job on every vote change on release requests

Other ideas?

--
Thierry Carrez (ttx)

_______________________________________________
OpenStack-Infra mailing list
OpenStack-Infra@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra

Reply via email to