diff --git a/.circleci/config.yml b/.circleci/config.yml
index 049aaf365c32e3851e6381c32f2690c92b826d00..df8306ac97bde71e90db682392898687b5d3b6b3 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -159,6 +159,7 @@ jobs:
           command: |
             nix-env -iA nixpkgs.cachix
             cachix use "${CACHIX_NAME}"
+            nix path-info --all > /tmp/store-path-pre-build
 
       - "checkout"
 
@@ -178,8 +179,14 @@ jobs:
             nix-build \
               --argstr hypothesisProfile ci \
               --arg collectCoverage true \
-              --attr doc |
-              cachix push "${CACHIX_NAME}"
+              --attr doc
+
+      - run:
+          name: "Push to Cachix"
+          when: "always"
+          command: |
+            # https://docs.cachix.org/continuous-integration-setup/circleci.html
+            bash -c "comm -13 <(sort /tmp/store-path-pre-build | grep -v '\.drv$') <(nix path-info --all | grep -v '\.drv$' | sort) | cachix push $CACHIX_NAME"
 
       - run:
           name: "Report Coverage"