diff --git a/vars/functions.groovy b/vars/functions.groovy
index 5404f46..f31d9d9 100644
--- a/vars/functions.groovy
+++ b/vars/functions.groovy
@@ -54,12 +54,11 @@
 def uploadAllGeneratedPackages(repoType, boardName, packageNames, includeSources = true) {
     def outPath = repoType
     def repoName = nameFromRepoType(repoType, boardName)
+    def packageFilenames = []
 
     echo "Packages to upload are: ${packageNames}"
-    for (packageName in packageNames) {
-        def date = new Date()
-        String stamp = date.format("yyyyMMdd-HHmmss")
 
+    for (packageName in packageNames) {
         def packages = findFiles(glob: "out/**/${packageName}*.deb")
         def sources  = []
 
@@ -68,15 +67,21 @@
         }
         
         def filenames = (packages + sources).each{entry -> entry.path}
+        packageFilenames += filenames
+    }
 
-        if (filenames.size() == 0) {
-            error 'No packages were generated! Assuming failed build.'
-        }
 
-        sh """
-           aptly task run repo add -force-replace unstable-${repoName} ${filenames.join(' ')}, \
-                          snapshot create unstable-${repoName}-${stamp} from repo unstable-${repoName}
-           """
+    if (packageFilenames.size() == 0) {
+        error 'No packages were found! Assuming failed build.'
+    }
+
+    def date = new Date()
+    String stamp = date.format("yyyyMMdd-HHmmss")
+
+    sh """
+       aptly task run repo add -force-replace unstable-${repoName} ${packageFilenames.join(' ')}, \
+                      snapshot create unstable-${repoName}-${stamp} from repo unstable-${repoName}
+       """
     }
 }
 
