diff --git a/.cirrus.yml b/.cirrus.yml
index bc04b2a15f..787a4249cb 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -585,6 +585,9 @@ local_integration_test_task: &local_integration_test_task
         ginkgo_node_logs_artifacts:
             path: ./test/e2e/ginkgo-node-*.log
             type: text/plain
+        ginkgo_json_artifacts:
+            path: ./ginkgo-e2e.json
+            type: application/json
 
 
 # Nearly identical to `local_integration_test` except all operations
diff --git a/Makefile b/Makefile
index 3df3b56f60..dcd1cd10b5 100644
--- a/Makefile
+++ b/Makefile
@@ -558,7 +558,7 @@ test: localunit localintegration remoteintegration localsystem remotesystem  ##
 .PHONY: ginkgo-run
 ginkgo-run: .install.ginkgo
 	$(GINKGO) version
-	$(GINKGO) -vv $(TESTFLAGS) --tags "$(TAGS) remote" $(GINKGOTIMEOUT) --flake-attempts 3 --trace --no-color $(if $(findstring y,$(GINKGO_PARALLEL)),-p,) $(GINKGOWHAT) $(HACK)
+	$(GINKGO) -vv $(TESTFLAGS) --tags "$(TAGS) remote" $(GINKGOTIMEOUT) --flake-attempts 3 --trace --no-color --json-report ginkgo-e2e.json $(if $(findstring y,$(GINKGO_PARALLEL)),-p,) $(GINKGOWHAT) $(HACK)
 
 .PHONY: ginkgo
 ginkgo: