Skip to content

Commit

Permalink
don't error out on new I/O options; add prompts for failed assertions
Browse files Browse the repository at this point in the history
This is just some future proofing.
The GH warning-annotations will notify new contributions that certain fields are missing.

In a way, this kind of lints action.yml and docs/action.yml (specifically for our usage).
  • Loading branch information
2bndy5 committed Mar 21, 2024
1 parent a7555dd commit f94df13
Showing 1 changed file with 47 additions and 15 deletions.
62 changes: 47 additions & 15 deletions docs/gen_io_doc.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,22 @@
for info_key in b_dict:
assert info_key in a_dict and isinstance(a_dict[info_key], dict)
for k, v in a_dict[info_key].items():
if k not in b_dict[info_key]:
print(
"::error file=docs/action.yml,title={title}::{message}".format(
title=f"Undocumented {info_key} field `{k}` in actions.yml",
message=(
f"Field '{k}' not found in docs/action.yml mapping:"
),
),
info_key
)
continue
b_dict[info_key][k].update(v)

doc = "".join(
[
"---\ntitle: Inputs and Outputs\n---\n\n"
"<!--\n",
"---\ntitle: Inputs and Outputs\n---\n\n" "<!--\n",
" this page was generated from action.yml ",
"using the gen_io_doc.py script.\n",
" CHANGES TO inputs-outputs.md WILL BE LOST & OVERWRITTEN\n-->\n\n",
Expand All @@ -31,14 +41,24 @@
assert "inputs" in b_dict
doc += "\n## Inputs\n"
for action_input, input_metadata in b_dict["inputs"].items():

doc += f"### `{action_input}`\n\n"

assert "minimum-version" in input_metadata
min_ver = input_metadata["minimum-version"]
doc += f"<!-- md:version {min_ver} -->\n"

assert "default" in input_metadata
if "minimum-version" not in input_metadata:
print(
"\n::warning file={name}title={title}::{message}".format(
name="docs/action.yml",
title="Input's minimum-version not found",
message="minimum-version not set for input:",
),
action_input,
)
else:
min_ver = input_metadata["minimum-version"]
doc += f"<!-- md:version {min_ver} -->\n"

assert (
"default" in input_metadata
), f"default value for `{action_input}` not set in action.yml"
default: Union[str, bool] = input_metadata["default"]
if isinstance(default, bool):
default = str(default).lower()
Expand All @@ -53,7 +73,9 @@
permission = input_metadata["required-permission"]
doc += f"<!-- md:permission {permission} -->\n"

assert "description" in input_metadata
assert (
"description" in input_metadata
), f"`{action_input}` description not found in action.yml"
doc += "\n" + input_metadata["description"] + "\n"

assert "outputs" in b_dict
Expand All @@ -66,12 +88,22 @@
for action_output, output_metadata in b_dict["outputs"].items():
doc += f"\n### `{action_output}`\n\n"

assert "minimum-version" in output_metadata
min_ver = output_metadata["minimum-version"]
doc += f"<!-- md:version {min_ver} -->\n"


assert "description" in output_metadata
if "minimum-version" not in output_metadata:
print(
"\n::warning file={name}title={title}::{message}".format(
name="docs/action.yml",
title="Output's minimum-version not found",
message="minimum-version not set for output:",
),
action_output,
)
else:
min_ver = output_metadata["minimum-version"]
doc += f"<!-- md:version {min_ver} -->\n"

assert (
"description" in output_metadata
), f"`{action_output}` description not found in action.yml"
doc += "\n" + output_metadata["description"] + "\n"

print(doc, file=io_doc)
Expand Down

0 comments on commit f94df13

Please sign in to comment.