Skip to content
  • Matthew Pickering's avatar
    Add scripts to generate ghcup metadata on nightly and release pipelines · eeea59bb
    Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
    1. A python script in .gitlab/rel_eng/mk-ghcup-metadata which generates
       suitable metadata for consumption by GHCUp for the relevant
       pipelines.
    
      - The script generates the metadata just as the ghcup maintainers
        want, without taking into account platform/library combinations. It
        is updated manually when the mapping changes.
    
      - The script downloads the bindists which ghcup wants to distribute,
        calculates the hash and generates the yaml in the correct structure.
    
      - The script is documented in the .gitlab/rel_eng/mk-ghcup-metadata/README.mk file
    
    1a. The script requires us to understand the mapping from platform ->
        job. To choose the preferred bindist for each platform the
        .gitlab/gen_ci.hs script is modified to allow outputting a metadata
        file which answers the question about which job produces the
        bindist which we want to distribute to users for a specific
        platform.
    
    2. Pipelines to run on nightly and release jobs to generate metadata
    
      - ghcup-metadata-nightly: Generates metadata which points directly to
        artifacts in the nightly job.
    
      - ghcup-metadata-release: Generates metadata suitable for inclusion
        directly in ghcup by pointing to the downloads folder where the
        bindist will be uploaded to.
    
    2a. Trigger jobs which test the generated metadata in the downstream
        `ghccup-ci` repo. See that repo for documentation about what is
        tested and how but essentially we test in a variety of clean images
        that ghcup can download and install the bindists we say exist in our
        metadata.
    eeea59bb
Validating GitLab CI configuration… Learn more