summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
Commit message (Collapse)AuthorAgeFilesLines
* hadrian: Turn the `static` flavour into a transformerBen Gamari2021-10-271-3/+3
| | | | | This turns the `static` flavour into the `+fully_static` flavour transformer.
* ci: Move hlint jobs from quick-built into full-buildMatthew Pickering2021-10-201-1/+1
| | | | | | | | | This somewhat fixes the annoyance of not getting any "useful" feedback from a CI pipeline if you have a hlint failure. Now the hlint job runs in parallel with the other CI jobs so the feedback is recieved at the same time as other testsuite results. Fixes #20507
* Fix perf-nofib CI jobMatthew Pickering2021-10-201-8/+8
| | | | | | | | The main change is to install the necessary build dependencies into an environment file using `caball install --lib`. Also updates the nofib submodule with a few fixes needed for the job to work.
* ci: build validate-x86_64-linux-deb9-debug with hyperlinked source (#20067)Zubin Duggal2021-10-131-0/+1
|
* gitlab-ci: Bump docker imagesBen Gamari2021-10-121-2/+1
| | | | Bumps bootstrap compiler to GHC 9.0.1.
* gitlab-ci: Mark more broken tests on AlpineBen Gamari2021-10-121-3/+5
|
* gitlab-ci: Introduce static Alpine jobBen Gamari2021-10-121-0/+7
|
* ci: Expect x86-darwin to passMatthew Pickering2021-10-081-3/+0
| | | | Closes #20013
* ci: Remove BROKEN_TESTS for x86 darwin buildsMatthew Pickering2021-10-081-2/+0
| | | | | The tests Capi_Ctype_001 Capi_Ctype_002 T12010 pass regularly on CI so let's mark them unbroken and hopefully then we can fix #20013.
* gitlab-ci: Bump docker imagesBen Gamari2021-10-021-1/+1
| | | | To install libncurses-dev on Debian targets.
* ci: Add version to cache keyBen Gamari2021-09-231-20/+21
|
* ci: More surgical use of nix in Darwin buildsBen Gamari2021-09-231-65/+31
|
* ci: Move phase timing logic into ci.shBen Gamari2021-09-231-95/+25
|
* ci: Isolate build from HOMEBen Gamari2021-09-231-0/+3
|
* ci: Consolidate handling of cabal cacheBen Gamari2021-09-231-9/+8
| | | | | | Previously the cache persistence was implemented as various ad-hoc `cp` commands at the end of the individual CI scripts. Here we move all of this logic into `ci.sh`.
* ci: Drop redundant `cabal update`sBen Gamari2021-09-231-3/+0
| | | | `cabal update` is already implied by `ci.sh setup`.
* Add "fast-ci" label, for skipping most builds (#19280)Krzysztof Gogolewski2021-08-031-0/+20
| | | | | | | If "fast-ci" is present, only the following parts of full-build are run: - validate-x86_64-linux-deb9-debug - validate-x86_64-windows-hadrian - validate-x86_64-linux-deb9-unreg-hadrian
* [CI] absolutely no caching on darwinMoritz Angermann2021-07-251-14/+16
| | | | | | | We failed at doing caching properly, so for now we won't do any caching at all. This is not safe in a concurrent setting, however all our darwin builders run with concurrency 1, and -j8, on 8 core m1 mac minis.
* ci: Copy the cache from inside the nix-shell where $HOME is different on darwinMatthew Pickering2021-07-101-6/+8
| | | | | | Hopefully fixes the flaky CI failures we have seen recently. Co-authored-by: Moritz Angerman <moritz.angermann@gmail.com>
* Move aarch64-linux-llvm to nightlyMoritz Angermann2021-07-021-0/+1
| | | | | | This job takes by far the longest time on its own, we now have a NCG. Once we have fast aarch64 machines, we can consider putting this one back.
* Revert "Move validate-x86_64-linux-deb9-hadrian back to quick-build"Moritz Angermann2021-07-021-1/+1
| | | | This reverts commit a0622459f1d9a7068e81b8a707ffc63e153444f8.
* [ci] Separate llvm and NCG test metrics for aarch64-linuxMoritz Angermann2021-07-011-0/+3
|
* [ci] don't allow aarch64-linux (ncg) to failMoritz Angermann2021-07-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | by accepting the current state of metrics (and the NCG is new, so this seems prudent to do), we can require aarch64-linux (ncg) to build without permitting failure. Metric Increase: T13035 T13719 T14697 T1969 T9203 T9872a T9872b T9872c T9872d T9961 WWRec haddock.Cabal haddock.base parsing001
* ci: Don't allow aarch64-darwin to failMatthew Pickering2021-06-291-3/+0
| | | | Part way to #20013
* ci: Don't allow the nightly pipeline to be interrupted.Douglas Wilson2021-06-231-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since 58cfcc65 the default for jobs has been "interruptible", this means that when new commits are pushed to a branch which already has a running pipeline then the old pipelines for this branch are cancelled. This includes the master branch, and in particular, new commits merged to the master branch will cancel the nightly job. The semantics of pipeline cancelling are actually a bit more complicated though. The interruptible flag is *per job*, but once a pipeline has run *any* non-interruptible job, then the whole pipeline is considered non-interruptible (ref https://gitlab.com/gitlab-org/gitlab/-/issues/32837). This leads to the hack in this MR where by default all jobs are `interruptible: True`, but for pipelines we definitely want to run, there is a dummy job which happens first, which is `interreuptible: False`. This has the effect of dirtying the whole pipeline and preventing another push to master from cancelling it. For now, this patch solves the immediate problem of making sure nightly jobs are not cancelled. In the future, we may want to enable this job also for the master branch, making that change might mean we need more CI capacity than currently available. [skip ci] Ticket: #19554 Co-authored-by: Matthew Pickering <matthewtpickering@gmail.com>
* CI: Don't set EXTRA_HC_OPTS in head.hackage jobMatthew Pickering2021-06-221-1/+3
| | | | | | | | Upstream environment variables take precedance over downstream variables. It is more consistent (and easier to modify) if the variables are all set in the head.hackage CI file rather than setting this here. [skip ci]
* Darwin CI: Don't explicitly pass ncurses/iconv pathsMatthew Pickering2021-06-201-2/+2
| | | | | | | | | | Passing --with-ncurses-libraries means the path which gets backed in progagate into the built binaries. This is incorrect when we want to distribute the binaries because the user might not have the library in that specific place. It's the user's reponsibility to direct the dynamic linker to the right place. Fixes #19968
* CI: Keep the value of PERF_NOTE_KEY in darwin environmentsMatthew Pickering2021-06-191-0/+1
| | | | This fixes the performance test tracking for all darwin environments.
* Move validate-x86_64-linux-deb9-hadrian back to quick-buildwip/t20003Matthew Pickering2021-06-171-1/+1
| | | | | | | | | This increases the critical path length but in practice will reduce pressure on runners because less jobs overall will be spawned. See #20003 [skip ci]
* gitlab-ci: Bump ci-imagesBen Gamari2021-06-161-1/+1
|
* [ci] force CC=clang for aarch64-linuxMoritz Angermann2021-06-051-0/+1
|
* [ci] no docs for aarch64-linux-llvmMoritz Angermann2021-06-051-0/+7
|
* [ci] -llvm with --way=llvmMoritz Angermann2021-06-051-0/+2
|
* Adds AArch64 Native Code GeneratorMoritz Angermann2021-06-051-8/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In which we add a new code generator to the Glasgow Haskell Compiler. This codegen supports ELF and Mach-O targets, thus covering Linux, macOS, and BSDs in principle. It was tested only on macOS and Linux. The NCG follows a similar structure as the other native code generators we already have, and should therfore be realtively easy to follow. It supports most of the features required for a proper native code generator, but does not claim to be perfect or fully optimised. There are still opportunities for optimisations. Metric Decrease: ManyAlternatives ManyConstructors MultiLayerModules PmSeriesG PmSeriesS PmSeriesT PmSeriesV T10421 T10421a T10858 T11195 T11276 T11303b T11374 T11822 T12227 T12545 T12707 T13035 T13253 T13253-spj T13379 T13701 T13719 T14683 T14697 T15164 T15630 T16577 T17096 T17516 T17836 T17836b T17977 T17977b T18140 T18282 T18304 T18478 T18698a T18698b T18923 T1969 T3064 T5030 T5321FD T5321Fun T5631 T5642 T5837 T783 T9198 T9233 T9630 T9872d T9961 WWRec Metric Increase: T4801
* CI: Don't explicitly build hadrian before using run_hadrianMatthew Pickering2021-06-021-2/+0
| | | | | This causes hadrian to be built twice because the second time uses a different index state.
* Run both lint jobs togetherMatthew Pickering2021-06-021-9/+1
|
* hadrian: Speed up lint:base ruleMatthew Pickering2021-06-021-1/+0
| | | | | | | | | The rule before decided to build the whole stage1 compiler, but this was unecessary as we were just missing one header file which can be generated directly by calling configure. Before: 18 minutes After: 54s
* [ci] faster pipelineMoritz Angermann2021-05-251-5/+1
|
* [ci/darwin] cabal-cache dir can be specified per archMoritz Angermann2021-05-251-5/+12
| | | | Also while we are at it, run shellcheck on ci.sh
* [ci/darwin] use system provided iconv and cursesMoritz Angermann2021-05-251-2/+2
| | | | Also make sure to be able to build with non-apple-clang, while using apple's SDK on macOS
* [ci] darwin uses hadrianMoritz Angermann2021-05-251-48/+24
| | | | | | Make is bad, and really slow, and we should just stop using it outright, or kill hadrian. Let's rather go for hadrian all the way and phase out make.
* Only run armv7-linux-deb10 build nightlyMatthew Pickering2021-05-211-1/+2
|
* gitlab-ci: Add Alpine job linking against gmp integer backendBen Gamari2021-05-201-3/+13
| | | | As requested by Michael Snoyman.
* CI: Disable darwin buildsMatthew Pickering2021-05-191-2/+2
| | | | | They are taking over 4 hours to complete which is stalling the rest of the merge pipeline.
* [ci] Add support for building on aarch64-darwinMoritz Angermann2021-05-071-8/+188
| | | | | | | This will fail for now. But allows us to add aarch64-darwin machines to CI. (cherry picked from commit a7d22795ed118abfe64f4fc55d96d8561007ce1e)
* Revert "[ci/arm/darwin/testsuite] Forwards ports from GHC-8.10"Ben Gamari2021-04-051-188/+8
| | | | This reverts commit 0cbdba2768d84a0f6832ae5cf9ea1e98efd739da.
* gitlab-ci: Ignore performance metrics failures in release jobsBen Gamari2021-04-021-0/+6
| | | | We don't want these failing merely due to performance metrics
* gitlab-ci: CI wibblesBen Gamari2021-04-021-0/+3
| | | | Ensure that deb10-dwarf artifacts are preserved.
* gitlab-ci: Drop Debian 8 jobBen Gamari2021-04-011-26/+0
|
* gitlab-ci: Extend expiration time of simple perf job artifactsBen Gamari2021-03-311-1/+1
|