src/Pure/Admin/isabelle_cronjob.scala
changeset 67774 5437491732d2
parent 67772 71a318559e30
child 67775 8fe8424ff0d3
equal deleted inserted replaced
67773:4a7ed678785c 67774:5437491732d2
    21   val current_log = main_dir + Path.explode("run/main.log")  // owned by log service
    21   val current_log = main_dir + Path.explode("run/main.log")  // owned by log service
    22   val cumulative_log = main_dir + Path.explode("log/main.log")  // owned by log service
    22   val cumulative_log = main_dir + Path.explode("log/main.log")  // owned by log service
    23 
    23 
    24   val isabelle_repos_source = "https://isabelle.in.tum.de/repos/isabelle"
    24   val isabelle_repos_source = "https://isabelle.in.tum.de/repos/isabelle"
    25   val isabelle_repos = main_dir + Path.explode("isabelle")
    25   val isabelle_repos = main_dir + Path.explode("isabelle")
    26   val isabelle_repos_test = main_dir + Path.explode("isabelle-test")
       
    27   val afp_repos = main_dir + Path.explode("AFP")
    26   val afp_repos = main_dir + Path.explode("AFP")
    28 
    27 
    29   val build_log_dirs =
    28   val build_log_dirs =
    30     List(Path.explode("~/log"), Path.explode("~/afp/log"), Path.explode("~/cronjob/log"))
    29     List(Path.explode("~/log"), Path.explode("~/afp/log"), Path.explode("~/cronjob/log"))
    31 
    30 
    79   /* integrity test of build_history vs. build_history_base */
    78   /* integrity test of build_history vs. build_history_base */
    80 
    79 
    81   val build_history_base =
    80   val build_history_base =
    82     Logger_Task("build_history_base", logger =>
    81     Logger_Task("build_history_base", logger =>
    83       {
    82       {
    84         val hg =
    83         using(logger.ssh_context.open_session("lxbroy10"))(ssh =>
    85           Mercurial.setup_repository(
    84           {
    86             File.standard_path(isabelle_repos), isabelle_repos_test)
    85             val results =
    87         for {
    86               Build_History.remote_build_history(ssh,
    88           (result, log_path) <-
    87                 isabelle_repos,
    89             Build_History.build_history(logger.options, isabelle_repos_test,
    88                 isabelle_repos.ext("build_history_base"),
    90               rev = "build_history_base", fresh = true, build_args = List("HOL"))
    89                 isabelle_identifier = "cronjob_build_history",
    91         } {
    90                 self_update = true,
    92           result.check
    91                 rev = "build_history_base",
    93           File.move(log_path, logger.log_dir + log_path.base)
    92                 options = "-f",
    94         }
    93                 args = "HOL")
       
    94 
       
    95             for ((log_name, bytes) <- results) {
       
    96               Bytes.write(logger.log_dir + Path.explode(log_name), bytes)
       
    97             }
       
    98           })
    95       })
    99       })
    96 
   100 
    97 
   101 
    98   /* remote build_history */
   102   /* remote build_history */
    99 
   103 
   144     ssh_host: String = "",
   148     ssh_host: String = "",
   145     ssh_permissive: Boolean = false,
   149     ssh_permissive: Boolean = false,
   146     proxy_host: String = "",
   150     proxy_host: String = "",
   147     proxy_user: String = "",
   151     proxy_user: String = "",
   148     proxy_port: Int = 0,
   152     proxy_port: Int = 0,
   149     remote_home: Boolean = true,  // false for lxbroy/homebroy
   153     remote_home: Boolean = false,
   150     historic: Boolean = false,
   154     historic: Boolean = false,
   151     history: Int = 0,
   155     history: Int = 0,
   152     history_base: String = "build_history_base",
   156     history_base: String = "build_history_base",
   153     options: String = "",
   157     options: String = "",
   154     args: String = "",
   158     args: String = "",
   506     run(main_start_date,
   510     run(main_start_date,
   507       Logger_Task("isabelle_cronjob", logger =>
   511       Logger_Task("isabelle_cronjob", logger =>
   508         run_now(
   512         run_now(
   509           SEQ(List(
   513           SEQ(List(
   510             init,
   514             init,
       
   515             build_history_base,
   511             PAR(
   516             PAR(
   512               SEQ(List(build_release, build_history_base)) ::
   517               build_release ::
   513               List(remote_builds1, remote_builds2).map(remote_builds =>
   518               List(remote_builds1, remote_builds2).map(remote_builds =>
   514               SEQ(List(
   519               SEQ(List(
   515                 PAR(remote_builds.map(_.filter(_.active)).map(seq =>
   520                 PAR(remote_builds.map(_.filter(_.active)).map(seq =>
   516                   SEQ(
   521                   SEQ(
   517                     for {
   522                     for {