When wanting to work on a collection for ansible
it is (for now1) important
to check it out in a very specific folder structure or it will not be possible
to run the tests for it.
When trying to run ansible-test integration
it will otherwise throw the
following error:
1ERROR: The current working directory must be at or below:
2
3 - an Ansible collection: {...}/ansible_collections/{namespace}/{collection}/
4
5Current working directory: <some_other_dir>
The collection must be really placed inside a subfolder
of a folder called
ansible_collections
and neither namespace
nor collection
can contain
any symbols except alphanumberics
or underscores
([a-zA-Z0-9_]
):
1ansible_collections
2└── namespace
3 └── collection
So if you want to work on an upstream collection (e.g. community.general) you
should create an intermediate folder community
and clone the collection into
the general
folder (contrary to the default checkout which would be
community.general
):
1ansible_collections
2└── community
3 └── general
Inside general
you can now use run ansible-test integration
to run
the integration tests successfully:
1cd ansible_collections/community/general
2poetry init --name community.general --dependency=ansible --dependency=pyyaml --dependency=jinja2 -n
3poetry install
4poetry run ansible-test integration
-
This might hopefully become easier in the future: https://github.com/ansible/ansible/issues/60215 ↩︎