Skip to content
Snippets Groups Projects
This project is mirrored from https://git.savannah.gnu.org/git/guix/guix-cuirass.git/. Pull mirroring updated .
  1. Sep 17, 2020
  2. Sep 16, 2020
    • Mathieu Othacehe's avatar
      metrics: Add evaluation related metrics. · 78de0da8
      Mathieu Othacehe authored
      * src/cuirass/metrics.scm (db-average-build-start-time-per-eval,
      db-average-build-complete-time-per-eval, db-evaluation-completion-speed,
      db-latest-evaluations): New procedures.
      (%metrics): Add 'average-eval-build-start-time,
      'average-eval-build-complete-time, 'evaluation-completion-speed.
      (db-update-metrics): Update evaluation related metrics for the evaluations
      added the past three days.
      * tests/metrics.scm ("average-eval-build-start-time",
      "average-eval-build-complete-time", "evaluation-completion-speed"): Add new
      tests.
      78de0da8
    • Mathieu Othacehe's avatar
      Log metrics update duration. · 822dbb36
      Mathieu Othacehe authored
      * bin/cuirass.in (main): Log metrics update duration.
      822dbb36
  3. Sep 15, 2020
    • Mathieu Othacehe's avatar
      tests: Improve metrics testing. · 8fc4794b
      Mathieu Othacehe authored
      * tests/metrics.scm (nearest-exact-integer): Remove as unused.
      ("db-update-metrics"): Test that 'pending-builds metric is updated on
      "db-update-metrics" call.
      8fc4794b
    • Mathieu Othacehe's avatar
      Add metrics testing. · 76427483
      Mathieu Othacehe authored
      * tests/metrics.scm: New file.
      * Makefile.am (TESTS): Add it.
      76427483
    • Mathieu Othacehe's avatar
      metrics: Add 'percentage-failed-eval-per-spec support. · f3ab04ae
      Mathieu Othacehe authored
      * src/cuirass/metrics.scm (db-percentage-failed-eval-per-spec): New procedure.
      (%metrics): Add 'percentage-failure-10-last-eval-per-spec,
      'percentage-failure-100-last-eval-per-spec and
      'percentage-failed-eval-per-spec metrics.
      (db-update-metrics): Add them.
      * src/cuirass/templates.scm (global-metrics-content): Add
      "percentage-failed-eval" argument. Use it to display the "percentage of failed
      evaluations" table.
      * src/cuirass/templates.scm (url-handler): Adapt accordingly.
      f3ab04ae
    • Mathieu Othacehe's avatar
      metrics: Fix db-average-eval-duration-per-spec. · ad3c6035
      Mathieu Othacehe authored
      * src/cuirass/metrics.scm (db-average-eval-duration-per-spec): Order results
      by descending rowid and adjust docstring.
      ad3c6035
    • Mathieu Othacehe's avatar
      metrics: Warn about metric insertion. · c5a97586
      Mathieu Othacehe authored
      * src/cuirass/metrics.scm: Add a warning about metric insertion in %metrics
      list.
      c5a97586
    • Mathieu Othacehe's avatar
      metrics: Add 'new-derivations-per-day support. · 97ec7a2d
      Mathieu Othacehe authored
      * src/cuirass/metrics.scm (db-new-derivations-previous-day): New procedure.
      (%metrics): Add 'new-derivations-per-day.
      (db-update-metrics): Add it.
      * src/cuirass/templates.scm (make-line-chart): Add support for multiple
      datasets. Also add "interpolation?" and "legend?" options.
      (global-metrics-content): Add "new-derivations-per-day" argument. Adapt
      "Builds per day" chart so that it uses two datasets from
      'new-derivations-per-day and 'builds-per-day metrics.
      * src/cuirass/templates.scm (url-handler): Adapt accordingly.
      97ec7a2d
    • Mathieu Othacehe's avatar
      metrics: Change 'builds-per-day computation. · d0a2235e
      Mathieu Othacehe authored
      * src/cuirass/metrics.scm (db-builds-previous-day): Only take into account the
      builds that are created and processed during the previous day.
      d0a2235e
    • Mathieu Othacehe's avatar
      metrics: Add pending builds support. · f011d874
      Mathieu Othacehe authored
      * src/cuirass/metrics.scm (db-pending-builds, db-current-day-timestamp): New
      procedures.
      (%metrics): Add 'pending-builds.
      (db-update-metrics): Add it.
      * src/cuirass/templates.scm (global-metrics-content): Add "pending-builds"
      argument. Display pending builds in a line chart.
      * src/cuirass/http.scm (url-handler): Adapt "global-metrics-content" call
      accordingly.
      f011d874
    • Mathieu Othacehe's avatar
      Do not override onload callback. · 21a9b2b3
      Mathieu Othacehe authored
      * src/cuirass/templates.scm (make-line-chart): Do not override onload callback
      as that would prevent us from adding multiple charts.
      21a9b2b3
    • Mathieu Othacehe's avatar
      metrics: Rename 'builds-previous-day to 'builds-per-day. · 5a947e18
      Mathieu Othacehe authored
      * src/cuirass/metrics.scm (%metrics): Rename 'builds-previous-day to
      'builds-per-day.
      (db-update-metrics): Adapt accordingly.
      * src/cuirass/http.scm (url-handler): Ditto.
      5a947e18
    • Mathieu Othacehe's avatar
      metrics: Order by descending rowid by default. · cd2d2512
      Mathieu Othacehe authored
      * src/cuirass/metrics.scm (db-get-metrics-with-id): Order by descending rowid
      by default.
      * src/cuirass/http.scm (url-handler): Use the default order for
      "db-get-metrics-with-id".
      cd2d2512
  4. Sep 14, 2020
    • Mathieu Othacehe's avatar
      Add metrics support. · cf11b73d
      Mathieu Othacehe authored
      * Makefile.am: Add "upgrade-11.sql", "chart.js" and "metrics.js".
      * bin/cuirass.in (main): Add 'metrics fiber.
      * src/cuirass/http.scm (%file-white-list): Add "js/chart.js".
      (url-handler): Add "/metrics" route.
      * src/cuirass/metrics.scm: New file.
      * src/cuirass/templates.scm (html-page): Add a "Global metrics" sub-menu to
      "Status" dropdown menu.
      (make-line-chart, global-metrics-content): New procedures.
      * src/schema.sql (Metrics): New table.
      * src/sql/upgrade-11.sql: New file.
      * src/static/js/chart.js: New file.
      cf11b73d
    • Mathieu Othacehe's avatar
      database: Export procedures. · 43ed8547
      Mathieu Othacehe authored
      * src/cuirass/database.scm (last-insert-rowid, expect-one-row, %sqlite-exec):
      Export them.
      43ed8547
  5. Sep 10, 2020
    • Mathieu Othacehe's avatar
      Add missing SQL upgrade files. · 713a914e
      Mathieu Othacehe authored
      * Makefile.am (dist_sql_DATA): Add upgrade-9.sql and upgrade-10.sql.
      713a914e
    • Mathieu Othacehe's avatar
      tests: Fix HTTP tests. · 00c7b4bb
      Mathieu Othacehe authored
      This is a follow-up of 154232bc.
      
      * tests/http.scm (evaluations-query-result): Add 'timestamp', 'checkouttime'
      and 'evaltime' fields.
      (fill-db): Pass a matching timestamp to "db-add-evaluation" calls.
      00c7b4bb
    • Mathieu Othacehe's avatar
      Add a status field to Evaluation table. · f5b0d393
      Mathieu Othacehe authored
      The Evaluation table currently has an 'in_progress' field. Distinction between
      succeeded and failed evaluations are based on the presence of Builds records
      for the evaluation. It it also not possible to distinguish aborted evaluations
      from failed evaluations.
      
      Rename 'in_progress' field to 'status'. The 'status' field can be equal to
      'started', 'succeeded', 'failed' or 'aborted'.
      
      * src/cuirass/database.scm (evaluation-status): New exported enumeration.
      (db-set-evaluations-done, db-set-evaluation-done): Remove them.
      (db-abort-pending-evaluations, db-set-evaluation-status): New exported procedures.
      (db-add-evaluation, db-get-builds, db-get-evaluations,
      db-get-evaluations-build-summary, db-get-evaluation-summary): Adapt to use
      'status' field instead of 'in_progress' field.
      * src/cuirass/templates.scm (evaluation-badges): Ditto.
      * src/schema.sql (Evaluations): Rename 'in_progress' field to 'status'.
      * src/sql/upgrade-10.sql: New file.
      * bin/cuirass.in (main): Use "db-abort-pending-evaluations" instead of
      "db-set-evaluations-done".
      * src/cuirass/base.scm (evaluate): Use "db-set-evaluation-status" instead of
      "db-set-evaluations-done".
      (build-packages): Use "db-set-evaluation-status" instead of
      "db-set-evaluation-done".
      * tests/database.scm (sqlite-exec): Adapt accordingly.
      * tests/http.scm (evaluations-query-result): Ditto.
      f5b0d393
  6. Sep 07, 2020
    • Mathieu Othacehe's avatar
      Do not use commit time as checkout timestamp. · af12a805
      Mathieu Othacehe authored
      Commit time can be far away from the actual push time. Thus, use the checkout
      time instead of the commit time to fill Checkouts 'timestamp' field.
      
      * src/cuirass/base.scm (fetch-input): Return the checkout time instead of the
      commit time.
      af12a805
  7. Sep 06, 2020
    • Mathieu Othacehe's avatar
      Handle evaluations without timestamp. · 33798abc
      Mathieu Othacehe authored
      This is a follow-up of d9879583.
      
      * src/cuirass/templates.scm (evaluation-build-table): Do not print evaluation
      date if the "timestamp" field equals zero.
      33798abc
    • Mathieu Othacehe's avatar
      Display evaluation date and duration. · d9879583
      Mathieu Othacehe authored
      src/cuirass/database.scm (db-get-evaluations): Add support for "timestamp",
      "checkouttime" and "evaltime" fields,
      (db-get-evaluation-summary): ditto.
      src/cuirass/templates.scm (nearest-exact-integer, seconds->string): New
      procedures,
      (evaluation-build-table): print evaluation date and duration.
      d9879583
    • Mathieu Othacehe's avatar
      Save evaluations and checkouts timestamps. · 154232bc
      Mathieu Othacehe authored
      src/cuirass/base.scm (fetch-input): Add the commit timestamp to the returned
      association list,
      (process-specs): Pass a timestamp taken at procedure start and another one
      taken after inputs are fetched to "db-add-evaluation" procedure. Once the
      evaluation is over, call "db-set-evaluation-time" to save the evaluation
      completion time.
      src/cuirass/database.scm (db-set-evaluation-time): New procedure,
      (db-add-checkout): Handle the "timestamp" field,
      (db-add-evaluation): add "checkouttime" and "evaltime" arguments. Modify the
      associated SQL query accordingly.
      (db-get-builds): Use "Builds.timestamp" instead of "timestamp" as this field
      is also part of the Evaluations table.
      src/schema.sql (Checkouts): Add "timestamp" field,
      (Evaluations): add "timestamp", "checkouttime" and "evaltime" fields.
      src/sql/upgrade-9.sql: New file.
      tests/database.scm (sqlite-exec): Adapt Evaluations table insertions to include
      "timestamp", "checkouttime" and "evaltime" required fields.
      154232bc
  8. Sep 02, 2020
    • Mathieu Othacehe's avatar
      Fix /specifications route. · b135a02b
      Mathieu Othacehe authored
      Fixes <https://issues.guix.gnu.org/43163>.
      
      * src/cuirass/http.scm (specification->json-object): New procedure,
      (url-handler): use it for "/specifications" route to convert specification
      objects into a representation suitable for json->scm.
      * tests/http.scm ("/specifications"): Test the above route.
      b135a02b
  9. Aug 25, 2020
  10. Aug 05, 2020
    • Mathieu Othacehe's avatar
      web: server: Remove with-ignored-disconnects. · 1bcccbab
      Mathieu Othacehe authored
      Use the pre-unwind-handler of a catch clause instead of nesting
      with-throw-handler inside a catch clause.
      
      * src/web/server/fiberized.scm (with-ignored-disconnects): Remove it,
      (client-loop): replace "with-ignored-disconnects" with a catch clause.
      1bcccbab
  11. Aug 04, 2020
    • Mathieu Othacehe's avatar
      web: server: Ignore all client disconnects. · 0abf1920
      Mathieu Othacehe authored
      EPIPE and ECONNRESET errors are already ignored when thrown by "sendfile" and
      "put-bytevector" procedures. It turns out "peek-char" can also cause such
      errors. So ignore such errors within the whole procedure.
      
      * src/web/server/fiberized.scm (client-loop): Wrap the whole procedure inside
      "with-ignored-disconnects" instead of wrapping individually "sendfile" and
      "put-bytevector" calls.
      0abf1920
  12. Aug 03, 2020
Loading