mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
184 lines
7.4 KiB
YAML
184 lines
7.4 KiB
YAML
---
|
|
- name: create default skeleton
|
|
command: ansible-galaxy collection init ansible_test.my_collection {{ galaxy_verbosity }}
|
|
args:
|
|
chdir: '{{ galaxy_dir }}/scratch'
|
|
register: init_relative
|
|
|
|
- name: get result of create default skeleton
|
|
find:
|
|
path: '{{ galaxy_dir }}/scratch/ansible_test/my_collection'
|
|
recurse: yes
|
|
file_type: directory
|
|
register: init_relative_actual
|
|
|
|
- debug:
|
|
var: init_relative_actual.files | map(attribute='path') | list
|
|
|
|
- name: assert create default skeleton
|
|
assert:
|
|
that:
|
|
- '"Collection ansible_test.my_collection was created successfully" in init_relative.stdout'
|
|
- init_relative_actual.files | length == 4
|
|
- (init_relative_actual.files | map(attribute='path') | list)[0] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_relative_actual.files | map(attribute='path') | list)[1] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_relative_actual.files | map(attribute='path') | list)[2] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_relative_actual.files | map(attribute='path') | list)[3] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
|
|
- name: create collection with custom init path
|
|
command: ansible-galaxy collection init ansible_test2.my_collection --init-path "{{ galaxy_dir }}/scratch/custom-init-dir" {{ galaxy_verbosity }}
|
|
register: init_custom_path
|
|
|
|
- name: get result of create default skeleton
|
|
find:
|
|
path: '{{ galaxy_dir }}/scratch/custom-init-dir/ansible_test2/my_collection'
|
|
file_type: directory
|
|
register: init_custom_path_actual
|
|
|
|
- name: assert create collection with custom init path
|
|
assert:
|
|
that:
|
|
- '"Collection ansible_test2.my_collection was created successfully" in init_custom_path.stdout'
|
|
- init_custom_path_actual.files | length == 4
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[0] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[1] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[2] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[3] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
|
|
- name: add a directory to the init collection path to test that --force removes it
|
|
file:
|
|
state: directory
|
|
path: "{{ galaxy_dir }}/scratch/custom-init-dir/ansible_test2/my_collection/remove_me"
|
|
|
|
- name: create collection with custom init path
|
|
command: ansible-galaxy collection init ansible_test2.my_collection --init-path "{{ galaxy_dir }}/scratch/custom-init-dir" --force {{ galaxy_verbosity }}
|
|
register: init_custom_path
|
|
|
|
- name: get result of create default skeleton
|
|
find:
|
|
path: '{{ galaxy_dir }}/scratch/custom-init-dir/ansible_test2/my_collection'
|
|
file_type: directory
|
|
register: init_custom_path_actual
|
|
|
|
- name: assert create collection with custom init path
|
|
assert:
|
|
that:
|
|
- '"Collection ansible_test2.my_collection was created successfully" in init_custom_path.stdout'
|
|
- init_custom_path_actual.files | length == 4
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[0] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[1] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[2] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[3] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
|
|
- name: create collection in cwd with custom init path
|
|
command: ansible-galaxy collection init ansible_test2.my_collection --init-path ../../ --force {{ galaxy_verbosity }}
|
|
args:
|
|
chdir: "{{ galaxy_dir }}/scratch/custom-init-dir/ansible_test2/my_collection"
|
|
register: init_custom_path
|
|
|
|
- name: get result of create default skeleton
|
|
find:
|
|
path: '{{ galaxy_dir }}/scratch/custom-init-dir/ansible_test2/my_collection'
|
|
file_type: directory
|
|
register: init_custom_path_actual
|
|
|
|
- name: assert create collection with custom init path
|
|
assert:
|
|
that:
|
|
- '"Collection ansible_test2.my_collection was created successfully" in init_custom_path.stdout'
|
|
- init_custom_path_actual.files | length == 4
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[0] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[1] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[2] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
- (init_custom_path_actual.files | map(attribute='path') | list)[3] | basename in ['docs', 'plugins', 'roles', 'meta']
|
|
|
|
- name: test using a custom skeleton for collection init
|
|
block:
|
|
- name: create skeleton directories
|
|
file:
|
|
path: "{{ galaxy_dir }}/scratch/skeleton/{{ item }}"
|
|
state: directory
|
|
loop:
|
|
- custom_skeleton
|
|
- custom_skeleton/plugins
|
|
- inventory
|
|
|
|
- name: create files
|
|
file:
|
|
path: "{{ galaxy_dir }}/scratch/skeleton/{{ item }}"
|
|
state: touch
|
|
loop:
|
|
- inventory/foo.py
|
|
- galaxy.yml
|
|
|
|
- name: create symlinks
|
|
file:
|
|
path: "{{ galaxy_dir }}/scratch/skeleton/{{ item.link }}"
|
|
src: "{{ galaxy_dir }}/scratch/skeleton/{{ item.source }}"
|
|
state: link
|
|
loop:
|
|
- link: custom_skeleton/plugins/inventory
|
|
source: inventory
|
|
- link: custom_skeleton/galaxy.yml
|
|
source: galaxy.yml
|
|
|
|
- name: initialize a collection using the skeleton
|
|
command: ansible-galaxy collection init ansible_test.my_collection {{ init_path }} {{ skeleton }}
|
|
vars:
|
|
init_path: '--init-path {{ galaxy_dir }}/scratch/skeleton'
|
|
skeleton: '--collection-skeleton {{ galaxy_dir }}/scratch/skeleton/custom_skeleton'
|
|
|
|
- name: stat expected collection contents
|
|
stat:
|
|
path: "{{ galaxy_dir }}/scratch/skeleton/ansible_test/my_collection/{{ item }}"
|
|
register: stat_result
|
|
loop:
|
|
- plugins
|
|
- plugins/inventory
|
|
- galaxy.yml
|
|
- plugins/inventory/foo.py
|
|
|
|
- assert:
|
|
that:
|
|
- stat_result.results[0].stat.isdir
|
|
- stat_result.results[1].stat.islnk
|
|
- stat_result.results[2].stat.islnk
|
|
- stat_result.results[3].stat.isreg
|
|
|
|
always:
|
|
- name: cleanup
|
|
file:
|
|
path: "{{ galaxy_dir }}/scratch/skeleton"
|
|
state: absent
|
|
|
|
- name: create collection for ignored files and folders
|
|
command: ansible-galaxy collection init ansible_test.ignore
|
|
args:
|
|
chdir: '{{ galaxy_dir }}/scratch'
|
|
|
|
- name: create list of ignored files
|
|
set_fact:
|
|
collection_ignored_files:
|
|
- plugins/compiled.pyc
|
|
- something.retry
|
|
- .git
|
|
|
|
- name: plant ignored files into the ansible_test.ignore collection
|
|
copy:
|
|
dest: '{{ galaxy_dir }}/scratch/ansible_test/ignore/{{ item }}'
|
|
content: '{{ item }}'
|
|
loop: '{{ collection_ignored_files }}'
|
|
|
|
- name: create list of ignored directories
|
|
set_fact:
|
|
collection_ignored_directories:
|
|
- docs/.git
|
|
- plugins/doc_fragments/__pycache__
|
|
- .svn
|
|
|
|
- name: plant ignored folders into the ansible_test.ignore collection
|
|
file:
|
|
path: '{{ galaxy_dir }}/scratch/ansible_test/ignore/{{ item }}'
|
|
state: directory
|
|
loop: '{{ collection_ignored_directories }}'
|