diff --git a/.github/workflows/check_dependencies.yml b/.github/workflows/build_and_run_tests.yml
similarity index 82%
rename from .github/workflows/check_dependencies.yml
rename to .github/workflows/build_and_run_tests.yml
index f8ac1f492..a5378353d 100644
--- a/.github/workflows/check_dependencies.yml
+++ b/.github/workflows/build_and_run_tests.yml
@@ -10,7 +10,7 @@ env:
   GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 
 jobs:
-  check-for-setup:
+  check-for-source:
     runs-on: ubuntu-latest
     name: Check if setup was changed
     outputs:
@@ -28,7 +28,7 @@ jobs:
         id: was_changed
         run: |
           for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
-            if [ `basename "${file}"` = "setup.py" ]; then
+            if [ `basename "${file}"` == "setup.py" ]; then
               echo ::set-output name=changed::"1"
             fi
           done
@@ -36,10 +36,10 @@ jobs:
   build-docker-containers:
     needs: check-for-setup
     if: (github.event_name == 'push') && (needs.check-for-setup.outputs.changed == '1')
-    uses: ./.github/workflows/build-docker-images.yml
+    uses: ./.github/workflows/build_docker_images.yml
     secrets: inherit
 
-  run-tests:
+  run-merge-tests:
     needs: build-docker-containers
     if: always()
-    uses: ./.github/workflows/on-merge.yml
\ No newline at end of file
+    uses: ./.github/workflows/run_merge_tests.yml
\ No newline at end of file
diff --git a/.github/workflows/build-docker-images.yml b/.github/workflows/build_docker_images.yml
similarity index 100%
rename from .github/workflows/build-docker-images.yml
rename to .github/workflows/build_docker_images.yml
diff --git a/.github/workflows/on-merge.yml b/.github/workflows/run_merge_tests.yml
similarity index 100%
rename from .github/workflows/on-merge.yml
rename to .github/workflows/run_merge_tests.yml
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index d39d36951..5d8ff0c1b 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,6 +1,13 @@
 name: Run Tests
 
-on: [pull_request]
+on:
+  pull_request:
+    paths:
+      - "src/**"
+      - "tests/**"
+      - ".github/**"
+      - "setup.py"
+    types: [opened, synchronize, reopened]
 
 env:
   HF_HOME: ~/hf_cache


Review comments: body: I feel this name should be `Checks if setup.py were changed`, as I can only see it checks that file.

And on merge event to `main`, it seems the tests are always run.
diff_hunk: @@ -10,9 +10,9 @@ env:
   GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 
 jobs:
-  check-for-setup:
+  check-for-source:
     runs-on: ubuntu-latest
-    name: Check if setup was changed
+    name: Checks if source code or tests were changed

Discussion: body: _The documentation is not available anymore as the PR was closed or merged._
body: So the purpose of `check-for-source` in `build_and_run_tests.yml` and `test.yml` are different?

- on PR request: check source file, and run the tests only if any changed found.
- on merge (to main): check `setup.py` to build the image if necessary. Then always run the tests?
body: I am probably wrong above, as I see you have `needs: build-docker-containers`. 
But I am confused a bit: currently (without this PR), what happens (on merge) if `setup.py` is not changed, but some `.py` files change?

I will review in more detail tomorrow.

body: @ydshieh if some `.py` was changed but not the setup then the tests are ran but Docker images won't be rebuilt
body: Thanks, @muellerzr . So in this PR, what happens (on merge) if no `.py` file changes at all (`setup.py` not change + no other `.py` change)? If I understand, the tests still run. Is this the expected behavior?
body: My only remaining question is as above: on merge, should we skip the tests if no `.py` file changes at all. Otherwise, all LGTM.
body: @ydshieh (sorry this got buried in my priorities):

Re: on merge, yes it is because we never know if some other dependency has a regression issue or what. So we're still made aware of when this happens post merge and can immediately know it's unrelated to something directly in that PR without it silently not failing until the nightlies