diff --git a/.github/workflows/governance.yml b/.github/workflows/governance.yml index 57efc3b..25c7b9e 100644 --- a/.github/workflows/governance.yml +++ b/.github/workflows/governance.yml @@ -4,7 +4,7 @@ on: push: branches: [main] pull_request: - branches: [main] + branches: [main, dev] workflow_dispatch: permissions: diff --git a/.github/workflows/wfl-tests.yml b/.github/workflows/wfl-tests.yml index 2046718..17cd6b1 100644 --- a/.github/workflows/wfl-tests.yml +++ b/.github/workflows/wfl-tests.yml @@ -4,7 +4,7 @@ on: push: branches: [main] pull_request: - branches: [main] + branches: [main, dev] workflow_dispatch: permissions: diff --git a/testing.md b/testing.md index f44245a..ae44939 100644 --- a/testing.md +++ b/testing.md @@ -256,8 +256,8 @@ keyboard behavior, or data integrity. checks on Blacksmith Linux and GitHub-hosted Windows. [WFL tests](.github/workflows/wfl-tests.yml) runs the complete WFL suite via `wfl --execution-timeout 1200 scripts/run_tests.wfl` on -`blacksmith-2vcpu-ubuntu-2404`. Both workflows run for pushes and pull requests to -`main` and support manual dispatch. +`blacksmith-2vcpu-ubuntu-2404`. Both workflows run for pushes to `main`, pull requests to `main` and `dev`, +and manual dispatch. WFL tests pulls `bsbyrdwfl/wfl:nightly` from Docker Hub for every run, resolves the image digest, and uses that immutable image for that run's runtime checks. diff --git a/tests/tooling/ci_targets.test.wfl b/tests/tooling/ci_targets.test.wfl new file mode 100644 index 0000000..7ab5a2c --- /dev/null +++ b/tests/tooling/ci_targets.test.wfl @@ -0,0 +1,20 @@ +// Keep dev PR coverage while preserving the main-only push boundary. +include from "../../scripts/test_support.wfl" + +store repo_root as path_dirname of (path_dirname of script_directory) + +describe "Governance rollout CI targets": + test "both workflows admit dev PRs without broadening push events": + for each workflow_name in ["governance.yml", "wfl-tests.yml"]: + store workflow_path as path_join of repo_root and ".github/workflows" and workflow_name + store raw_workflow as test_read_text of workflow_path + // Windows checkout uses CRLF; event semantics do not depend on EOL. + store workflow_text as "" + for each text_fragment in (split raw_workflow by "\r"): + change workflow_text to workflow_text with text_fragment + end for + expect workflow_text to contain " pull_request:\n branches: [main, dev]" + expect workflow_text to contain " push:\n branches: [main]\n" + end for + end test +end describe