Skip to content
Snippets Groups Projects
  1. May 10, 2022
  2. Dec 22, 2021
    • Emanuele Aina's avatar
      Use more structured reports · c0c77cb6
      Emanuele Aina authored
      
      Rather than using plaintext error messages, use readable codes and
      structured metadata for errors and updates to make them easier
      to process.
      
      This will be particularly useful for filtering: for instance we
      preserve the branch information rather than muddling it in the
      error message.
      
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      c0c77cb6
  3. Jul 04, 2021
  4. Jun 22, 2021
  5. Feb 20, 2021
  6. Feb 16, 2021
  7. Jan 11, 2021
    • Emanuele Aina's avatar
      packaging-updates: Stop using the gitlab-update-job branches · 62ad4869
      Emanuele Aina authored
      
      With the switch to the external gitlab-ci pipeline definition in the
      packaging repositories the `debian/buster-gitlab-update-job` branches
      are no longer needed since they were only used to host the upstream pull
      pipeline definition which it could not reside on the `debian/` branches.
      
      Now we can kick the pipeline on the `debian/` branches directly using
      the external config, so let's do that.
      
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      62ad4869
  8. Jul 29, 2020
    • Emanuele Aina's avatar
      Index data by package name · 070001e5
      Emanuele Aina authored and Martyn Welch's avatar Martyn Welch committed
      
      Rather than indexing by repository name, use the package name as the
      main key since it is the common concept that ties GitLab, OBS and
      upstream sources.
      
      This simplifies some parts of the code as all the information is
      available from a single object instead of being spread across multiple
      data sources.
      
      Error reporting is also largely simplified by having a single `errors:`
      array on each package and have each error to be an object rather than a
      single string: iterating over every error is thus much simpler and the
      information about the error itself is now explicit rather than implicit
      based on its surrounding context (for instance, whether it was located
      on a branch, on the git project, or on the OBS package entry).
      
      The YAML structure went from:
      
          obs:
            packages:
              aalib:
                entries:
                  apertis:v2020:target:
                    name: aalib
                    errors:
                      - "ooops"
          projects:
            pkg/target/aalib:
              branches:
                debian/buster:
                  name: debian/buster
                  errors:
                    - "eeeww"
              errors:
                - "aaargh"
          sources:
            debian/buster:
              packages:
                aalib: [...]
      
      to:
      
          packages:
            aalib:
              obs:
                entries:
                  apertis:v2020:target: {...}
              git:
                branches:
                  debian/buster: {...}
              upstreams:
                debian/buster: [...]
              errors:
                - msg: "aaargh"
                - msg: "eeeww"
                  branch: debian/buster
                - msg: "ooops"
                  projects: [ "apertis:v2020:target" ]
      
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      070001e5
  9. Jul 13, 2020
  10. Jul 08, 2020
  11. May 15, 2020
    • Emanuele Aina's avatar
      packaging: Gather data and trigger actions on packaging repositories · e7163690
      Emanuele Aina authored
      
      Introduce a pipeline to fetch data from multiple sources, cross-check
      the retrieved information and trigger actions.
      
      Each step emits YAML data that can be consumed by later steps and then
      merged again to render a dashboard, with the goal of easing the addition
      of more data sources and checks as much as possible.
      
      The current steps are:
      * packaging-data-fetch-upstream: grab package listings from the
        configured upstream sources
      * packaging-data-fetch-downstream: scan GitLab to collect data about
        the packaging repositories and branches
      * yaml-merge: dedicated tool to merge data from multiple sources
      * packaging-sanity-check: verify some invariants and report mismatches
      * packaging-updates: compute which packages have a newer upstream and
        trigger the pipeline to pull them in
      * dashboard: render a basic dashboard listing the identified errors
      
      By triggering only the pipelines where there's a known update pending
      we avoid the issues with the previous approach that involved running
      the pipeline on each of the 4000+ repositories every week, which ended
      up overwhelming GitLab.
      
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      e7163690
Loading