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.
ansible/test/integration/targets/ansible-galaxy-collection-scm/tasks/setup_multi_collection_repo...

71 lines
1.9 KiB
YAML

- name: Initialize a git repo
command: 'git init {{ test_repo_path }}'
- stat:
path: "{{ test_repo_path }}"
- name: Add a couple collections to the repository
command: 'ansible-galaxy collection init {{ item }}'
args:
chdir: '{{ scm_path }}'
loop:
- 'ansible_test.collection_1'
- 'ansible_test.collection_2'
- name: Preserve the (empty) docs directory for the SCM collection
file:
path: '{{ test_repo_path }}/{{ item }}/docs/README.md'
state: touch
loop:
- collection_1
- collection_2
- name: Preserve the (empty) roles directory for the SCM collection
file:
path: '{{ test_repo_path }}/{{ item }}/roles/README.md'
state: touch
loop:
- collection_1
- collection_2
- name: create extra files and folders to test build_ignore
file:
path: '{{ test_repo_path }}/collection_1/{{ item.name }}'
state: '{{ item.state }}'
loop:
- name: foo.txt
state: touch
- name: foobar
state: directory
- name: foobar/qux
state: directory
- name: foobar/qux/bar
state: touch
- name: foobar/baz.txt
state: touch
- name: Add collection_2 as a dependency of collection_1
lineinfile:
path: '{{ test_repo_path }}/collection_1/galaxy.yml'
regexp: '^dependencies'
line: "dependencies: {'git+file://{{ test_repo_path }}/.git#collection_2/': '*'}"
- name: Ignore a directory and files
lineinfile:
path: '{{ test_repo_path }}/collection_1/galaxy.yml'
regexp: '^build_ignore'
line: "build_ignore: ['foo.txt', 'foobar/*']"
- name: Commit the changes
command: '{{ item }}'
args:
chdir: '{{ test_repo_path }}'
loop:
- git add ./
- git commit -m 'add collections'
- name: Build the actual artifact for ansible_test.collection_1 for comparison
command: "ansible-galaxy collection build ansible_test/collection_1 --output-path {{ galaxy_dir }}"
args:
chdir: "{{ scm_path }}"