Skip to content
Snippets Groups Projects
  1. Feb 08, 2023
  2. Feb 01, 2023
  3. Jan 27, 2023
    • Matthew Pickering's avatar
      ci: Add ubuntu18_04 nightly and release jobs · f8828f2c
      Matthew Pickering authored
      This adds release jobs for ubuntu18_04 which uses glibc 2.27 which is
      older than the 2.28 which is used by Rocky8 bindists.
      
      Ticket #22268
      
      (cherry picked from commit 0a022207)
      f8828f2c
    • Matthew Pickering's avatar
      Add scripts to generate ghcup metadata on nightly and release pipelines · 78a84385
      Matthew Pickering authored
      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.
      
      (cherry picked from commit ef4ffd9d)
      78a84385
    • Matthew Pickering's avatar
      ci: Don't use complicated image or clone in not-interruptible job · b8392e1f
      Matthew Pickering authored
      This job exists only for the meta-reason of not allowing nightly
      pipelines to be cancelled. It was taking two minutes to run as in order
      to run "true" we would also clone the whole GHC repo.
      
      (cherry picked from commit e9cfc723)
      b8392e1f
    • Matthew Pickering's avatar
      rel_eng: Add release engineering scripts into ghc tree · 9a91e662
      Matthew Pickering authored
      It is better to keep these scripts in the tree as they depend on the CI
      configuration and so on. By keeping them in tree we can keep them
      up-to-date as the CI config changes and also makes it easier to backport
      changes to the release script between release branches in future.
      
      The final motivation is that it makes generating GHCUp metadata
      possible.
      
      (cherry picked from commit c41aeb30)
      9a91e662
    • Matthew Pickering's avatar
      ci: Change owner of files in test-bootstrap job · 51343814
      Matthew Pickering authored
      (cherry picked from commit 00981dc9)
      51343814
  4. Jan 26, 2023
    • Matthew Pickering's avatar
      ci: Change owner of files in source-tarball job · 78aef3d9
      Matthew Pickering authored and Ben Gamari's avatar Ben Gamari committed
      This fixes errors of the form:
      
      ```
      fatal: detected dubious ownership in repository at '/builds/ghc/ghc'
      To add an exception for this directory, call:
      	git config --global --add safe.directory /builds/ghc/ghc
      inferred 9.7.20230113
      checking for GHC Git commit id... fatal: detected dubious ownership in repository at '/builds/ghc/ghc'
      To add an exception for this directory, call:
      	git config --global --add safe.directory /builds/ghc/ghc
      ```
      
      (cherry picked from commit 4285ce8a)
      78aef3d9
  5. Jan 25, 2023
    • Cheng Shao's avatar
      ci: add wasm ci jobs via gen_ci.hs · 02fe30d2
      Cheng Shao authored
      - There is one regular wasm job run in validate pipelines
      - Additionally, int-native/unreg wasm jobs run in nightly/release pipelines
      
      Also, remove the legacy handwritten wasm ci jobs in .gitlab-ci.yml.
      
      (cherry picked from commit 87194df0)
      02fe30d2
    • Cheng Shao's avatar
      ci: improve nix-shell for gen_ci.hs and fix some ghc/hlint warnings · a38079b5
      Cheng Shao authored
      - Add a ghc environment including prebuilt dependencies to the
        nix-shell. Get rid of the ad hoc cabal cache and all dependencies
        are now downloaded from the nixos binary cache.
      - Make gen_ci.hs a cabal package with HLS integration, to make future
        hacking of gen_ci.hs easier.
      - Fix some ghc/hlint warnings after I got HLS to work.
      - For the lint-ci-config job, do a shallow clone to save a few minutes
        of unnecessary git checkout time.
      
      (cherry picked from commit 93b9bbc1)
      a38079b5
    • Cheng Shao's avatar
      ci: Bump DOCKER_REV · 1768ca30
      Cheng Shao authored
      (cherry picked from commit 84ae6573)
      1768ca30
  6. Jan 06, 2023
    • Matthew Pickering's avatar
      packaging: Build perf builds with -split-sections · be78e321
      Matthew Pickering authored
      In 8f71d958 the make build system was made to use split-sections on
      linux systems but it appears this logic never made it to hadrian.
      There is the split_sections flavour transformer but this doesn't appear
      to be used for perf builds on linux.
      
      This is disbled on deb9 and windows due to #21670
      
      Closes #21135
      
      (cherry picked from commit be9dd9b0)
      be78e321
  7. Jan 03, 2023
    • Matthew Pickering's avatar
      ci: Run head.hackage jobs on upstream-testing branch rather than master · ad8f5f60
      Matthew Pickering authored
      This change allows less priviledged users to trigger head.hackage jobs
      because less permissions are needed to trigger jobs on the
      upstream-testing branch, which is not protected.
      
      There is a CI job which updates upstream-testing each hour to the state
      of the master branch so it should always be relatively up-to-date.
      
      (cherry picked from commit c264b06b)
      ad8f5f60
    • Matthew Pickering's avatar
      ci: Don't run abi-test-nightly on release jobs · fdf71893
      Matthew Pickering authored
      The test is not configured to get the correct dependencies for the
      release pipelines (and indeed stops the release pipeline being run at
      all)
      
      (cherry picked from commit f4850f36)
      fdf71893
    • Matthew Pickering's avatar
      head.hackage: Use slow-validate bindist for linting jobs · 5bc8709e
      Matthew Pickering authored
      This enables the SLOW_VALIDATE env var for the linting head.hackage
      jobs, namely the jobs enabled manually, by the label or on the nightly
      build now use the deb10-numa-slow-validate bindist which has assertions
      enabled.
      
      See #22623 for a ticket which was found by using this configuration
      already!
      
      The head.hackage jobs triggered by upstream CI are now thusly:
      
      hackage-lint: Can be triggered on any MR, normal validate pipeline or nightly build.
                    Runs head.hackage with -dlint and a slow-validate bindist
      
      hackage-label-lint: Trigged on MRs with "user-facing" label, runs the slow-validate
                          head.hackage build with -dlint.
      
      nightly-hackage-lint: Runs automatically on nightly pipelines with slow-validate + dlint config.
      
      nightly-hackage-perf: Runs automaticaly on nightly pipelines with release build and eventlogging enabled.
      
      release-hackage-lint: Runs automatically on release pipelines with -dlint on a release bindist.
      (cherry picked from commit cbaebfb9)
      5bc8709e
  8. Dec 10, 2022
  9. Dec 09, 2022
    • Matthew Pickering's avatar
      ci: Add job for testing interface stability across builds · 0a76d7d4
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      The idea is that both the bindists should product libraries with the
      same ABI and interface hash.
      So the job checks with ghc-pkg to make sure the computed ABI
      is the same.
      
      In future this job can be extended to check for the other facets of
      interface determinism.
      
      Fixes #22180
      0a76d7d4
    • Matthew Pickering's avatar
      ci: Add job to test interface file determinism guarantees · 5d0a311f
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      In this job we can run on every commit we add a test which builds the
      Cabal library twice and checks that the ABI hash and interface hash is
      stable across the two builds.
      
      * We run the test 20 times to try to weed out any race conditions due to
        `-j`
      * We run the builds in different temporary directories to try to weed
        out anything related to build directory affecting ABI or interface
        file hash.
      
      Fixes #22180
      5d0a311f
  10. Nov 29, 2022
  11. Nov 11, 2022
  12. Nov 06, 2022
  13. Nov 04, 2022
  14. Oct 28, 2022
  15. Sep 06, 2022
  16. Aug 30, 2022
  17. Aug 26, 2022
  18. Aug 08, 2022
  19. Aug 07, 2022
  20. Aug 06, 2022
    • Ben Gamari's avatar
      gitlab-ci: Fix hadrian bootstrapping of release pipelines · f8bec4e3
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Previously we would attempt to test hadrian bootstrapping in the
      `validate` build flavour. However, `ci.sh` refuses to run validation
      builds during release pipelines, resulting in job failures. Fix this by
      testing bootstrapping in the `release` flavour during release pipelines.
      
      We also attempted to record perf notes for these builds, which is
      redundant work and undesirable now since we no longer build in a
      consistent flavour.
      f8bec4e3
  21. Aug 05, 2022
    • Matthew Pickering's avatar
      ci: Fix pages job · 78d232f5
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      The job has been failing because we don't bundle haddock docs anymore in
      the docs dist created by hadrian.
      
      Fixes #21789
      78d232f5
  22. Jul 25, 2022
  23. Jul 04, 2022
  24. Jun 20, 2022
  25. Jun 16, 2022
  26. Jun 02, 2022
  27. Jun 01, 2022
  28. May 31, 2022
    • Matthew Pickering's avatar
      hadrian: Introduce new package database for executables needed to build stage0 · 5c4421b1
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      These executables (such as hsc2hs) are built using the boot compiler and
      crucially, most libraries from the global package database.
      
      We also move other build-time executables to be built in this stage such
      as linters which also cleans up which libraries end up in the global
      package database. This allows us to remove hacks where linters-common is
      removed from the package database when a bindist is created.
      
      This fixes issues caused by infinite recursion due to bytestring adding
      a dependency on template-haskell.
      
      Fixes #21634
      5c4421b1
  29. May 30, 2022
Loading