import json import yaml with open("images.json", "r") as f: images_data = json.load(f) with open(".woodpecker/build.yaml", "w") as f: f.write("# GENERATED CODE - DO NOT MODIFY BY HAND\n") yaml.dump( { "when": [ {"event": "push", "branch": "${CI_REPO_DEFAULT_BRANCH}"}, {"event": "manual"}, {"event": "cron", "cron": "weekly"}, ], "steps": [ { "name": f"publish {image['name']}", "image": "woodpeckerci/plugin-kaniko", "failure": "ignore", "settings": { "registry": "git.jakew.me", "repo": f"${{CI_REPO_OWNER}}/{image['name']}", "dockerfile": image["dockerfile"], "platforms": "linux/amd64,linux/arm64", "tags": "latest", "username": "${CI_REPO_OWNER}", "password": {"from_secret": "docker_token"}, }, "directory": image["context"], } for image in images_data ], }, f, default_flow_style=False, )