diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index f3cd128a..1368d1bc 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -11,10 +11,17 @@ jobs:
   check:
     name: Check
     runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        rust: [stable, msrv]
     steps:
       - name: Checkout sources
         uses: actions/checkout@v3
 
+      - name: Use MSRV rust toolchain
+        if: matrix.rust == 'msrv'
+        run: cp .github/workflows/msrv-rust-toolchain.toml rust-toolchain.toml
+
       - name: Install stable toolchain
         uses: helix-editor/rust-toolchain@v1
         with:
@@ -50,8 +57,8 @@ jobs:
         uses: actions/cache@v3
         with:
           path: runtime/grammars
-          key: ${{ runner.os }}-v2-tree-sitter-grammars-${{ hashFiles('languages.toml') }}
-          restore-keys: ${{ runner.os }}-v2-tree-sitter-grammars-
+          key: ${{ runner.os }}-stable-v${{ env.CACHE_VERSION }}-tree-sitter-grammars-${{ hashFiles('languages.toml') }}
+          restore-keys: ${{ runner.os }}-stable-v${{ env.CACHE_VERSION }}-tree-sitter-grammars-
 
       - name: Run cargo test
         uses: actions-rs/cargo@v1
diff --git a/.github/workflows/msrv-rust-toolchain.toml b/.github/workflows/msrv-rust-toolchain.toml
new file mode 100644
index 00000000..958edb45
--- /dev/null
+++ b/.github/workflows/msrv-rust-toolchain.toml
@@ -0,0 +1,3 @@
+[toolchain]
+channel = "1.60.0"
+components = ["rustfmt", "rust-src"]