in hack/validate_tekton.py [0:0]
def check_description(yaml_file):
try:
with open(yaml_file, 'r') as file:
documents = yaml.safe_load_all(file)
for data in documents:
kind = data.get('kind', '')
metadata = data.get('metadata', {})
name = metadata.get('name', 'Unnamed')
spec = data.get('spec', {})
if kind == 'Pipeline':
mandatory_fields = PIPELINE_MANDATORY_FIELDS
expected_order = PIPELINE_EXPECTED_ORDER
elif kind == 'Task':
mandatory_fields = TASK_MANDATORY_FIELDS
expected_order = TASK_EXPECTED_ORDER
else:
continue
# Check for mandatory fields
for field in mandatory_fields:
if field not in spec:
print(f"Error: '{kind}' named '{name}' does not have a '{field}' defined.")
return False
if not check_key_order(spec, expected_order):
print(f"Error: '{kind}' named '{name}' does not have keys in the correct order.")
return False
print(f"'{kind}' named '{name}' ok")
except FileNotFoundError:
print(f"Error: The file '{yaml_file}' does not exist.")
return False
except Exception as e:
print(f"Error: Could not open or read the file '{yaml_file}'. {e}")
return False
return True