mirror of https://github.com/ansible/ansible.git
fix installing collections from git repos that contain MANIFEST.json (#79808)
* add null 'manifest' key to metadata for git repo collections containing MANIFEST.json changelog * set to Sentinel instead of None * Test installing a collection in a git repo that contains a MANIFEST.json * fix test * Update changelogs/fragments/ansible-galaxy-install-git-src-manifest.ymlpull/79835/head
parent
52d3d39ffc
commit
321848e98d
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-galaxy - fix installing collections in git repositories/directories which contain a MANIFEST.json file (https://github.com/ansible/ansible/issues/79796).
|
@ -1,3 +1,4 @@
|
||||
---
|
||||
dependencies:
|
||||
- setup_remote_tmp_dir
|
||||
- setup_gnutar
|
||||
|
@ -0,0 +1,55 @@
|
||||
- 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
|
Loading…
Reference in New Issue