Skip to content

Commit 5918173

Browse files
committed
fix(ci): correct YAML indentation in dogfood-gate eclexiaiser step (startup failure)
dogfood-gate.yml startup-failed (Invalid workflow file: line 261) because the 'python3 -c' heredoc in the eclexiaiser-validate step was written flush-left, terminating the 'run: |' block scalar. Indent the heredoc body into the block so the YAML parses. THIS was the actual root cause of the gate's 0-job startup failure (the earlier validate-action repin in da78219 was unrelated SHA-hygiene). NOTE: this step uses Python (tomllib), which the estate language policy BANS — it is inherited from rsr-template-repo's dogfood-gate template. Flagged for an upstream de-Python fix (the dogfooding gate should follow the estate's own policy). https://claude.ai/code/session_013wg3Mtq2QFhYi4XVw1Z6z7
1 parent cef9a07 commit 5918173

1 file changed

Lines changed: 23 additions & 21 deletions

File tree

.github/workflows/dogfood-gate.yml

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -256,28 +256,30 @@ jobs:
256256
257257
echo "has_manifest=true" >> "$GITHUB_OUTPUT"
258258
259-
# Validate TOML structure using Python 3.11+ tomllib
259+
# Validate TOML structure using Python 3.11+ tomllib.
260+
# NOTE: the -c body MUST stay indented inside this `run: |` block scalar.
261+
# A prior flush-left version was invalid YAML and startup-failed the gate.
260262
python3 -c "
261-
import tomllib, sys
262-
with open('eclexiaiser.toml', 'rb') as f:
263-
data = tomllib.load(f)
264-
project = data.get('project', {})
265-
if not project.get('name', '').strip():
266-
print('ERROR: project.name is required', file=sys.stderr)
267-
sys.exit(1)
268-
functions = data.get('functions', [])
269-
if not functions:
270-
print('ERROR: at least one [[functions]] entry is required', file=sys.stderr)
271-
sys.exit(1)
272-
for fn in functions:
273-
if not fn.get('name', '').strip():
274-
print('ERROR: function name cannot be empty', file=sys.stderr)
275-
sys.exit(1)
276-
if not fn.get('source', '').strip():
277-
print(f'ERROR: function {fn[\"name\"]} has no source path', file=sys.stderr)
278-
sys.exit(1)
279-
print(f'Valid: {project[\"name\"]} ({len(functions)} function(s))')
280-
" || {
263+
import tomllib, sys
264+
with open('eclexiaiser.toml', 'rb') as f:
265+
data = tomllib.load(f)
266+
project = data.get('project', {})
267+
if not project.get('name', '').strip():
268+
print('ERROR: project.name is required', file=sys.stderr)
269+
sys.exit(1)
270+
functions = data.get('functions', [])
271+
if not functions:
272+
print('ERROR: at least one [[functions]] entry is required', file=sys.stderr)
273+
sys.exit(1)
274+
for fn in functions:
275+
if not fn.get('name', '').strip():
276+
print('ERROR: function name cannot be empty', file=sys.stderr)
277+
sys.exit(1)
278+
if not fn.get('source', '').strip():
279+
print(f'ERROR: function {fn[\"name\"]} has no source path', file=sys.stderr)
280+
sys.exit(1)
281+
print(f'Valid: {project[\"name\"]} ({len(functions)} function(s))')
282+
" || {
281283
echo "::error file=eclexiaiser.toml::Invalid eclexiaiser.toml — see step output for details"
282284
exit 1
283285
}

0 commit comments

Comments
 (0)