summaryrefslogtreecommitdiff
path: root/.gitlab
Commit message (Collapse)AuthorAgeFilesLines
* Revert "ci: enable parallel compression for xz"Bryan Richter2022-09-291-1/+1
| | | | | | Combined wxth XZ_OPT=9, this blew the memory capacity of CI runners. This reverts commit a5f9c35f5831ef5108e87813a96eac62803852ab.
* Remove stage1:exe:ghc-bin pre-build from CI scriptMatthew Pickering2022-09-141-4/+0
| | | | | | | | | | CI builds stage1:exe:ghc-bin before the binary-dist target which introduces some quite bad linearisation (see #22093) because we don't build stage1 compiler in parallel with anything. Then when the binary-dist target is started we have to build stage1:exe:ghc-pkg before doing anything. Fixes #22094
* ci: enable parallel compression for xzCheng Shao2022-09-121-1/+1
|
* ci: remove unused build_make/test_make in ci scriptCheng Shao2022-09-061-46/+0
|
* ci: Attempt using normal submodule cloning strategyMatthew Pickering2022-08-301-2/+2
| | | | | | | We do not use any recursively cloned submodules, and this protects us from flaky upstream remotes. Fixes #22121
* gitlab-ci: Drop make build validation jobsBen Gamari2022-08-251-1/+0
| | | | In preparation for removal of the `make`-based build system
* upload_ghc_libs: Add means of passing Hackage credentialsBen Gamari2022-08-251-16/+23
|
* run_ci: remove monoidal-containersBryan Richter2022-08-161-11/+26
| | | | | | | | | Fixes #21492 MonoidalMap is inlined and used to implement Variables, as before. The top-level value "jobs" is reimplemented as a regular Map, since it doesn't use the monoidal union anyway.
* Revert "gitlab-ci: Add release job for aarch64/debian 11"Matthew Pickering2022-08-112-178/+0
| | | | | | | | | This reverts commit 5765e13370634979eb6a0d9f67aa9afa797bee46. The job was not tested before being merged and fails CI (https://gitlab.haskell.org/ghc/ghc/-/jobs/1139392) Ticket #22005
* gitlab-ci: Run ARMv7 jobs when ~ARM label is usedBen Gamari2022-08-102-75/+78
|
* gitlab-ci: Fix ARMv7 buildBen Gamari2022-08-102-5/+21
| | | | | | | It appears that the CI refactoring carried out in 5ff690b8474c74e9c968ef31e568c1ad0fe719a1 failed to carry over some critical configuration: setting the build/host/target platforms and forcing use of a non-broken linker.
* gitlab-ci: Bump to use freebsd13 runnersBen Gamari2022-08-093-39/+40
|
* gitlab-ci: Don't use coreutils on DarwinBen Gamari2022-08-091-1/+0
| | | | | | | | | In general we want to ensure that the tested environment is as similar as possible to the environment the user will use. In the case of Darwin, this means we want to use the system's BSD command-line utilities, not coreutils. This would have caught #21974.
* gitlab-ci: Add basic support for cross-compiler testiingBen Gamari2022-08-083-24/+64
| | | | Here we add a simple qemu-based test for cross-compilers.
* gitlab-ci: Introduce validation job for aarch64 cross-compilationBen Gamari2022-08-082-1/+128
| | | | Begins to address #11958.
* gitlab-ci: Add release job for aarch64/debian 11Ben Gamari2022-08-082-0/+178
|
* gitlab-ci: Fix hadrian bootstrapping of release pipelinesBen Gamari2022-08-061-1/+5
| | | | | | | | | | | 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.
* upload_ghc_libs: Fix path to documentationBen Gamari2022-07-221-1/+1
| | | | | | | The documentation was moved in a10584e8df9b346cecf700b23187044742ce0b35 but this one occurrence was note updated. Finally closes #21164.
* Add nightly job for generating docs suitable for hackage uploadMatthew Pickering2022-07-042-0/+194
|
* hadrian: Add --haddock-base-url option for specifying base-url when ↵Matthew Pickering2022-07-041-1/+1
| | | | | | | | | | | | | | | | | | | generating docs The motiviation for this flag is to be able to produce documentation which is suitable for uploading for hackage, ie, the cross-package links work correctly. There are basically three values you want to set this to: * off - default, base_url = ../%pkg% which works for local browsing * on - no argument , base_url = https:://hackage.haskell.org/package/%pkg%/docs - for hackage docs upload * on - argument, for example, base_url = http://localhost:8080/package/%pkg%/docs for testing the documentation. The `%pkg%` string is a template variable which is replaced with the package identifier for the relevant package. This is one step towards fixing #21749
* docs-upload: Fix upload script when no packages are listedMatthew Pickering2022-07-041-3/+4
|
* upload-docs: propagate publish correctly in upload_sdistMatthew Pickering2022-07-041-1/+1
|
* hadrian: Fix testing stage1 compilerMatthew Pickering2022-06-141-7/+10
| | | | | | | | | | | | There were various issues with testing the stage1 compiler.. 1. The wrapper was not being built 2. The wrapper was picking up the stage0 package database and trying to load prelude from that. 3. The wrappers never worked on windows so just don't support that for now. Fixes #21072
* ci: Don't try to run ./boot when testing bootstrap of source distMatthew Pickering2022-06-011-3/+6
|
* Build stage1 with -V as wellMatthew Pickering2022-05-311-1/+1
| | | | This helps tracing errors which happen when building stage1
* upload-ghc-libs: Allow candidate-only uploadBen Gamari2022-05-301-19/+18
|
* ci: Make sure to exit promptly if `make install` fails.Matthew Pickering2022-05-301-1/+1
| | | | | | | | | Due to the vageries of bash, you have to explicitly handle the failure and exit when in a function. This failed to exit promptly when !8247 was failing. See #21358 for the general issue
* Test DESTDIR in test_hadrian()wip/type-dataJulian Ospald2022-05-211-2/+23
|
* ci: Use correct syntax when args list is emptyMatthew Pickering2022-05-191-1/+1
| | | | This seems to fail on the ancient version of bash present on CentOS
* ci: Don't build sphinx documentation on centosMatthew Pickering2022-05-192-0/+6
| | | | | | | The centos docker image lacks the sphinx builder so we disable building sphinx docs for these jobs. Fixes #21580
* Add release flavour and use it for the release jobsMatthew Pickering2022-05-192-106/+106
| | | | | | | | The release flavour is essentially the same as the perf flavour currently but also enables `-haddock`. I have hopefully updated all the relevant places where the `-perf` flavour was hardcoded. Fixes #21486
* packaging: Introduce CI job for generating hackage documentationMatthew Pickering2022-05-162-7/+236
| | | | | | | | | | | | | | | | | | | | This adds a CI job (hackage-doc-tarball) which generates the necessary tarballs for uploading libraries and documentation to hackage. The release script knows to download this folder and the upload script will also upload the release to hackage as part of the release. The `ghc_upload_libs` script is moved from ghc-utils into .gitlab/ghc_upload_libs There are two modes, preparation and upload. * The `prepare` mode takes a link to a bindist and creates a folder containing the source and doc tarballs ready to upload to hackage. * The `upload` mode takes the folder created by prepare and performs the upload to hackage. Fixes #21493 Related to #21512
* Add back Debian9 CI jobsMatthew Pickering2022-05-112-0/+180
| | | | | | | We still build Deb9 bindists for now due to Ubuntu 18 and Linux Mint 19 not being at EOL until April 2023 and they still need tinfo5. Fixes #21469
* gitlab-ci: Check for dynamic msys2 dependenciesBen Gamari2022-05-111-0/+13
| | | | | | Both #20878 and #21196 were caused by unwanted dynamic dependencies being introduced by boot libraries. Ensure that we catch this in CI by attempting to run GHC in an environment with a minimal PATH.
* gitlab/ci: Fix name of bootstrap compiler directoryBen Gamari2022-05-041-2/+2
| | | | | | | | Windows binary distributions built with Hadrian have a target platform suffix in the name of their root directory. Teach `ci.sh` about this fact. (cherry picked from commit df5752f39671f6d04d8cd743003469ae5eb67235)
* gitlab-ci: Always preserve artifacts, even in failed jobsBen Gamari2022-05-042-72/+145
| | | | (cherry picked from commit fd08b0c91ea3cab39184f1b1b1aafcd63ce6973f)
* gitlab-ci: Use ld.lld on ARMv7/LinuxBen Gamari2022-05-042-8/+14
| | | | | | | | Due to #16177. Also cleanup some code style issues. (cherry picked from commit cc1c3861e2372f464bf9e3c9c4d4bd83f275a1a6)
* ci: Add linting job which checks authors are not GHC CIMatthew Pickering2022-04-271-0/+13
|
* ci: Fix shell commandMatthew Pickering2022-04-271-2/+2
|
* ci: Explicitly handle failures in test_hadrianMatthew Pickering2022-04-271-11/+11
| | | | | | We also disable the stage1 testing which is broken. Related to #21072
* ci: Add test to check that release jobs have profiled libsMatthew Pickering2022-04-271-1/+8
|
* ci: Fix cabal-reinstall jobMatthew Pickering2022-04-271-3/+3
| | | | | | It's quite nice we can do this by mostly deleting code Fixes #21373
* ci: Replace "always" with "on_success" to stop build jobs running before ↵Matthew Pickering2022-04-082-64/+64
| | | | | | | | | hadrian-ghci has finished See https://docs.gitlab.com/ee/ci/yaml/#when * always means, always run not matter what * on_success means, run if the dependencies have built successfully
* gitlab-ci: Bump bootstrap compiler to 9.2.2Ben Gamari2022-04-062-5/+5
| | | | | | This is necessary to build recent `text` commits. Bumps Hackage index state for a hashable which builds with GHC 9.2.
* gitlab/darwin: Factor out bindistsBen Gamari2022-04-061-13/+12
| | | | This makes it a bit easier to bump them.
* gitlab-ci: Disable cabal-install store caching on WindowsBen Gamari2022-04-052-34/+21
| | | | | | | For reasons that remain a mystery, cabal-install seems to consistently corrupt its cache on Windows. Disable caching for now. Works around #21347.
* ci: Attempt to fix windows cache issuesMatthew Pickering2022-04-012-19/+18
| | | | | It appears that running the script directly does nothing (no info is printed about saving the cache).
* ci: Regenerate jobs.yamlMatthew Pickering2022-04-012-6/+8
| | | | | It seems I forgot to update this to reflect the current state of gen_ci.hs
* ci: Generate jobs for all normal builds and use hadrian for all buildsMatthew Pickering2022-03-244-1/+4514
| | | | | | | | | | | | | | | | | | | | | | | This commit introduces a new script (.gitlab/gen_ci.hs) which generates a yaml file (.gitlab/jobs.yaml) which contains explicit descriptions for all the jobs we want to run. The jobs are separated into three categories: * validate - jobs run on every MR * nightly - jobs run once per day on the master branch * release - jobs for producing release artifacts The generation script is a Haskell program which includes a DSL for specifying the different jobs. The hope is that it's easier to reason about the different jobs and how the variables are merged together rather than the unclear and opaque yaml syntax. The goal is to fix issues like #21190 once and for all.. The `.gitlab/jobs.yaml` can be generated by running the `.gitlab/generate_jobs` script. You have to do this manually. Another consequence of this patch is that we use hadrian for all the validate, nightly and release builds on all platforms.
* Add check to ensure we are not building validate jobs for releasesMatthew Pickering2022-03-241-0/+21
|