diff --git a/.appveyor.yml b/.appveyor.yml
index 7cc86004bf5a58ec498894d1f60042b15f5cef2a..690f93e5b66c9575d456a86d2d7a2668b8070e17 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -57,5 +57,16 @@ test_script:
     }
 
 on_failure:
+- ps: >-
+    if ($env:compiler -eq "mingw") {
+            $oldpath = ${env:Path} -split ';'
+            $buildpath = @("C:\msys64\usr\bin") + $oldpath
+            $env:Path = @($buildpath) -join ';'
+            Set-Location "${env:build}"
+            Execute-Bash "7z a logs.zip config.log || true"
+            Execute-Bash "7z a logs.zip test-suite.log || true"
+            Execute-Bash "appveyor PushArtifact logs.zip || true"
+            Execute-Bash "tail -1000 config.log || true"
+            Execute-Bash "cat test-suite.log || true"
+    }
 - cmd: C:\Python27\python.exe %APPVEYOR_BUILD_FOLDER%\scripts\test\appveyor-irc-notify.py irc.oftc.net:6697 tor-ci failure
-
diff --git a/changes/ticket27430 b/changes/ticket27430
new file mode 100644
index 0000000000000000000000000000000000000000..4e016e91e7594ed7e8f67936fb060700751b0528
--- /dev/null
+++ b/changes/ticket27430
@@ -0,0 +1,4 @@
+  o Minor features (continuous integration):
+    - Show config.log and test-suite.log after failed Appveyor builds.
+      Also upload the zipped full logs as a build artifact.
+      Implements ticket 27430.