|
|
|
|
@ -68,6 +68,21 @@ def find_latest_ansible_dir(build_data_working):
|
|
|
|
|
return latest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def parse_deps_file(filename):
|
|
|
|
|
"""Parse an antsibull .deps file."""
|
|
|
|
|
with open(filename, 'r', encoding='utf-8') as f:
|
|
|
|
|
contents = f.read()
|
|
|
|
|
lines = [c for line in contents.splitlines() if (c := line.strip()) and not c.startswith('#')]
|
|
|
|
|
return dict([entry.strip() for entry in line.split(':', 1)] for line in lines)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def write_deps_file(filename, deps_data):
|
|
|
|
|
"""Write an antsibull .deps file."""
|
|
|
|
|
with open(filename, 'w', encoding='utf-8') as f:
|
|
|
|
|
for key, value in deps_data.items():
|
|
|
|
|
f.write(f'{key}: {value}\n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def find_latest_deps_file(build_data_working, ansible_version):
|
|
|
|
|
"""Find the most recent ansible deps file for the given ansible major version."""
|
|
|
|
|
# imports here so that they don't cause unnecessary deps for all of the plugins
|
|
|
|
|
@ -82,8 +97,7 @@ def find_latest_deps_file(build_data_working, ansible_version):
|
|
|
|
|
latest = None
|
|
|
|
|
latest_ver = Version('0')
|
|
|
|
|
for filename in deps_files:
|
|
|
|
|
with open(filename, 'r') as f:
|
|
|
|
|
deps_data = yaml.safe_load(f.read())
|
|
|
|
|
deps_data = parse_deps_file(filename)
|
|
|
|
|
new_version = Version(deps_data['_ansible_version'])
|
|
|
|
|
if new_version > latest_ver:
|
|
|
|
|
latest_ver = new_version
|
|
|
|
|
@ -158,13 +172,15 @@ def generate_full_docs(args):
|
|
|
|
|
shutil.copyfile(latest_filename, modified_deps_file)
|
|
|
|
|
|
|
|
|
|
# Put our version of ansible-core into the deps file
|
|
|
|
|
with open(modified_deps_file, 'r') as f:
|
|
|
|
|
deps_data = yaml.safe_load(f.read())
|
|
|
|
|
deps_data = parse_deps_file(modified_deps_file)
|
|
|
|
|
|
|
|
|
|
deps_data['_ansible_core_version'] = ansible_core__version__
|
|
|
|
|
|
|
|
|
|
with open(modified_deps_file, 'w') as f:
|
|
|
|
|
f.write(yaml.dump(deps_data))
|
|
|
|
|
# antsibull-docs will choke when a key `_python` is found. Remove it to work around
|
|
|
|
|
# that until antsibull-docs is fixed.
|
|
|
|
|
deps_data.pop('_python', None)
|
|
|
|
|
|
|
|
|
|
write_deps_file(modified_deps_file, deps_data)
|
|
|
|
|
|
|
|
|
|
params = ['stable', '--deps-file', modified_deps_file]
|
|
|
|
|
|
|
|
|
|
|