ci: Run `check_docs` when code changes (#43188)

Ben Kunkle created

Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Change summary

.github/workflows/run_tests.yml                | 2 +-
tooling/xtask/src/tasks/workflows.rs           | 3 +++
tooling/xtask/src/tasks/workflows/run_tests.rs | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)

Detailed changes

.github/workflows/run_tests.yml 🔗

@@ -47,7 +47,7 @@ jobs:
         }
 
         check_pattern "run_action_checks" '^\.github/(workflows/|actions/|actionlint.yml)|tooling/xtask|script/' -qP
-        check_pattern "run_docs" '^docs/' -qP
+        check_pattern "run_docs" '^(docs/|crates/.*\.rs)' -qP
         check_pattern "run_licenses" '^(Cargo.lock|script/.*licenses)' -qP
         check_pattern "run_nix" '^(nix/|flake\.|Cargo\.|rust-toolchain.toml|\.cargo/config.toml)' -qP
         check_pattern "run_tests" '^(docs/|script/update_top_ranking_issues/|\.github/(ISSUE_TEMPLATE|workflows/(?!run_tests)))' -qvP

tooling/xtask/src/tasks/workflows.rs 🔗

@@ -23,6 +23,9 @@ mod vars;
 pub struct GenerateWorkflowArgs {}
 
 pub fn run_workflows(_: GenerateWorkflowArgs) -> Result<()> {
+    if !Path::new("crates/zed/").is_dir() {
+        anyhow::bail!("xtask workflows must be ran from the project root");
+    }
     let dir = Path::new(".github/workflows");
 
     let workflows = vec![

tooling/xtask/src/tasks/workflows/run_tests.rs 🔗

@@ -25,7 +25,7 @@ pub(crate) fn run_tests() -> Workflow {
         "run_tests",
         r"^(docs/|script/update_top_ranking_issues/|\.github/(ISSUE_TEMPLATE|workflows/(?!run_tests)))",
     );
-    let should_check_docs = PathCondition::new("run_docs", r"^docs/");
+    let should_check_docs = PathCondition::new("run_docs", r"^(docs/|crates/.*\.rs)");
     let should_check_scripts = PathCondition::new(
         "run_action_checks",
         r"^\.github/(workflows/|actions/|actionlint.yml)|tooling/xtask|script/",