workflow-embedded-program
DevOps execution block embeds program logic
Why
Programs embedded in deployment and build configuration bypass the normal language lint, type and local test boundaries. Simple sequences of existing commands are orchestration; executable logic belongs under the normal language tooling.
Fix
Reuse existing native commands or workflow steps. Keep control flow and inline interpreter source in maintained, linted repository code; avoid wrapper scripts solely to rearrange commands.
Examples
jobs: build: steps: - run: | bash -s fixture-data <<'SOURCE' printf fixture SOURCEjobs: build: steps: - run: bash scripts/check.sh fixture-dataservices: app: image: fixture healthcheck: disable: false test: [CMD-SHELL, "printf first && printf second"]services: app: image: fixture healthcheck: disable: "true" test: [CMD-SHELL, "printf first && printf second"]CMD = python3 scripts/check.pyall: CMD = python3 -c 'print(1)'all: @$(CMD)CMD = python3 -c 'print(1)'all: CMD = python3 scripts/check.pyall: @$(CMD)[vars]text = '''run = "printf inert; printf data"'''
[tasks.probe]"run" = "printf first && printf second"[vars]text = '''run = "printf inert; printf data"'''
[tasks.probe]"run" = "printf public-marker"jobs: test: steps: - run: | uv run ruff check . python3 -c 'print(1)'jobs: test: steps: - run: | uv run ruff check . uv run pytestjobs: test: steps: - run: | for package in api worker; do make test-package PACKAGE="$package" donejobs: test: steps: - run: | MODE=test python3 scripts/check.py --target "$TARGET"Files
**/*.{yaml,yml,toml}**/Dockerfile***/*.Dockerfile**/[Mm]akefile**/GNUmakefile