diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml
index 6247c69..1c4fd2c 100644
--- a/.github/workflows/publish-docs.yml
+++ b/.github/workflows/publish-docs.yml
@@ -18,10 +18,13 @@ jobs:
         with:
           fetch-depth: 0
       - name: Install mkdocs
+        uses: actions/setup-python@v3
+        with:
+          python-version: '3.10'
+          cache: 'pip'
+          cache-dependency-path: |
+            docs-requirements.txt
         run: |
-          pip install \
-            mkdocs \
-            mkdocs-material \
-            md-toc
+          pip install -r docs-requirements.txt
       - name: Generate docs
-        run: mkdocs gh-deploy --strict
\ No newline at end of file
+        run: mkdocs gh-deploy --strict
diff --git a/docs-requirements.txt b/docs-requirements.txt
new file mode 100644
index 0000000..3a0104e
--- /dev/null
+++ b/docs-requirements.txt
@@ -0,0 +1,3 @@
+mkdocs
+mkdocs-material
+md-toc