diff --git a/.github/workflows/test-builds.yml b/.github/workflows/test-builds.yml
new file mode 100644
index 0000000000..db5c5ab701
--- /dev/null
+++ b/.github/workflows/test-builds.yml
@@ -0,0 +1,102 @@
+#
+# test-builds.yml
+# Do test builds to catch compile errors
+#
+
+name: CI
+
+on:
+  pull_request:
+    branches:
+    - bugfix-2.0.x
+    - dev-2.1.x
+    paths-ignore:
+    - config/**
+    - data/**
+    - docs/**
+    - '**/*.md'
+
+jobs:
+  test_builds:
+
+    runs-on: ubuntu-latest
+
+    strategy:
+      matrix:
+        test-platform:
+        # Base Environments
+
+        - DUE
+        - esp32
+        - linux_native
+        - megaatmega2560
+        - teensy31
+        - teensy35
+
+        # Extended AVR Environments
+
+        - FYSETC_F6_13
+        - megaatmega1280
+        - rambo
+        - sanguino_atmega1284p
+        - sanguino_atmega644p
+
+        # Extended STM32 Environments
+
+        - STM32F103RC_bigtree
+        - STM32F103RC_bigtree_USB
+        - STM32F103RE_bigtree
+        - STM32F103RE_bigtree_USB
+        - STM32F103RC_fysetc
+        - jgaurora_a5s_a1
+        - STM32F103VE_longer
+        - STM32F407VE_black
+        - BIGTREE_SKR_PRO
+        - mks_robin
+        - ARMED
+
+        # Put lengthy tests last
+
+        - LPC1768
+        - LPC1769
+
+        # STM32 with non-STM framework. both broken for now. they should use HAL_STM32 which is working.
+
+        #- STM32F4
+        #- STM32F7
+
+        # Non-working environment tests
+
+        #- BIGTREE_BTT002
+        #- at90usb1286_cdc
+        #- at90usb1286_dfu
+        #- STM32F103CB_malyan
+        #- mks_robin_lite
+        #- mks_robin_mini
+        #- mks_robin_nano
+        #- SAMD51_grandcentral_m4
+
+    steps:
+
+    - name: Select Python 3.7
+      uses: actions/setup-python@v1
+      with:
+        python-version: '3.7' # Version range or exact version of a Python version to use, using semvers version range syntax.
+        architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
+
+    - name: Install PlatformIO
+      run: |
+        pip install -U https://github.com/platformio/platformio-core/archive/master.zip
+        platformio update
+
+    - name: Check out the PR
+      uses: actions/checkout@v2
+
+    - name: Run ${{ matrix.test-platform }} Tests
+      run: |
+        # Inline tests script
+        [[ "$GITHUB_REPOSITORY" == "MarlinFirmware/Marlin" ]] || exit 0
+        chmod +x buildroot/bin/*
+        chmod +x buildroot/share/tests/*
+        export PATH=./buildroot/bin/:./buildroot/share/tests/:${PATH}
+        run_tests . ${{ matrix.test-platform }}