Skip to content
Snippets Groups Projects
  1. Feb 19, 2024
    • Dylan Aïssi's avatar
      Add a new ignorelist for mismatch between OBS and git · e1bcd613
      Dylan Aïssi authored and Walter Lozano's avatar Walter Lozano committed
      
      Sometimes, we need to backport a package version to a previous
      Apertis release. But, a fast-forward backport is not always
      possible as some changes may have occurred that are not suitable
      for previous Apertis releases (like a change in debian/apertis/component
      or debian/apertis/copyright needs to be refreshed with a different
      version or the toolchain). In order to keep the git history linear,
      while doing the backport, unsuitable changes are reverted and a
      suffix like "~v2023" is used for versioning.
      
      Because this unsual workflow is a bit tricky, it's not possible
      to teach the dashboard about this suffix which makes it complaning
      for "Mismatch between OBS XXX~v2023 and Git XXX".
      
      Signed-off-by: default avatarDylan Aïssi <dylan.aissi@collabora.com>
      e1bcd613
  2. Feb 16, 2024
  3. Jan 30, 2024
  4. Jan 24, 2024
  5. Jan 23, 2024
  6. Jan 22, 2024
  7. Jan 18, 2024
  8. Jan 17, 2024
  9. Jan 16, 2024
    • Walter Lozano's avatar
      Add whitelist to ignore missing binaries · 2c2f034f
      Walter Lozano authored
      
      In Apertis is very common to disable the build of some binaries to avoid
      license issues, reduce the number of dependencies or disable unsupported
      architectures. To do it, usually d/rules is tweak to skip some binary
      packages. However, this approach makes dashboard to complain about missing
      binaries.
      
      A possible approach could be to remove the binary packages from d/control
      but this approach adds more delta.
      
      To avoid getting a wrong idea of status of the packages, ignore this issue
      for the packages we know we tweaked.
      
      The approach of using wildcards to reduce the number of entries was discussed
      however, to improve readability and to avoid extra complexity while checking
      the idea was discarded.
      
      Signed-off-by: default avatarWalter Lozano <walter.lozano@collabora.com>
      2c2f034f
  10. Dec 07, 2023
  11. Nov 27, 2023
  12. Nov 21, 2023
  13. Nov 17, 2023
  14. Nov 16, 2023
  15. Nov 10, 2023
  16. Nov 04, 2023
    • Walter Lozano's avatar
      Switch to lightweight runners · a122dd3e
      Walter Lozano authored
      
      After switching to use JSON as format for the outcome of the different
      steps in the dashboard the resources needed drop dramatically. In this
      context the use of lightweight runners should be sufficient and it is
      preferable to reduce costs.
      
      Signed-off-by: default avatarWalter Lozano <walter.lozano@collabora.com>
      a122dd3e
    • Walter Lozano's avatar
      Use JSON to improve efficiency · 254b71ed
      Walter Lozano authored
      
      YAML is a nice format, very easy to read, unfortunately the Python YAML
      library is very inefficient both CPU and memory wise. Loading the same
      content using JSON takes 10 times less memory and time.
      
      Since dashboard is always struggling with OOM, let's use JSON for the data
      it produces.
      
      As reference, below results of importing a 10 MB file with YAML and JSON
      are presented
      
      yaml-json $ ./test.py yaml
      Time 15.507138013839722 seg
      Memory (70914086, 394044198) bytes (current, peak)
      
      yaml-json $ ./test.py json
      Time 0.6210496425628662 seg
      Memory (58913059, 67501787) bytes (current, peak)
      
      Signed-off-by: default avatarWalter Lozano <walter.lozano@collabora.com>
      254b71ed
    • Walter Lozano's avatar
      Only pass cache if file is not empty · deb6cc98
      Walter Lozano authored
      
      In commit 797862 the logic continues even if the cache file cannot be
      downloaded. Unfortunately this approach is buggy since wget can create
      empty files if the download fails.
      
      To avoid passing an invalid cache file, check if file is not empty.
      
      Signed-off-by: default avatarWalter Lozano <walter.lozano@collabora.com>
      deb6cc98
  17. Nov 03, 2023
    • Emanuele Aina's avatar
      Fix thread_pool() signature now that num_retries is no longer used · ebab6716
      Emanuele Aina authored
      
      The new tenacity-based code limits the overall time interval during
      which it retries failed calls and no longer limits the actual number of
      retries on its own.
      
      Since in some cases the called function may not be retry-safe, just
      expose a boolean to make retrying opt-in and avoid some potential foot
      shooting in the future.
      
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      ebab6716
    • Walter Lozano's avatar
      Change default value for license report · 09e15175
      Walter Lozano authored
      
      The concept used for licensing checks is to have as default the most
      common value, which allows us to ommit it and save space in our yaml
      files.
      
      Following this approach, change the default value for license report
      to True.
      
      Signed-off-by: default avatarWalter Lozano <walter.lozano@collabora.com>
      09e15175
    • Walter Lozano's avatar
      Use defaults for licensing checks · 2910bd57
      Walter Lozano authored
      
      Report for licensing issues tend to be rare, so most of the related entries
      are False, even though we populate the yaml files with lot of entries of
      these entries. In order to reduce the size of the yaml file, only add
      entries for not default values.
      
      This is specially true for components like development, where checks are not
      performed but data is reported.
      
      At the same time, fix a bug in the cache support for licensing, caused by the
      fact that upstream branches do not provide license reports which was
      interpreted as missing data forcing the logic to retrieve information from
      Gitlab.
      
      Signed-off-by: default avatarWalter Lozano <walter.lozano@collabora.com>
      2910bd57
    • Walter Lozano's avatar
      Continue job if cache cannot be retrieved · 7978628f
      Walter Lozano authored and Emanuele Aina's avatar Emanuele Aina committed
      In some circumstances there is no valid artifact to download to be
      used as cache causing the job to fail. In such a case, instead of
      aborting the job just continue without cache.
      
      As reference:
      
      $ CACHE_ARGS=""
      $ ARTIFACT_URL=${ARTIFACT_URL:-$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/artifacts/$CI_DEFAULT_BRANCH/raw/packaging-cache.yaml?job=pages}
      $ if [ "$ARTIFACT_URL" != none ] && [ "$DISABLE_CACHE" == "no" ] && [ "$FILTER_ON_CACHE" == "yes" ] # collapsed multi-line command
      --2023-10-24 18:16:17--  https://gitlab.apertis.org/api/v4/projects/6587/jobs/artifacts/master/raw/packaging-cache.yaml?job=pages
      
      
      Resolving gitlab.apertis.org (gitlab.apertis.org)... 116.203.10.182, 2a01:4f8:1c0c:80ad::1
      Connecting to gitlab.apertis.org (gitlab.apertis.org)|116.203.10.182|:443... connected.
      HTTP request sent, awaiting response... 404 Not Found
      2023-10-24 18:16:18 ERROR 404: Not Found.
      
      Signed-off-by: default avatarWalter Lozano <walter.lozano@collabora.com>
      7978628f
  18. Nov 02, 2023
    • Emanuele Aina's avatar
      Adopt exponential backoff when retrying · 9fc43368
      Emanuele Aina authored
      The current naive approach at retrying is not exactly gentle: if the
      server is overloaded we retry right ahead making the problem just worse.
      
      See https://encore.dev/blog/retries
      
       for a fun explanation of how the
      naive approach can be catastrophic.
      
      Fortunately the `tenacity` library allow us to add a bounded exponential
      backoff while also making the code easier to understand.
      
      This should make the dashboard behave much better toward GitLab and OBS
      when they hit some issue.
      
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      9fc43368
Loading