9224: Update each TimestampFile after upload.
[arvados-dev.git] / jenkins / run_upload_packages.py
index f7ddf7f5a27bbf3132452a681cbe029a781cfd86..62e571639d892999c7cd608d5817d1f8abc752bd 100755 (executable)
@@ -137,7 +137,7 @@ class DistroPackageSuite(PackageSuite):
 
     def upload_files(self, paths):
         cmd = self._build_cmd('scp', *paths)
-        cmd.append('{self.ssh_host}:{self.REMOTE_DEST_DIR}'.format(self=self))
+        cmd.append('{self.ssh_host}:{self.REMOTE_DEST_DIR}/{self.target}'.format(self=self))
         subprocess.check_call(cmd)
 
 
@@ -146,7 +146,7 @@ class DebianPackageSuite(DistroPackageSuite):
 cd "$1"; shift
 DISTNAME=$1; shift
 freight add "$@" "apt/$DISTNAME"
-freight cache
+freight cache "apt/$DISTNAME"
 rm "$@"
 """
     TARGET_DISTNAMES = {
@@ -157,7 +157,7 @@ rm "$@"
         }
 
     def post_uploads(self, paths):
-        self._run_script(self.FREIGHT_SCRIPT, self.REMOTE_DEST_DIR,
+        self._run_script(self.FREIGHT_SCRIPT, self.REMOTE_DEST_DIR + '/' + self.target,
                          self.TARGET_DISTNAMES[self.target],
                          *self._paths_basenames(paths))
 
@@ -178,7 +178,7 @@ createrepo "$REPODIR"
     def post_uploads(self, paths):
         repo_dir = os.path.join(self.REPO_ROOT,
                                 self.TARGET_REPODIRS[self.target])
-        self._run_script(self.CREATEREPO_SCRIPT, self.REMOTE_DEST_DIR,
+        self._run_script(self.CREATEREPO_SCRIPT, self.REMOTE_DEST_DIR + '/' + self.target,
                          repo_dir, *self._paths_basenames(paths))
 
 
@@ -189,10 +189,15 @@ PACKAGE_SUITES = {
     'python': _define_suite(PythonPackageSuite,
                             'sdk/pam/dist/*.tar.gz',
                             'sdk/python/dist/*.tar.gz',
+                            'sdk/cwl/dist/*.tar.gz',
                             'services/nodemanager/dist/*.tar.gz',
                             'services/fuse/dist/*.tar.gz',
                         ),
-    'gems': _define_suite(GemPackageSuite, 'sdk/ruby/*.gem', 'sdk/cli/*.gem'),
+    'gems': _define_suite(GemPackageSuite,
+                          'sdk/ruby/*.gem',
+                          'sdk/cli/*.gem',
+                          'services/login-sync/*.gem',
+                      ),
     }
 for target in ['debian7', 'debian8', 'ubuntu1204', 'ubuntu1404']:
     PACKAGE_SUITES[target] = _define_suite(
@@ -257,12 +262,12 @@ def build_suite_and_upload(target, since_timestamp, args):
 def main(arguments, stdout=sys.stdout, stderr=sys.stderr):
     args = parse_arguments(arguments)
     setup_logger(stderr, args)
-    ts_file = TimestampFile(os.path.join(args.workspace, 'packages',
-                                         '.last_upload'))
-    last_upload_ts = ts_file.last_upload()
     for target in args.targets:
+        ts_file = TimestampFile(os.path.join(args.workspace, 'packages',
+                                             '.last_upload_%s' % target))
+        last_upload_ts = ts_file.last_upload()
         build_suite_and_upload(target, last_upload_ts, args)
-    ts_file.update()
+        ts_file.update()
 
 if __name__ == '__main__':
     main(sys.argv[1:])