- name: Test installing a collection from a git repo containing a MANIFEST.json block: - name: Create a temp directory for building the collection file: path: '{{ galaxy_dir }}/scratch' state: directory - name: Initialize a collection command: 'ansible-galaxy collection init namespace_3.collection_1' args: chdir: '{{ galaxy_dir }}/scratch' - name: Build the collection command: 'ansible-galaxy collection build namespace_3/collection_1' args: chdir: '{{ galaxy_dir }}/scratch' - name: Initialize git repository command: 'git init {{ scm_path }}/namespace_3' - name: Create the destination for the collection file: path: '{{ scm_path }}/namespace_3/collection_1' state: directory - name: Unarchive the collection in the git repo unarchive: dest: '{{ scm_path }}/namespace_3/collection_1' src: '{{ galaxy_dir }}/scratch/namespace_3-collection_1-1.0.0.tar.gz' remote_src: yes - name: Commit the changes shell: git add ./; git commit -m 'add collection' args: chdir: '{{ scm_path }}/namespace_3' - name: Install the collection in the git repository command: 'ansible-galaxy collection install git+file://{{ scm_path }}/namespace_3/.git' register: result - name: Assert the collection was installed successfully assert: that: - '"namespace_3.collection_1:1.0.0 was installed successfully" in result.stdout_lines' always: - name: Clean up directories from test file: path: '{{ galaxy_dir }}/scratch' state: absent loop: - '{{ galaxy_dir }}/scratch' - '{{ scm_path }}/namespace_3' - include_tasks: ./empty_installed_collections.yml