Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ghc/ghc
  • bgamari/ghc
  • syd/ghc
  • ggreif/ghc
  • watashi/ghc
  • RolandSenn/ghc
  • mpickering/ghc
  • DavidEichmann/ghc
  • carter/ghc
  • harpocrates/ghc
  • ethercrow/ghc
  • mijicd/ghc
  • adamse/ghc
  • alexbiehl/ghc
  • gridaphobe/ghc
  • trofi/ghc
  • supersven/ghc
  • ppk/ghc
  • ulysses4ever/ghc
  • AndreasK/ghc
  • ghuntley/ghc
  • shayne-fletcher-da/ghc
  • fgaz/ghc
  • yav/ghc
  • osa1/ghc
  • mbbx6spp/ghc
  • JulianLeviston/ghc
  • reactormonk/ghc
  • rae/ghc
  • takenobu-hs/ghc
  • michalt/ghc
  • andrewthad/ghc
  • hsyl20/ghc
  • scottgw/ghc
  • sjakobi/ghc
  • angerman/ghc
  • RyanGlScott/ghc
  • hvr/ghc
  • howtonotwin/ghc
  • chessai/ghc
  • m-renaud/ghc
  • brprice/ghc
  • stevehartdata/ghc
  • sighingnow/ghc
  • kgardas/ghc
  • ckoparkar/ghc
  • alp/ghc
  • smaeul/ghc
  • kakkun61/ghc
  • sykloid/ghc
  • newhoggy/ghc
  • toonn/ghc
  • nineonine/ghc
  • Phyx/ghc
  • ezyang/ghc
  • tweag/ghc
  • langston/ghc
  • ndmitchell/ghc
  • rockbmb/ghc
  • artempyanykh/ghc
  • mniip/ghc
  • mynguyenbmc/ghc
  • alexfmpe/ghc
  • crockeea/ghc
  • nh2/ghc
  • vaibhavsagar/ghc
  • phadej/ghc
  • Haskell-mouse/ghc
  • lolotp/ghc
  • spacekitteh/ghc
  • michaelpj/ghc
  • mgsloan/ghc
  • HPCohen/ghc
  • tmobile/ghc
  • radrow/ghc
  • simonmar/ghc
  • _deepfire/ghc
  • Ericson2314/ghc
  • leitao/ghc
  • fumieval/ghc
  • trac-isovector/ghc
  • cblp/ghc
  • xich/ghc
  • ciil/ghc
  • erthalion/ghc
  • xldenis/ghc
  • autotaker/ghc
  • haskell-wasm/ghc
  • kcsongor/ghc
  • agander/ghc
  • Baranowski/ghc
  • trac-dredozubov/ghc
  • 23Skidoo/ghc
  • iustin/ghc
  • ningning/ghc
  • josefs/ghc
  • kabuhr/ghc
  • gallais/ghc
  • dten/ghc
  • expipiplus1/ghc
  • Pluralia/ghc
  • rohanjr/ghc
  • intricate/ghc
  • kirelagin/ghc
  • Javran/ghc
  • DanielG/ghc
  • trac-mizunashi_mana/ghc
  • pparkkin/ghc
  • bollu/ghc
  • ntc2/ghc
  • jaspervdj/ghc
  • JoshMeredith/ghc
  • wz1000/ghc
  • zkourouma/ghc
  • code5hot/ghc
  • jdprice/ghc
  • tdammers/ghc
  • J-mie6/ghc
  • trac-lantti/ghc
  • ch1bo/ghc
  • cgohla/ghc
  • lucamolteni/ghc
  • acairncross/ghc
  • amerocu/ghc
  • chreekat/ghc
  • txsmith/ghc
  • trupill/ghc
  • typetetris/ghc
  • sergv/ghc
  • fryguybob/ghc
  • erikd/ghc
  • trac-roland/ghc
  • setupminimal/ghc
  • Friede80/ghc
  • SkyWriter/ghc
  • xplorld/ghc
  • abrar/ghc
  • obsidiansystems/ghc
  • Icelandjack/ghc
  • adinapoli/ghc
  • trac-matthewbauer/ghc
  • heatsink/ghc
  • dwijnand/ghc
  • Cmdv/ghc
  • alinab/ghc
  • pepeiborra/ghc
  • fommil/ghc
  • luochen1990/ghc
  • rlupton20/ghc
  • applePrincess/ghc
  • lehins/ghc
  • ronmrdechai/ghc
  • leeadam/ghc
  • harendra/ghc
  • mightymosquito1991/ghc
  • trac-gershomb/ghc
  • lucajulian/ghc
  • Rizary/ghc
  • VictorCMiraldo/ghc
  • jamesbrock/ghc
  • andrewdmeier/ghc
  • luke/ghc
  • pranaysashank/ghc
  • cocreature/ghc
  • hithroc/ghc
  • obreitwi/ghc
  • slrtbtfs/ghc
  • kaol/ghc
  • yairchu/ghc
  • Mathemagician98/ghc
  • trac-taylorfausak/ghc
  • leungbk/ghc
  • MichaWiedenmann/ghc
  • chris-martin/ghc
  • TDecki/ghc
  • adithyaov/ghc
  • trac-gelisam/ghc
  • Lysxia/ghc
  • complyue/ghc
  • bwignall/ghc
  • sternmull/ghc
  • sonika/ghc
  • leif/ghc
  • broadwaylamb/ghc
  • myszon/ghc
  • danbroooks/ghc
  • Mechachleopteryx/ghc
  • zardyh/ghc
  • trac-vdukhovni/ghc
  • OmarKhaledAbdo/ghc
  • arrowd/ghc
  • Bodigrim/ghc
  • matheus23/ghc
  • cardenaso11/ghc
  • trac-Athas/ghc
  • mb720/ghc
  • DylanZA/ghc
  • liff/ghc
  • typedrat/ghc
  • trac-claude/ghc
  • jbm/ghc
  • Gertjan423/ghc
  • PHO/ghc
  • JKTKops/ghc
  • kockahonza/ghc
  • msakai/ghc
  • Sir4ur0n/ghc
  • barambani/ghc
  • vishnu.c/ghc
  • dcoutts/ghc
  • trac-runeks/ghc
  • trac-MaxGabriel/ghc
  • lexi.lambda/ghc
  • strake/ghc
  • spavikevik/ghc
  • JakobBruenker/ghc
  • rmanne/ghc
  • gdziadkiewicz/ghc
  • ani/ghc
  • iliastsi/ghc
  • smunix/ghc
  • judah/ghc
  • blackgnezdo/ghc
  • emilypi/ghc
  • trac-bpfoley/ghc
  • muesli4/ghc
  • trac-gkaracha/ghc
  • Kleidukos/ghc
  • nek0/ghc
  • TristanCacqueray/ghc
  • dwulive/ghc
  • mbakke/ghc
  • arybczak/ghc
  • Yang123321/ghc
  • maksbotan/ghc
  • QuietMisdreavus/ghc
  • trac-olshanskydr/ghc
  • emekoi/ghc
  • samuela/ghc
  • josephcsible/ghc
  • dramforever/ghc
  • lpsmith/ghc
  • DenisFrezzato/ghc
  • michivi/ghc
  • jneira/ghc
  • jeffhappily/ghc
  • Ivan-Yudin/ghc
  • nakaji-dayo/ghc
  • gdevanla/ghc
  • galen/ghc
  • fendor/ghc
  • yaitskov/ghc
  • rcythr/ghc
  • awpr/ghc
  • jeremyschlatter/ghc
  • Aver1y/ghc
  • mitchellvitez/ghc
  • merijn/ghc
  • tomjaguarpaw1/ghc
  • trac-NoidedSuper/ghc
  • erewok/ghc
  • trac-junji.hashimoto/ghc
  • adamwespiser/ghc
  • bjaress/ghc
  • jhrcek/ghc
  • leonschoorl/ghc
  • lukasz-golebiewski/ghc
  • sheaf/ghc
  • last-g/ghc
  • carassius1014/ghc
  • eschwartz/ghc
  • dwincort/ghc
  • felixwiemuth/ghc
  • TimWSpence/ghc
  • marcusmonteirodesouza/ghc
  • WJWH/ghc
  • vtols/ghc
  • theobat/ghc
  • BinderDavid/ghc
  • ckoparkar0/ghc
  • alexander-kjeldaas/ghc
  • dme2/ghc
  • philderbeast/ghc
  • aaronallen8455/ghc
  • rayshih/ghc
  • benkard/ghc
  • mpardalos/ghc
  • saidelman/ghc
  • leiftw/ghc
  • ca333/ghc
  • bwroga/ghc
  • nmichael44/ghc
  • trac-crobbins/ghc
  • felixonmars/ghc
  • adityagupta1089/ghc
  • hgsipiere/ghc
  • treeowl/ghc
  • alexpeits/ghc
  • CraigFe/ghc
  • dnlkrgr/ghc
  • kerckhove_ts/ghc
  • cptwunderlich/ghc
  • eiais/ghc
  • hahohihu/ghc
  • sanchayan/ghc
  • lemmih/ghc
  • sehqlr/ghc
  • trac-dbeacham/ghc
  • luite/ghc
  • trac-f-a/ghc
  • vados/ghc
  • luntain/ghc
  • fatho/ghc
  • alexbiehl-gc/ghc
  • dcbdan/ghc
  • tvh/ghc
  • liam-ly/ghc
  • timbobbarnes/ghc
  • GovanifY/ghc
  • shanth2600/ghc
  • gliboc/ghc
  • duog/ghc
  • moxonsghost/ghc
  • zander/ghc
  • masaeedu/ghc
  • georgefst/ghc
  • guibou/ghc
  • nicuveo/ghc
  • mdebruijne/ghc
  • stjordanis/ghc
  • emiflake/ghc
  • wygulmage/ghc
  • frasertweedale/ghc
  • coot/ghc
  • aratamizuki/ghc
  • tsandstr/ghc
  • mrBliss/ghc
  • Anton-Latukha/ghc
  • tadfisher/ghc
  • vapourismo/ghc
  • Sorokin-Anton/ghc
  • basile-henry/ghc
  • trac-mightybyte/ghc
  • AbsoluteNikola/ghc
  • cobrien99/ghc
  • songzh/ghc
  • blamario/ghc
  • aj4ayushjain/ghc
  • trac-utdemir/ghc
  • tangcl/ghc
  • hdgarrood/ghc
  • maerwald/ghc
  • arjun/ghc
  • ratherforky/ghc
  • haskieLambda/ghc
  • EmilGedda/ghc
  • Bogicevic/ghc
  • eddiejessup/ghc
  • kozross/ghc
  • AlistairB/ghc
  • 3Rafal/ghc
  • christiaanb/ghc
  • trac-bit/ghc
  • matsumonkie/ghc
  • trac-parsonsmatt/ghc
  • chisui/ghc
  • jaro/ghc
  • trac-kmiyazato/ghc
  • davidsd/ghc
  • Tritlo/ghc
  • I-B-3/ghc
  • lykahb/ghc
  • AriFordsham/ghc
  • turion1/ghc
  • berberman/ghc
  • christiantakle/ghc
  • zyklotomic/ghc
  • trac-ocramz/ghc
  • CSEdd/ghc
  • doyougnu/ghc
  • mmhat/ghc
  • why-not-try-calmer/ghc
  • plutotulp/ghc
  • kjekac/ghc
  • Manvi07/ghc
  • teo/ghc
  • cactus/ghc
  • CarrieMY/ghc
  • abel/ghc
  • yihming/ghc
  • tsakki/ghc
  • jessicah/ghc
  • oliverbunting/ghc
  • meld/ghc
  • friedbrice/ghc
  • Joald/ghc
  • abarbu/ghc
  • DigitalBrains1/ghc
  • sterni/ghc
  • alexDarcy/ghc
  • hexchain/ghc
  • minimario/ghc
  • zliu41/ghc
  • tommd/ghc
  • jazcarate/ghc
  • peterbecich/ghc
  • alirezaghey/ghc
  • solomon/ghc
  • mikael.urankar/ghc
  • davjam/ghc
  • int-index/ghc
  • MorrowM/ghc
  • nrnrnr/ghc
  • Sonfamm/ghc-test-only
  • afzt1/ghc
  • nguyenhaibinh-tpc/ghc
  • trac-lierdakil/ghc
  • MichaWiedenmann1/ghc
  • jmorag/ghc
  • Ziharrk/ghc
  • trac-MitchellSalad/ghc
  • juampe/ghc
  • jwaldmann/ghc
  • snowleopard/ghc
  • juhp/ghc
  • normalcoder/ghc
  • ksqsf/ghc
  • trac-jberryman/ghc
  • roberth/ghc
  • 1ntEgr8/ghc
  • epworth/ghc
  • MrAdityaAlok/ghc
  • JunmingZhao42/ghc
  • jappeace/ghc
  • trac-Gabriel439/ghc
  • alt-romes/ghc
  • HugoPeters1024/ghc
  • 10ne1/ghc-fork
  • agentultra/ghc
  • Garfield1002/ghc
  • ChickenProp/ghc
  • clyring/ghc
  • MaxHearnden/ghc
  • jumper149/ghc
  • vem/ghc
  • ketzacoatl/ghc
  • Rosuavio/ghc
  • jackohughes/ghc
  • p4l1ly/ghc
  • konsumlamm/ghc
  • shlevy/ghc
  • torsten.schmits/ghc
  • andremarianiello/ghc
  • amesgen/ghc
  • googleson78/ghc
  • InfiniteVerma/ghc
  • uhbif19/ghc
  • yiyunliu/ghc
  • raehik/ghc
  • mrkun/ghc
  • telser/ghc
  • 1Jajen1/ghc
  • slotThe/ghc
  • WinstonHartnett/ghc
  • mpilgrem/ghc
  • dreamsmasher/ghc
  • schuelermine/ghc
  • trac-Viwor/ghc
  • undergroundquizscene/ghc
  • evertedsphere/ghc
  • coltenwebb/ghc
  • oberblastmeister/ghc
  • agrue/ghc
  • lf-/ghc
  • zacwood9/ghc
  • steshaw/ghc
  • high-cloud/ghc
  • SkamDart/ghc
  • PiDelport/ghc
  • maoif/ghc
  • RossPaterson/ghc
  • CharlesTaylor7/ghc
  • ribosomerocker/ghc
  • trac-ramirez7/ghc
  • daig/ghc
  • NicolasT/ghc
  • FinleyMcIlwaine/ghc
  • lawtonnichols/ghc
  • jmtd/ghc
  • ozkutuk/ghc
  • wildsebastian/ghc
  • nikshalark/ghc
  • lrzlin/ghc
  • tobias/ghc
  • fw/ghc
  • hawkinsw/ghc
  • type-dance/ghc
  • rui314/ghc
  • ocharles/ghc
  • wavewave/ghc
  • TheKK/ghc
  • nomeata/ghc
  • trac-csabahruska/ghc
  • jonathanjameswatson/ghc
  • L-as/ghc
  • Axman6/ghc
  • barracuda156/ghc
  • trac-jship/ghc
  • jake-87/ghc
  • meooow/ghc
  • rebeccat/ghc
  • hamana55/ghc
  • Enigmage/ghc
  • kokobd/ghc
  • agevelt/ghc
  • gshen42/ghc
  • chrismwendt/ghc
  • MangoIV/ghc
  • teto/ghc
  • Sookr1/ghc
  • trac-thomasjm/ghc
  • barci2/ghc-dev
  • trac-m4dc4p/ghc
  • dixonary/ghc
  • breakerzirconia/ghc
  • alexsio27444/ghc
  • glocq/ghc
  • sourabhxyz/ghc
  • ryantrinkle/ghc
  • Jade/ghc
  • scedfaliako/ghc
  • martijnbastiaan/ghc
  • trac-george.colpitts/ghc
  • ammarbinfaisal/ghc
  • mimi.vx/ghc
  • lortabac/ghc
  • trac-zyla/ghc
  • benbellick/ghc
  • aadaa-fgtaa/ghc
  • jvanbruegge/ghc
  • archbung/ghc
  • gilmi/ghc
  • mfonism/ghc
  • alex-mckenna/ghc
  • Ei30metry/ghc
  • DiegoDiverio/ghc
  • jorgecunhamendes/ghc
  • liesnikov/ghc
  • akrmn/ghc
  • trac-simplifierticks/ghc
  • jacco/ghc
  • rhendric/ghc
  • damhiya/ghc
  • ryndubei/ghc
  • DaveBarton/ghc
  • trac-Profpatsch/ghc
  • GZGavinZhao/ghc
  • ncfavier/ghc
  • jameshaydon/ghc
  • ajccosta/ghc
  • dschrempf/ghc
  • cydparser/ghc
  • LinuxUserGD/ghc
  • elodielander/ghc
  • facundominguez/ghc
  • psilospore/ghc
  • lachrimae/ghc
  • dylan-thinnes/ghc-type-errors-plugin
  • hamishmack/ghc
  • Leary/ghc
  • lzszt/ghc
  • lyokha/ghc
  • trac-glaubitz/ghc
  • Rewbert/ghc
  • andreabedini/ghc
  • Jasagredo/ghc
  • sol/ghc
  • OlegAlexander/ghc
  • trac-sthibaul/ghc
  • avdv/ghc
  • Wendaolee/ghc
  • ur4t/ghc
  • daylily/ghc
  • boltzmannrain/ghc
  • mmzk1526/ghc
  • trac-fizzixnerd/ghc
  • soulomoon/ghc
  • rwmjones/ghc
  • j14i/ghc
  • tracsis/ghc
  • gesh/ghc
  • flip101/ghc
  • eldritch-cookie/ghc
  • LemonjamesD/ghc
  • pgujjula/ghc
  • skeuchel/ghc
  • noteed/ghc
  • gulin.serge/ghc
  • Torrekie/ghc
  • jlwoodwa/ghc
  • ayanamists/ghc
  • husong998/ghc
  • trac-edmundnoble/ghc
  • josephf/ghc
  • contrun/ghc
  • baulig/ghc
  • edsko/ghc
  • mzschr/ghc-issue-24732
  • ulidtko/ghc
  • Arsen/ghc
  • trac-sjoerd_visscher/ghc
  • crumbtoo/ghc
  • L0neGamer/ghc
  • DrewFenwick/ghc
  • benz0li/ghc
  • MaciejWas/ghc
  • jordanrule/ghc
  • trac-qqwy/ghc
  • LiamGoodacre/ghc
  • isomorpheme/ghc
  • trac-danidiaz/ghc
  • Kariim/ghc
  • MTaimoorZaeem/ghc
  • hololeap/ghc
  • ticat-fp/ghc
  • meritamen/ghc
  • criskell/ghc
  • trac-kraai/ghc
  • aergus/ghc
  • jdral/ghc
  • SamB/ghc
  • Tristian/ghc
  • ywgrit/ghc
  • KatsuPatrick/ghc
  • OsePedro/ghc
  • mpscholten/ghc
  • fp/ghc
  • zaquest/ghc
  • fangyi-zhou/ghc
  • augyg/ghc
640 results
Show changes
Commits on Source (5808)
Showing
with 3919 additions and 1469 deletions
--command sh ./hadrian/ghci
--command sh -c "HADRIAN_ARGS=-j exec ./hadrian/ghci-multi -j"
--reload compiler
--reload ghc
--reload includes
--restart hadrian/ghci
--restart hadrian/ghci-multi
5eecb20a0368b599d03930e2dbb0e91540de4cb2
......@@ -2,3 +2,4 @@
# don't convert anything on checkout
* text=auto eol=lf
mk/win32-tarballs.md5sum text=auto eol=LF
testsuite/tests/parser/should_run/T25375.hs text=auto eol=crlf
......@@ -35,6 +35,7 @@ Thumbs.db
__pycache__
.mypy_cache
*.SYMDEF*
a.out
log
tags
......@@ -60,7 +61,9 @@ _*
*/ghc-stage1
.shake.*
.hadrian_ghci
.hadrian_ghci_multi/
.hie-bios
hadrian/bootstrap/jq-bin
# -----------------------------------------------------------------------------
# Ignore any overlapped darcs repos and back up files
......@@ -112,7 +115,7 @@ _darcs/
/compiler/FunTypes.h
/compiler/MachRegs.h
/compiler/MachRegs
/compiler/ghc-llvm-version.h
/compiler/GHC/CmmToLlvm/Version/Bounds.hs
/compiler/ghc.cabal
/compiler/ghc.cabal.old
/distrib/configure.ac
......@@ -165,8 +168,12 @@ _darcs/
/libraries/ghc-boot/ghc-boot.cabal
/libraries/ghc-boot-th/GNUmakefile
/libraries/ghc-boot-th/ghc-boot-th.cabal
/libraries/ghc-boot-th-next/ghc-boot-th-next.cabal
/libraries/ghc-boot-th/ghc.mk
/libraries/ghc-heap/ghc-heap.cabal
/libraries/ghc-internal/ghc-internal.cabal
/libraries/ghc-experimental/ghc-experimental.cabal
/libraries/base/base.cabal
/libraries/ghci/GNUmakefile
/libraries/ghci/ghci.cabal
/libraries/ghci/ghc.mk
......@@ -184,8 +191,6 @@ _darcs/
/linter.log
/mk/are-validating.mk
/mk/build.mk
/mk/unused.h
/mk/unused.h.in
/mk/config.mk
/mk/config.mk.old
/mk/system-cxx-std-lib-1.0.conf
......@@ -204,10 +209,9 @@ _darcs/
/utils/runghc/runghc.cabal
/utils/gen-dll/gen-dll.cabal
/utils/ghc-pkg/ghc-pkg.cabal
utils/lndir/fs.*
utils/unlit/fs.*
libraries/base/include/fs.h
libraries/base/cbits/fs.c
libraries/ghc-internal/include/fs.h
libraries/ghc-internal/cbits/fs.c
missing-win32-tarballs
/extra-gcc-opts
......
......@@ -2,11 +2,11 @@ variables:
GIT_SSL_NO_VERIFY: "1"
# Commit of ghc/ci-images repository from which to pull Docker images
DOCKER_REV: a55d4ae0f9da0a2fb3bc72a13f356e2511a4c4fd
DOCKER_REV: 94df7d589f0ded990826bc7a4d7f5a40d6055a4f
# Sequential version number of all cached things.
# Bump to invalidate GitLab CI cache.
CACHE_REV: 10
CACHE_REV: 11
# Disable shallow clones; they break our linting rules
GIT_DEPTH: 0
......@@ -22,6 +22,9 @@ variables:
GIT_SUBMODULE_STRATEGY: "normal"
# GitLab recommends using https:, not ssh:, to clone submodules. See #25528.
GIT_SUBMODULE_FORCE_HTTPS: 1
# Makes ci.sh isolate CABAL_DIR
HERMETIC: "YES"
......@@ -101,12 +104,10 @@ workflow:
# which versions of GHC to allow bootstrap with
.bootstrap_matrix : &bootstrap_matrix
matrix:
- GHC_VERSION: 9.4.7
DOCKER_IMAGE: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10-ghc9_4:$DOCKER_REV"
- GHC_VERSION: 9.6.3
DOCKER_IMAGE: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10-ghc9_6:$DOCKER_REV"
- GHC_VERSION: 9.8.1
DOCKER_IMAGE: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10-ghc9_8:$DOCKER_REV"
DOCKER_IMAGE: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12-ghc9_8:$DOCKER_REV"
- GHC_VERSION: 9.10.1
DOCKER_IMAGE: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12-ghc9_10:$DOCKER_REV"
# Allow linters to fail on draft MRs.
# This must be explicitly transcluded in lint jobs which
......@@ -218,7 +219,7 @@ include: '.gitlab/jobs.yaml'
ghc-linters:
stage: tool-lint
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
extends: .lint-params
variables:
BUILD_FLAVOUR: default
......@@ -258,7 +259,7 @@ typecheck-testsuite:
# accommodate, e.g., haddock changes not yet upstream) but not on `master` or
# Marge jobs.
.lint-submods:
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
extends: .lint-params
variables:
BUILD_FLAVOUR: default
......@@ -276,7 +277,7 @@ typecheck-testsuite:
# accommodate, e.g., haddock changes not yet upstream) but not on `master` or
# Marge jobs.
lint-author:
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
extends: .lint-params
variables:
BUILD_FLAVOUR: default
......@@ -291,7 +292,7 @@ lint-author:
- *drafts-can-fail-lint
lint-ci-config:
image: nixos/nix:2.14.1
image: nixos/nix:2.25.2
extends: .lint
# We don't need history/submodules in this job
variables:
......@@ -299,6 +300,18 @@ lint-ci-config:
GIT_SUBMODULE_STRATEGY: none
before_script:
- echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf
# Note [Nix-in-Docker]
# ~~~~~~~~~~~~~~~~~~~~
# The nixos/nix default config is max-jobs=1 and cores=$(logical
# cores num) which doesn't play nice with our $CPUS convention. We
# fix it before invoking any nix build to avoid oversubscribing
# while allowing a reasonable degree of parallelism.
# FIXME: Disabling build-users-group=nixbld is a workaround for a Nix-in-Docker issue. See
# https://gitlab.haskell.org/ghc/head.hackage/-/issues/38#note_560487 for
# discussion.
- echo "cores = $CPUS" >> /etc/nix/nix.conf
- echo "max-jobs = $CPUS" >> /etc/nix/nix.conf
- nix run nixpkgs#gnused -- -i -e 's/ nixbld//' /etc/nix/nix.conf
script:
- nix run .gitlab/generate-ci#generate-jobs
# 1 if .gitlab/generate_jobs changed the output of the generated config
......@@ -345,7 +358,7 @@ lint-submods-branch:
.lint-params:
needs: []
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
extends: .lint
before_script:
- export PATH="/opt/toolchain/bin:$PATH"
......@@ -386,7 +399,7 @@ hadrian-ghc-in-ghci:
- job: lint-linters
- job: lint-submods
optional: true
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
before_script:
# workaround for docker permissions
- sudo chown ghc:ghc -R .
......@@ -396,13 +409,14 @@ hadrian-ghc-in-ghci:
- x86_64-linux
script:
- git clean -xdf && git submodule foreach git clean -xdf
- .gitlab/ci.sh setup
- .gitlab/ci.sh configure
- . .gitlab/ci.sh setup
- . .gitlab/ci.sh configure
# Enable -Werror when building hadrian
- "echo 'package hadrian' > hadrian/cabal.project.local"
- "echo ' ghc-options: -Werror' >> hadrian/cabal.project.local"
# Load ghc-in-ghci then immediately exit and check the modules loaded
- echo ":q" | hadrian/ghci -j`mk/detect-cpu-count.sh`| tail -n2 | grep "Ok,"
- export CORES="$(mk/detect-cpu-count.sh)"
- echo ":q" | HADRIAN_ARGS=-j$CORES hadrian/ghci -j$CORES | tail -n2 | grep "Ok,"
after_script:
- .gitlab/ci.sh save_cache
- cat ci-timings
......@@ -430,7 +444,12 @@ hadrian-multi:
# workaround for docker permissions
- sudo chown ghc:ghc -R .
variables:
GHC_FLAGS: "-Werror -Wwarn=deprecations"
GHC_FLAGS: "-Werror=-Wno-error=incomplete-record-selectors -Wwarn=deprecations -Wwarn=unused-imports"
# -Wno-error=incomplete-record-selectors is present because -Wall now
# includes -Wincomplete-record-selectors, and hadrian-multi has many, many
# warnings about incomplete record selectors. A better fix would be to
# remove the use of incomplete record selectors, since each of them represents
# a potential crash.
CONFIGURE_ARGS: --enable-bootstrap-with-devel-snapshot
tags:
- x86_64-linux
......@@ -449,12 +468,13 @@ hadrian-multi:
- export HC=$root/bin/ghc
# This GHC means, use this GHC to configure with
- export GHC=$root/bin/ghc
- .gitlab/ci.sh setup
- .gitlab/ci.sh configure
- . .gitlab/ci.sh setup
- . .gitlab/ci.sh configure
# Now GHC means, use this GHC for hadrian
- export GHC=$BOOT_HC
- export CORES="$(mk/detect-cpu-count.sh)"
# Load hadrian-multi then immediately exit and check the modules loaded
- echo ":q" | hadrian/ghci-multi -j`mk/detect-cpu-count.sh`| tail -n2 | grep "Ok,"
- echo ":q" | HADRIAN_ARGS=-j$CORES hadrian/ghci-multi -j$CORES | tail -n2 | grep "Ok,"
after_script:
- .gitlab/ci.sh save_cache
cache:
......@@ -475,8 +495,8 @@ stack-hadrian-build:
extends: hadrian-ghc-in-ghci
stage: quick-build
script:
- .gitlab/ci.sh setup
- .gitlab/ci.sh configure
- . .gitlab/ci.sh setup
- . .gitlab/ci.sh configure
- hadrian/build-stack --version
####################################
......@@ -530,11 +550,11 @@ abi-test-nightly:
doc-tarball:
stage: packaging
needs:
- job: x86_64-linux-deb10-numa-slow-validate
- job: x86_64-linux-deb12-numa-slow-validate
optional: true
- job: nightly-x86_64-linux-deb10-validate
- job: nightly-x86_64-linux-deb12-validate
optional: true
- job: release-x86_64-linux-deb10-release
- job: release-x86_64-linux-deb12-release
optional: true
- job: x86_64-windows-validate
......@@ -546,23 +566,28 @@ doc-tarball:
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
dependencies: null
variables:
LINUX_BINDIST: "ghc-x86_64-linux-deb10.tar.xz"
LINUX_BINDIST: "ghc-x86_64-linux-deb12.tar.xz"
WINDOWS_BINDIST: "ghc-x86_64-windows.tar.xz"
artifacts:
expose_as: "Documentation Preview"
paths:
- haddock.html.tar.xz
- docs/haddock/
- libraries.html.tar.xz
- docs/libraries/
- users_guide.html.tar.xz
- index.html
- "*.pdf"
- docs/users_guide/
- docs/index.html
- Haddock.pdf
- users_guide.pdf
script:
- |
mv "ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz" "$LINUX_BINDIST" \
|| mv "ghc-x86_64-linux-deb10-validate.tar.xz" "$LINUX_BINDIST" \
|| mv "ghc-x86_64-linux-deb10-release.tar.xz" "$LINUX_BINDIST" \
mv "ghc-x86_64-linux-deb12-numa-slow-validate.tar.xz" "$LINUX_BINDIST" \
|| mv "ghc-x86_64-linux-deb12-validate.tar.xz" "$LINUX_BINDIST" \
|| mv "ghc-x86_64-linux-deb12-release.tar.xz" "$LINUX_BINDIST" \
|| true
mv "ghc-x86_64-windows-validate.tar.xz" "$WINDOWS_BINDIST" \
|| mv "ghc-x86_64-windows-release.tar.xz" "$WINDOWS_BINDIST" \
......@@ -577,8 +602,8 @@ doc-tarball:
fi
- rm -Rf docs
- bash -ex distrib/mkDocs/mkDocs $LINUX_BINDIST $WINDOWS_BINDIST
- mv docs/*.tar.xz docs/*.pdf .
- ls -lh
- mv docs/*.tar.xz docs/index.html .
hackage-doc-tarball:
stage: packaging
......@@ -590,7 +615,7 @@ hackage-doc-tarball:
- job: source-tarball
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
dependencies: null
variables:
# Don't clone the git repo..
......@@ -606,8 +631,8 @@ hackage-doc-tarball:
script:
- cd ghc*/
- mv .gitlab/rel_eng/upload_ghc_libs.py .
- .gitlab/ci.sh setup
- .gitlab/ci.sh configure
- . .gitlab/ci.sh setup
- . .gitlab/ci.sh configure
- ./upload_ghc_libs.py prepare --bindist ghc*linux/
- mv .upload-libs/docs ../hackage_docs
rules:
......@@ -616,17 +641,19 @@ hackage-doc-tarball:
source-tarball:
stage: full-build
needs:
- hadrian-ghc-in-ghci
tags:
- x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
dependencies: []
artifacts:
paths:
- ghc-*.tar.xz
script:
- sudo chown ghc:ghc -R .
- ./boot
- ./configure
- . .gitlab/ci.sh setup
- . .gitlab/ci.sh configure
- ./hadrian/build source-dist
- mv _build/source-dist/*.xz .
rules:
......@@ -637,6 +664,8 @@ source-tarball:
generate-hadrian-bootstrap-sources:
stage: full-build
needs:
- hadrian-ghc-in-ghci
tags:
- x86_64-linux
image: "$DOCKER_IMAGE"
......@@ -660,7 +689,7 @@ package-hadrian-bootstrap-sources:
tags:
- x86_64-linux
needs: ["generate-hadrian-bootstrap-sources"]
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
artifacts:
paths:
- hadrian-bootstrap-sources-all.tar.gz
......@@ -692,7 +721,10 @@ test-bootstrap:
- .gitlab/ci.sh setup
# Bootstrapping should not depend on HAPPY or ALEX so set them to false
# so the build fails if they are invoked.
- export HAPPY=/bin/false; export ALEX=/bin/false
- unset HAPPY; unset ALEX
# Check the commands are not available, parens are crucial to start a subshell
- (! command -v alex --version)
- (! command -v happy --version)
- .gitlab/ci.sh configure
- .gitlab/ci.sh build_hadrian
- .gitlab/ci.sh test_hadrian
......@@ -701,7 +733,7 @@ test-bootstrap:
variables:
# Don't record performance benchmarks
TEST_ENV: ""
BIN_DIST_NAME: "ghc-x86_64-deb10-linux"
BIN_DIST_NAME: "ghc-x86_64-deb12-linux"
BUILD_FLAVOUR: "validate"
NO_BOOT: "1"
rules:
......@@ -750,16 +782,16 @@ test-bootstrap:
hackage-lint:
needs:
- job: x86_64-linux-deb10-numa-slow-validate
- job: x86_64-linux-deb12-numa-slow-validate
optional: true
artifacts: false
- job: nightly-x86_64-linux-deb10-numa-slow-validate
- job: nightly-x86_64-linux-deb12-numa-slow-validate
optional: true
artifacts: false
- job: nightly-aarch64-linux-deb10-validate
- job: nightly-aarch64-linux-deb12-validate
optional: true
artifacts: false
- job: aarch64-linux-deb10-validate
- job: aarch64-linux-deb12-validate
optional: true
artifacts: false
extends: .hackage
......@@ -774,10 +806,10 @@ hackage-lint:
hackage-label-lint:
needs:
- job: x86_64-linux-deb10-numa-slow-validate
- job: x86_64-linux-deb12-numa-slow-validate
optional: true
artifacts: false
- job: aarch64-linux-deb10-validate
- job: aarch64-linux-deb12-validate
optional: true
artifacts: false
extends: .hackage
......@@ -791,10 +823,10 @@ hackage-label-lint:
# affects the total allocation numbers for the simplifier portion significantly.
nightly-hackage-lint:
needs:
- job: nightly-x86_64-linux-deb10-numa-slow-validate
- job: nightly-x86_64-linux-deb12-numa-slow-validate
optional: true
artifacts: false
- job: nightly-aarch64-linux-deb10-validate
- job: nightly-aarch64-linux-deb12-validate
optional: true
artifacts: false
rules:
......@@ -811,7 +843,7 @@ nightly-hackage-perf:
- job: nightly-x86_64-linux-fedora33-release
optional: true
artifacts: false
- job: nightly-aarch64-linux-deb10-validate
- job: nightly-aarch64-linux-deb12-validate
optional: true
artifacts: false
rules:
......@@ -830,12 +862,16 @@ release-hackage-lint:
- job: release-x86_64-linux-fedora33-release
optional: true
artifacts: false
- job: release-aarch64-linux-deb10-release+no_split_sections
- job: release-aarch64-linux-deb12-release+no_split_sections
optional: true
artifacts: false
rules:
- if: '$RELEASE_JOB == "yes"'
extends: .hackage
# The ghcup metadata pipeline requires all prior jobs to
# pass. The hackage job can easily fail due to API changes
# or similar - so we allow it to fail.
allow_failure: true
variables:
# No slow-validate bindist on release pipeline
EXTRA_HC_OPTS: "-dlint"
......@@ -859,9 +895,9 @@ release-hackage-lint:
.test-primops-validate-template:
needs:
- job: x86_64-linux-deb10-validate+debug_info
- job: x86_64-linux-deb12-validate
artifacts: false
- job: aarch64-linux-deb10-validate
- job: aarch64-linux-deb12-validate
artifacts: false
- job: aarch64-darwin-validate
artifacts: false
......@@ -873,13 +909,17 @@ test-primops-label:
extends: .test-primops-validate-template
rules:
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/'
# We do not use *.full-ci here since that would imply running in nightly
# where we do not have the normal validate jobs. We have the -nightly job
# below to handle this case.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/'
test-primops-nightly:
extends: .test-primops
needs:
- job: nightly-x86_64-linux-deb10-validate
- job: nightly-x86_64-linux-deb12-validate
artifacts: false
- job: nightly-aarch64-linux-deb10-validate
- job: nightly-aarch64-linux-deb12-validate
artifacts: false
- job: nightly-aarch64-darwin-validate
artifacts: false
......@@ -1018,6 +1058,7 @@ abi-test:
- out
rules:
- *full-ci
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-abi.*/'
############################################################
......@@ -1045,7 +1086,7 @@ pages:
<meta charset="UTF-8">
<meta http-equiv="refresh" content="1; url=doc/">
EOF
- cp -f index.html public/doc
- cp -f docs/index.html public/doc
rules:
# N.B. only run this on ghc/ghc since the deployed pages are quite large
# and we only serve GitLab Pages for ghc/ghc.
......@@ -1063,7 +1104,7 @@ pages:
project-version:
stage: packaging
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
tags:
- x86_64-linux
variables:
......@@ -1083,7 +1124,7 @@ project-version:
.ghcup-metadata:
stage: deploy
image: nixos/nix:2.14.1
image: nixos/nix:2.25.2
dependencies: null
tags:
- x86_64-linux
......@@ -1092,6 +1133,10 @@ project-version:
GIT_SUBMODULE_STRATEGY: "none"
before_script:
- echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf
# FIXME: See Note [Nix-in-Docker]
- echo "cores = $CPUS" >> /etc/nix/nix.conf
- echo "max-jobs = $CPUS" >> /etc/nix/nix.conf
- nix run nixpkgs#gnused -- -i -e 's/ nixbld//' /etc/nix/nix.conf
- nix-channel --update
- cat version.sh
# Calculate the project version
......@@ -1114,7 +1159,7 @@ ghcup-metadata-nightly:
needs:
- job: nightly-x86_64-linux-fedora33-release
artifacts: false
- job: nightly-x86_64-linux-centos7-validate
- job: nightly-x86_64-linux-ubuntu22_04-validate
artifacts: false
- job: nightly-x86_64-linux-ubuntu20_04-validate
artifacts: false
......@@ -1130,21 +1175,31 @@ ghcup-metadata-nightly:
artifacts: false
- job: nightly-x86_64-linux-alpine3_12-validate
artifacts: false
- job: nightly-x86_64-linux-alpine3_20-validate
artifacts: false
- job: nightly-x86_64-linux-deb9-validate
artifacts: false
- job: nightly-i386-linux-deb10-validate
artifacts: false
- job: nightly-i386-linux-deb12-validate
artifacts: false
- job: nightly-x86_64-linux-deb10-validate
artifacts: false
- job: nightly-aarch64-linux-deb10-validate
artifacts: false
- job: nightly-x86_64-linux-deb11-validate
artifacts: false
- job: nightly-x86_64-linux-deb12-validate
artifacts: false
- job: nightly-aarch64-linux-deb12-validate
artifacts: false
- job: nightly-aarch64-linux-alpine3_18-validate
artifacts: false
- job: source-tarball
artifacts: false
- job: project-version
script:
- nix shell --extra-experimental-features nix-command -f .gitlab/rel_eng -c ghcup-metadata --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" > "metadata_test.yaml"
- nix shell -f .gitlab/rel_eng -c ghcup-metadata --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" > "metadata_test.yaml"
rules:
- if: $NIGHTLY
......@@ -1182,7 +1237,8 @@ ghcup-metadata-release:
# No explicit needs for release pipeline as we assume we need everything and everything will pass.
extends: .ghcup-metadata
script:
- nix shell --extra-experimental-features nix-command -f .gitlab/rel_eng -c ghcup-metadata --release-mode --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" > "metadata_test.yaml"
- nix shell -f .gitlab/rel_eng -c ghcup-metadata --release-mode --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" --fragment
- nix shell -f .gitlab/rel_eng -c ghcup-metadata --release-mode --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" > "metadata_test.yaml"
rules:
- if: '$RELEASE_JOB == "yes"'
......@@ -1193,10 +1249,17 @@ ghcup-metadata-release:
UPSTREAM_PROJECT_ID: "$CI_PROJECT_ID"
UPSTREAM_PIPELINE_ID: "$CI_PIPELINE_ID"
RELEASE_JOB: "$RELEASE_JOB"
# Do not inherit global variables (such as CONFIGURE_ARGS) as these take
# precedence over the variables defined in the downstream job.
inherit:
variables: false
trigger:
project: "ghc/ghcup-ci"
branch: "upstream-testing"
strategy: "depend"
forward:
yaml_variables: true
pipeline_variables: false
ghcup-metadata-testing-nightly:
needs:
......
# Where the GitLab happens
## Updating PERF_NOTES_PUSH_CREDENTIALS
This CI variable is used by test-metrics.sh to push performance data as a git
note to https://gitlab.haskell.org/ghc/ghc-performance-notes.
The current token will expire on 2025-07-02.
### STEPS
Set and fetch the updated token:
```
GITLAB_WRITE=<Your Gitlab API token>
one_year_later="$(date --date='1 year' --iso-8601)"
curl -X POST --header "PRIVATE-TOKEN: $GITLAB_WRITE" -H "Content-Type: application/json" \
--data '{"name":"test-metrics.sh", "scopes":["write_repository"], "expires_at":"$one_year_later"}' \
https://gitlab.haskell.org/api/v4/projects/117/access_tokens \
| jq .token
```
Update the variable:
```
GITLAB_WRITE=<Your Gitlab API token>
NEW_VALUE=<Output from the above>
curl --fail-with-body --request PUT --header "PRIVATE-TOKEN: $GITLAB_WRITE" \
"https://gitlab.haskell.org/api/v4/projects/1/variables/PERF_NOTES_PUSH_CREDENTIALS" \
--form "value=$NEW_VALUE"
```
......@@ -7,7 +7,8 @@
set -Eeuo pipefail
# Configuration:
HACKAGE_INDEX_STATE="2023-10-05T11:38:51Z"
# N.B. You may want to also update the index-state in hadrian/cabal.project.
HACKAGE_INDEX_STATE="2025-01-27T17:45:32Z"
MIN_HAPPY_VERSION="1.20"
MIN_ALEX_VERSION="3.2.6"
......@@ -151,6 +152,8 @@ function mingw_init() {
# We always use mingw64 Python to avoid path length issues like #17483.
export PYTHON="/mingw64/bin/python3"
# And need to use sphinx-build from the environment
export SPHINXBUILD="/mingw64/bin/sphinx-build.exe"
}
# This will contain GHC's local native toolchain
......@@ -305,7 +308,7 @@ function fetch_cabal() {
fail "neither CABAL nor CABAL_INSTALL_VERSION are not set"
fi
start_section "fetch GHC"
start_section "fetch cabal"
case "$(uname)" in
# N.B. Windows uses zip whereas all others use .tar.xz
MSYS_*|MINGW*)
......@@ -323,16 +326,22 @@ function fetch_cabal() {
local base_url="https://downloads.haskell.org/~cabal/cabal-install-$v/"
case "$(uname)" in
Darwin) cabal_url="$base_url/cabal-install-$v-x86_64-apple-darwin17.7.0.tar.xz" ;;
FreeBSD) cabal_url="$base_url/cabal-install-$v-x86_64-freebsd13.tar.xz" ;;
FreeBSD) cabal_url="$base_url/cabal-install-$v-x86_64-freebsd14.tar.xz" ;;
*) fail "don't know where to fetch cabal-install for $(uname)"
esac
echo "Fetching cabal-install from $cabal_url"
curl "$cabal_url" > cabal.tar.xz
tmp="$(tar -tJf cabal.tar.xz | head -n1)"
$TAR -xJf cabal.tar.xz
mv cabal "$toolchain/bin"
# Check if the bindist has directory structure
if [[ "$tmp" = "cabal" ]]; then
mv cabal "$toolchain/bin"
else
mv "$tmp/cabal" "$toolchain/bin"
fi
;;
esac
end_section "fetch GHC"
end_section "fetch cabal"
fi
}
......@@ -401,6 +410,12 @@ function configure() {
else
args+=("--disable-numa")
fi
if [[ -n ${HAPPY:-} ]]; then
args+=("HAPPY=$HAPPY")
fi
if [[ -n ${ALEX:-} ]]; then
args+=("ALEX=$ALEX")
fi
start_section "configuring"
# See https://stackoverflow.com/questions/7577052 for a rationale for the
......@@ -409,8 +424,6 @@ function configure() {
--enable-tarballs-autodownload \
"${args[@]+"${args[@]}"}" \
GHC="$GHC" \
HAPPY="$HAPPY" \
ALEX="$ALEX" \
|| ( cat config.log; fail "configure failed" )
end_section "configuring"
}
......@@ -425,7 +438,9 @@ function push_perf_notes() {
return
fi
if [ -n "${CROSS_TARGET:-}" ] && [ "${CROSS_EMULATOR:-}" != "js-emulator" ]; then
# TODO: Remove this check, see #25299
# It is easy to forget to update this when testing a new cross platform
if [[ -n "${CROSS_TARGET:-}" ]] && [[ "${CROSS_TARGET:-}" != *"javascript"* ]] && [[ "${CROSS_TARGET:-}" != *"wasm"* ]]; then
info "Can't test cross-compiled build."
return
fi
......@@ -554,8 +569,10 @@ function install_bindist() {
run ${CONFIGURE_WRAPPER:-} ./configure \
--prefix="$instdir" \
"${args[@]+"${args[@]}"}"
"${args[@]+"${args[@]}"}" || fail "bindist configure failed"
make_install_destdir "$TOP"/destdir "$instdir"
# And check the `--info` of the installed compiler, sometimes useful in CI log.
"$instdir"/bin/ghc --info
;;
esac
popd
......@@ -671,12 +688,25 @@ function test_hadrian() {
}
function summarise_hi_files() {
for iface in $(find . -type f -name "*.hi" | sort); do echo "$iface $($HC --show-iface $iface | grep " ABI hash:")"; done | tee $OUT/abis
for iface in $(find . -type f -name "*.hi" | sort); do echo "$iface $($HC --show-iface $iface | grep " interface hash:")"; done | tee $OUT/interfaces
for iface in $(find . -type f -name "*.hi" | sort); do
fname="$OUT/$(dirname $iface)"
mkdir -p $fname
$HC --show-iface $iface > "$OUT/$iface"
hi_files=$(find . -type f -name "*.hi" | sort)
for iface in $hi_files; do echo "$iface $($HC --show-iface "$iface" | grep " ABI hash:")"; done | tee $OUT/abis
for iface in $hi_files; do echo "$iface $($HC --show-iface "$iface" | grep " interface hash:")"; done | tee $OUT/interfaces
for iface in $hi_files; do
fname="$OUT/$(dirname "$iface")"
mkdir -p "$fname"
$HC --show-iface "$iface" > "$OUT/$iface"
done
}
function summarise_o_files() {
OBJDUMP=$(if test "$(uname)" == "Darwin"; then echo "objdump -m"; else echo "objdump"; fi)
o_files=$(find . -type f -name "*.o" | sort)
for o in $o_files; do
fname="$OUT/objs/$(dirname "$o")"
mkdir -p "$fname"
# To later compare object dumps except for the first line which prints the file path
$OBJDUMP --all-headers "$o" | tail -n+2 > "$OUT/objs/$o.all-headers"
$OBJDUMP --disassemble-all "$o" | tail -n+2 > "$OUT/objs/$o.disassemble-all"
done
}
......@@ -691,11 +721,13 @@ function cabal_abi_test() {
start_section "Cabal test: $OUT"
mkdir -p "$OUT"
run "$HC" \
"$HC" \
-hidir tmp -odir tmp -fforce-recomp -haddock \
-iCabal/Cabal/src -XNoPolyKinds Distribution.Simple -j"$cores" \
"$@" 2>&1 | tee $OUT/log
-fobject-determinism \
"$@" 2>&1 | sed '1d' | tee $OUT/log
summarise_hi_files
summarise_o_files
popd
end_section "Cabal test: $OUT"
}
......@@ -740,12 +772,40 @@ function check_interfaces(){
for line in $(echo "$difference" | tr ' ' '\n' | grep ".hi" | sort | uniq); do
diff "$1/$line" "$2/$line"
done
fail "$3"
fail "$4"
fi
}
function check_objects(){
# Big fast check
if diff -r "$1" "$2"
then
echo "Objects are the same"
else
echo "--------------------------------------------------------------------------------"
echo "Comparing all objects (1. headers, 2. disassembly). Stopping at first failure..."
echo "--------------------------------------------------------------------------------"
pushd "$1" >/dev/null
OBJ_DUMPS=$(find . -type f -name "*.all-headers" -or -name "*.disassemble-all")
popd >/dev/null
for dump in $OBJ_DUMPS
do
if diff "$1/$dump" "$2/$dump"
then
fail "Mismatched object: $dump"
fi
done
fail "Some objects are mismatched, but theres no diff with --all-headers or --disassemble-all. Perhaps try objdump -s"
fi
}
function abi_test() {
for i in {1..20}; do info "iteration $i"; run_abi_test; done
for i in {1..10}; do info "iteration $i"; run_abi_test; done
}
function run_abi_test() {
......@@ -753,10 +813,12 @@ function run_abi_test() {
fail "HC not set"
fi
mkdir -p out
OUT="$PWD/out/run1" DIR=$(mktemp -d XXXX-looooooooong) cabal_abi_test -O0
OUT="$PWD/out/run2" DIR=$(mktemp -d XXXX-short) cabal_abi_test -O0
OUT="$PWD/out/run1" DIR=$(mktemp -d XXXX-looooooooong) cabal_abi_test -O1 -haddock
# Count uniques in reverse one of the runs to get more non-determinism exposed
OUT="$PWD/out/run2" DIR=$(mktemp -d XXXX-short) cabal_abi_test -O1 -haddock -dunique-increment=-1 -dinitial-unique=16777215
check_interfaces out/run1 out/run2 abis "Mismatched ABI hash"
check_interfaces out/run1 out/run2 interfaces "Mismatched interface hashes"
check_objects out/run1 out/run2
}
function save_test_output() {
......@@ -898,7 +960,7 @@ if [ "${CI_COMMIT_BRANCH:-}" == "master" ] && [ "${CI_PROJECT_PATH:-}" == "ghc/
fi
fi
if [ -n "${IGNORE_PERF_FAILURES:-}" ]; then
RUNTEST_ARGS="--ignore-perf-failures=$IGNORE_PERF_FAILURES"
RUNTEST_ARGS=( "${RUNTEST_ARGS[@]:-}" "--ignore-perf-failures=$IGNORE_PERF_FAILURES" )
fi
if [[ -z ${BIGNUM_BACKEND:-} ]]; then BIGNUM_BACKEND=gmp; fi
......
......@@ -12,15 +12,15 @@
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"nixpkgs": {
"branch": "master",
"branch": "nixos-unstable",
"description": "Nix Packages collection",
"homepage": "",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ce1aa29621356706746c53e2d480da7c68f6c972",
"sha256": "sha256:1sbs3gi1nf4rcbmnw69fw0fpvb3qvlsa84hqimv78vkpd6xb0bgg",
"rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60",
"sha256": "1anwxmjpm21msnnlrjdz19w31bxnbpn4kgf93sn3npihi7wf4a8h",
"type": "tarball",
"url": "https://github.com/nixos/nixpkgs/archive/ce1aa29621356706746c53e2d480da7c68f6c972.tar.gz",
"url": "https://github.com/nixos/nixpkgs/archive/2893f56de08021cffd9b6b6dfc70fd9ccd51eb60.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}
}
......@@ -4,6 +4,7 @@ let
sources = import ./nix/sources.nix;
nixpkgsSrc = sources.nixpkgs;
pkgs = import nixpkgsSrc { inherit system; };
hostPkgs = import nixpkgsSrc { };
in
let
......@@ -13,25 +14,29 @@ let
targetTriple = pkgs.stdenv.targetPlatform.config;
ghcBindists = let version = ghc.version; in {
aarch64-darwin = pkgs.fetchurl {
aarch64-darwin = hostPkgs.fetchurl {
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-aarch64-apple-darwin.tar.xz";
sha256 = "sha256-tQUHsingxBizLktswGAoi6lJf92RKWLjsHB9CisANlg=";
sha256 = "sha256-c1GTMJf3/yiW/t4QL532EswD5JVlgA4getkfsxj4TaA=";
};
x86_64-darwin = pkgs.fetchurl {
x86_64-darwin = hostPkgs.fetchurl {
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
sha256 = "sha256-OjXjVe+ZODDCc/hqtihqqz6CX25TKI0ZgORzkR5O3pQ=";
sha256 = "sha256-LrYniMG0phsvyW6dhQC+3ompvzcxnwAe6GezEqqzoTQ=";
};
};
ghc = pkgs.stdenv.mkDerivation rec {
version = "9.4.4";
# Using 9.6.2 because of #24050
version = "9.6.2";
name = "ghc";
src = ghcBindists.${pkgs.stdenv.hostPlatform.system};
configureFlags = [
"CC=/usr/bin/clang"
"CLANG=/usr/bin/clang"
"AR=/usr/bin/ar"
"LLC=${llvm}/bin/llc"
"OPT=${llvm}/bin/opt"
"LLVMAS=${llvm_clang}/bin/clang"
"CONF_CC_OPTS_STAGE2=--target=${targetTriple}"
"CONF_CXX_OPTS_STAGE2=--target=${targetTriple}"
"CONF_GCC_LINKER_OPTS_STAGE2=--target=${targetTriple}"
......@@ -92,7 +97,8 @@ let
};
fonts = with pkgs; makeFontsConf { fontDirectories = [ dejavu_fonts ]; };
llvm = pkgs.llvm_11;
llvm = pkgs.llvm_15;
llvm_clang = pkgs.llvmPackages_15.clang-unwrapped;
in
pkgs.writeTextFile {
name = "toolchain";
......@@ -108,6 +114,7 @@ pkgs.writeTextFile {
export GHC="${ghc}/bin/ghc"
export LLC="${llvm}/bin/llc"
export OPT="${llvm}/bin/opt"
export LLVMAS="${llvm_clang}/bin/clang"
export SPHINXBUILD="${pkgs.python3Packages.sphinx}/bin/sphinx-build"
export CABAL_INSTALL="${pkgs.cabal-install}/bin/cabal"
export CABAL="$CABAL_INSTALL"
......
......@@ -5,11 +5,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1687709756,
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
......@@ -20,11 +20,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1687886075,
"narHash": "sha256-PeayJDDDy+uw1Ats4moZnRdL1OFuZm1Tj+KiHlD67+o=",
"lastModified": 1724334015,
"narHash": "sha256-5sfvc0MswIRNdRWioUhG58rGKGn2o90Ck6l6ClpwQqA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a565059a348422af5af9026b5174dc5c0dcefdae",
"rev": "6d204f819efff3d552a88d0a44b5aaaee172b784",
"type": "github"
},
"original": {
......
......@@ -5,6 +5,12 @@
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE ViewPatterns #-}
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
{-# HLINT ignore "Use newtype instead of data" #-}
{-# HLINT ignore "Use camelCase" #-}
{-# LANGUAGE DerivingStrategies #-}
import Data.Aeson as A
import qualified Data.Map as Map
import Data.Map (Map)
......@@ -101,21 +107,24 @@ There are two different modes this script can operate in:
data Opsys
= Linux LinuxDistro
| Darwin
| FreeBSD13
| FreeBSD14
| Windows deriving (Eq)
data LinuxDistro
= Debian12
| Debian12Riscv
| Debian11
| Debian11Js
| Debian10
| Debian9
| Fedora33
| Fedora38
| Ubuntu2204
| Ubuntu2004
| Ubuntu1804
| Centos7
| Alpine312
| Alpine318
| Alpine320
| AlpineWasm
| Rocky8
deriving (Eq)
......@@ -148,10 +157,13 @@ data BuildConfig
, crossEmulator :: CrossEmulator
, configureWrapper :: Maybe String
, fullyStatic :: Bool
, hostFullyStatic :: Bool
, tablesNextToCode :: Bool
, threadSanitiser :: Bool
, noSplitSections :: Bool
, validateNonmovingGc :: Bool
, textWithSIMDUTF :: Bool
, testsuiteUsePerf :: Bool
}
-- Extra arguments to pass to ./configure due to the BuildConfig
......@@ -171,9 +183,11 @@ mkJobFlavour BuildConfig{..} = Flavour buildFlavour opts
opts = [Llvm | llvmBootstrap] ++
[Dwarf | withDwarf] ++
[FullyStatic | fullyStatic] ++
[HostFullyStatic | hostFullyStatic] ++
[ThreadSanitiser | threadSanitiser] ++
[NoSplitSections | noSplitSections, buildFlavour == Release ] ++
[BootNonmovingGc | validateNonmovingGc ]
[BootNonmovingGc | validateNonmovingGc ] ++
[TextWithSIMDUTF | textWithSIMDUTF]
data Flavour = Flavour BaseFlavour [FlavourTrans]
......@@ -181,14 +195,16 @@ data FlavourTrans =
Llvm
| Dwarf
| FullyStatic
| HostFullyStatic
| ThreadSanitiser
| NoSplitSections
| BootNonmovingGc
| TextWithSIMDUTF
data BaseFlavour = Release | Validate | SlowValidate deriving Eq
-----------------------------------------------------------------------------
-- Build Configs
-- Build Configurations
-----------------------------------------------------------------------------
-- | A standard build config
......@@ -206,10 +222,13 @@ vanilla = BuildConfig
, crossEmulator = NoEmulator
, configureWrapper = Nothing
, fullyStatic = False
, hostFullyStatic = False
, tablesNextToCode = True
, threadSanitiser = False
, noSplitSections = False
, validateNonmovingGc = False
, textWithSIMDUTF = False
, testsuiteUsePerf = False
}
splitSectionsBroken :: BuildConfig -> BuildConfig
......@@ -230,7 +249,7 @@ releaseConfig = vanilla { buildFlavour = Release }
debug :: BuildConfig
debug = vanilla { buildFlavour = SlowValidate
, withAssertions = True
-- WithNuma so at least one job tests Numa
-- WithNuma so at least one job tests Numa
, withNuma = True
}
......@@ -262,53 +281,62 @@ tsan = vanilla { threadSanitiser = True }
noTntc :: BuildConfig
noTntc = vanilla { tablesNextToCode = False }
usePerfProfilingTestsuite :: BuildConfig -> BuildConfig
usePerfProfilingTestsuite bc = bc { testsuiteUsePerf = True }
-----------------------------------------------------------------------------
-- Platform specific variables
-- Identifying Platforms
-----------------------------------------------------------------------------
-- | These tags have to match what we call the runners on gitlab
runnerTag :: Arch -> Opsys -> String
runnerTag arch (Linux _) =
case arch of
Amd64 -> "x86_64-linux"
AArch64 -> "aarch64-linux"
I386 -> "x86_64-linux"
runnerTag AArch64 Darwin = "aarch64-darwin"
runnerTag Amd64 Darwin = "x86_64-darwin-m1"
runnerTag Amd64 Windows = "new-x86_64-windows"
runnerTag Amd64 FreeBSD13 = "x86_64-freebsd13"
runnerTag _ _ = error "Invalid arch/opsys"
Amd64 -> "x86_64-linux"
AArch64 -> "aarch64-linux"
I386 -> "x86_64-linux"
runnerTag AArch64 Darwin = "aarch64-darwin"
runnerTag Amd64 Darwin = "x86_64-darwin-m1"
runnerTag Amd64 Windows = "new-x86_64-windows"
runnerTag Amd64 FreeBSD14 = "x86_64-freebsd14"
runnerTag _ _ = error "Invalid arch/opsys"
tags :: Arch -> Opsys -> BuildConfig -> [String]
tags arch opsys _bc = [runnerTag arch opsys] -- Tag for which runners we can use
runnerPerfTag :: Arch -> Opsys -> String
runnerPerfTag arch sys = runnerTag arch sys ++ "-perf"
-- These names are used to find the docker image so they have to match what is
-- in the docker registry.
distroName :: LinuxDistro -> String
distroName Debian12 = "deb12"
distroName Debian11 = "deb11"
distroName Debian10 = "deb10"
distroName Debian9 = "deb9"
distroName Fedora33 = "fedora33"
distroName Fedora38 = "fedora38"
distroName Ubuntu1804 = "ubuntu18_04"
distroName Ubuntu2004 = "ubuntu20_04"
distroName Centos7 = "centos7"
distroName Alpine312 = "alpine3_12"
distroName Alpine318 = "alpine3_18"
distroName AlpineWasm = "alpine3_17-wasm"
distroName Rocky8 = "rocky8"
distroName Debian12 = "deb12"
distroName Debian11 = "deb11"
distroName Debian11Js = "deb11-emsdk-closure"
distroName Debian12Riscv = "deb12-riscv"
distroName Debian10 = "deb10"
distroName Debian9 = "deb9"
distroName Fedora33 = "fedora33"
distroName Fedora38 = "fedora38"
distroName Ubuntu1804 = "ubuntu18_04"
distroName Ubuntu2004 = "ubuntu20_04"
distroName Ubuntu2204 = "ubuntu22_04"
distroName Alpine312 = "alpine3_12"
distroName Alpine318 = "alpine3_18"
distroName Alpine320 = "alpine3_20"
distroName AlpineWasm = "alpine3_20-wasm"
distroName Rocky8 = "rocky8"
opsysName :: Opsys -> String
opsysName (Linux distro) = "linux-" ++ distroName distro
opsysName Darwin = "darwin"
opsysName FreeBSD13 = "freebsd13"
opsysName Windows = "windows"
opsysName Darwin = "darwin"
opsysName FreeBSD14 = "freebsd14"
opsysName Windows = "windows"
archName :: Arch -> String
archName Amd64 = "x86_64"
archName Amd64 = "x86_64"
archName AArch64 = "aarch64"
archName I386 = "i386"
archName I386 = "i386"
binDistName :: Arch -> Opsys -> BuildConfig -> String
binDistName arch opsys bc = "ghc-" ++ testEnv arch opsys bc
......@@ -317,16 +345,18 @@ binDistName arch opsys bc = "ghc-" ++ testEnv arch opsys bc
-- Either the change is reflected by modifying the flavourString or directly (as is
-- the case for settings which affect environment variables)
testEnv :: Arch -> Opsys -> BuildConfig -> String
testEnv arch opsys bc = intercalate "-" $
[ archName arch
, opsysName opsys ]
++ ["int_" ++ bignumString (bignumBackend bc) | bignumBackend bc /= Gmp]
++ ["unreg" | unregisterised bc ]
++ ["numa" | withNuma bc ]
++ ["zstd" | withZstd bc ]
++ ["no_tntc" | not (tablesNextToCode bc) ]
++ ["cross_"++triple | Just triple <- pure $ crossTarget bc ]
++ [flavourString (mkJobFlavour bc)]
testEnv arch opsys bc =
intercalate "-" $ concat
[ [ archName arch
, opsysName opsys ]
, ["int_" ++ bignumString (bignumBackend bc) | bignumBackend bc /= Gmp]
, ["unreg" | unregisterised bc ]
, ["numa" | withNuma bc ]
, ["zstd" | withZstd bc ]
, ["no_tntc" | not (tablesNextToCode bc) ]
, ["cross_"++triple | Just triple <- pure $ crossTarget bc ]
, [flavourString (mkJobFlavour bc)]
]
-- | The hadrian flavour string we are going to use for this build
flavourString :: Flavour -> String
......@@ -339,9 +369,11 @@ flavourString (Flavour base trans) = base_string base ++ concatMap (("+" ++) . f
flavour_string Llvm = "llvm"
flavour_string Dwarf = "debug_info"
flavour_string FullyStatic = "fully_static"
flavour_string ThreadSanitiser = "thread_sanitizer"
flavour_string HostFullyStatic = "host_fully_static"
flavour_string ThreadSanitiser = "thread_sanitizer_cmm"
flavour_string NoSplitSections = "no_split_sections"
flavour_string BootNonmovingGc = "boot_nonmoving_gc"
flavour_string TextWithSIMDUTF = "text_simdutf"
-- The path to the docker image (just for linux builders)
dockerImage :: Arch -> Opsys -> Maybe String
......@@ -358,7 +390,7 @@ dockerImage arch (Linux distro) =
dockerImage _ _ = Nothing
-----------------------------------------------------------------------------
-- Platform specific variables
-- Platform-specific variables
-----------------------------------------------------------------------------
-- The variables map is a monoidal map so that we don't ever accidentally lose
......@@ -389,86 +421,99 @@ type Variables = MonoidalMap String [String]
(=:) :: String -> String -> Variables
a =: b = MonoidalMap (Map.singleton a [b])
type TestName = String
brokenTest :: TestName -- ^ test name
-> String -- ^ explanation of breakage
-> Variables
brokenTest test _why = "BROKEN_TESTS" =: test
opsysVariables :: Arch -> Opsys -> Variables
opsysVariables _ FreeBSD13 = mconcat
opsysVariables _ FreeBSD14 = mconcat
[ -- N.B. we use iconv from ports as I see linker errors when we attempt
-- to use the "native" iconv embedded in libc as suggested by the
-- porting guide [1].
-- [1] https://www.freebsd.org/doc/en/books/porters-handbook/using-iconv.html)
"CONFIGURE_ARGS" =: "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib"
, "HADRIAN_ARGS" =: "--docs=no-sphinx"
, "GHC_VERSION" =: "9.4.3"
, "CABAL_INSTALL_VERSION" =: "3.8.1.0"
"CONFIGURE_ARGS" =: "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib"
, "CONFIGURE_ARGS" =: "--with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib"
, "CONFIGURE_ARGS" =: "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib"
-- Prefer to use the system's clang-based toolchain and not gcc
, "CC" =: "cc"
, "CXX" =: "c++"
, "GHC_VERSION" =: "9.6.4"
, "CABAL_INSTALL_VERSION" =: "3.10.3.0"
]
opsysVariables _ (Linux distro) = distroVariables distro
opsysVariables AArch64 (Darwin {}) =
mconcat [ "NIX_SYSTEM" =: "aarch64-darwin"
, "MACOSX_DEPLOYMENT_TARGET" =: "11.0"
, "LANG" =: "en_US.UTF-8"
, "CONFIGURE_ARGS" =: "--with-intree-gmp --with-system-libffi"
-- Fonts can't be installed on darwin
, "HADRIAN_ARGS" =: "--docs=no-sphinx"
]
opsysVariables Amd64 (Darwin {}) =
mconcat [ "NIX_SYSTEM" =: "x86_64-darwin"
, "MACOSX_DEPLOYMENT_TARGET" =: "10.13"
-- "# Only Sierra and onwards supports clock_gettime. See #12858"
, "ac_cv_func_clock_gettime" =: "no"
-- # Only newer OS Xs support utimensat. See #17895
, "ac_cv_func_utimensat" =: "no"
-- # Only newer OS Xs support futimens. See #22938
, "ac_cv_func_futimens" =: "no"
, "LANG" =: "en_US.UTF-8"
, "CONFIGURE_ARGS" =: "--with-intree-gmp --with-system-libffi"
-- Fonts can't be installed on darwin
, "HADRIAN_ARGS" =: "--docs=no-sphinx"
opsysVariables arch (Linux distro) = distroVariables arch distro
opsysVariables AArch64 (Darwin {}) = mconcat
[ "NIX_SYSTEM" =: "aarch64-darwin"
, "MACOSX_DEPLOYMENT_TARGET" =: "11.0"
, "LANG" =: "en_US.UTF-8"
, "CONFIGURE_ARGS" =: "--with-intree-gmp --with-system-libffi"
-- Fonts can't be installed on darwin
, "HADRIAN_ARGS" =: "--docs=no-sphinx-pdfs"
]
opsysVariables Amd64 (Darwin {}) = mconcat
[ "NIX_SYSTEM" =: "x86_64-darwin"
, "MACOSX_DEPLOYMENT_TARGET" =: "11.0"
-- Only Sierra and onwards supports clock_gettime. See #12858
, "ac_cv_func_clock_gettime" =: "no"
-- Only newer OS Xs support utimensat. See #17895
, "ac_cv_func_utimensat" =: "no"
-- Only newer OS Xs support futimens. See #22938
, "ac_cv_func_futimens" =: "no"
, "LANG" =: "en_US.UTF-8"
, "CONFIGURE_ARGS" =: "--with-intree-gmp --with-system-libffi"
-- Fonts can't be installed on darwin
, "HADRIAN_ARGS" =: "--docs=no-sphinx-pdfs"
]
opsysVariables _ (Windows {}) =
mconcat [ "MSYSTEM" =: "CLANG64"
, "HADRIAN_ARGS" =: "--docs=no-sphinx"
, "LANG" =: "en_US.UTF-8"
, "CABAL_INSTALL_VERSION" =: "3.8.1.0"
, "GHC_VERSION" =: "9.4.3" ]
]
opsysVariables _ (Windows {}) = mconcat
[ "MSYSTEM" =: "CLANG64"
, "LANG" =: "en_US.UTF-8"
, "CABAL_INSTALL_VERSION" =: "3.10.2.0"
, "HADRIAN_ARGS" =: "--docs=no-sphinx-pdfs"
, "GHC_VERSION" =: "9.6.4"
]
opsysVariables _ _ = mempty
alpineVariables = mconcat
alpineVariables :: Arch -> Variables
alpineVariables arch = mconcat $
[ -- Due to #20266
"CONFIGURE_ARGS" =: "--disable-ld-override"
, "INSTALL_CONFIGURE_ARGS" =: "--disable-ld-override"
, "HADRIAN_ARGS" =: "--docs=no-sphinx"
-- encoding004: due to lack of locale support
-- T10458, ghcilink002: due to #17869
, "BROKEN_TESTS" =: "encoding004 T10458"
, brokenTest "encoding004" "due to lack of locale support"
, brokenTest "T10458" "#17869"
] ++
[ mconcat [ brokenTest test "#25498" | test <- ["simd009", "T25062_V16", "T25169", "T22187_run"] ]
| I386 <- [arch]
] ++
[ brokenTest "T22033" "#25497" | I386 <- [arch] ] ++
[ -- Bootstrap compiler has incorrectly configured target triple #25200
"CONFIGURE_ARGS" =: "--enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux"
| AArch64 <- [arch]
]
distroVariables :: LinuxDistro -> Variables
distroVariables Alpine312 = alpineVariables
distroVariables Alpine318 = alpineVariables
distroVariables Centos7 = mconcat [
"HADRIAN_ARGS" =: "--docs=no-sphinx"
, "BROKEN_TESTS" =: "T22012" -- due to #23979
]
distroVariables Rocky8 = mconcat [
"HADRIAN_ARGS" =: "--docs=no-sphinx"
]
distroVariables Fedora33 = mconcat
distroVariables :: Arch -> LinuxDistro -> Variables
distroVariables arch Alpine312 = alpineVariables arch
distroVariables arch Alpine318 = alpineVariables arch
distroVariables arch Alpine320 = alpineVariables arch
distroVariables _ Fedora33 = mconcat
-- LLC/OPT do not work for some reason in our fedora images
-- These tests fail with this error: T11649 T5681 T7571 T8131b
-- +/opt/llvm/bin/opt: /lib64/libtinfo.so.5: no version information available (required by /opt/llvm/bin/opt)
-- +/opt/llvm/bin/llc: /lib64/libtinfo.so.5: no version information available (required by /opt/llvm/bin/llc)
-- +/opt/llvm/bin/llc: /lib64/libtinfo.so.5: no version information available (required by /opt/llvm/bin/llc)
[ "LLC" =: "/bin/false"
, "OPT" =: "/bin/false"
]
distroVariables _ = mempty
distroVariables _ _ = mempty
-----------------------------------------------------------------------------
-- Cache settings, what to cache and when can we share the cache
-----------------------------------------------------------------------------
data Cache
= Cache { cacheKey :: String
= Cache { cacheKey :: String
, cachePaths :: [String]
}
......@@ -508,25 +553,27 @@ data ArtifactsWhen = ArtifactsOnSuccess | ArtifactsOnFailure | ArtifactsAlways
instance ToJSON ArtifactsWhen where
toJSON ArtifactsOnSuccess = "on_success"
toJSON ArtifactsOnFailure = "on_failure"
toJSON ArtifactsAlways = "always"
toJSON ArtifactsAlways = "always"
-----------------------------------------------------------------------------
---------------------------------------------------------------------
-- Rules, when do we run a job
-----------------------------------------------------------------------------
---------------------------------------------------------------------
-- Data structure which records the condition when a job is run.
data OnOffRules = OnOffRules { rule_set :: Rule -- ^ The enabled rules
, when :: ManualFlag -- ^ The additional condition about when to run this job.
}
-- | Data structure which records the condition when a job is run.
data OnOffRules
= OnOffRules { rule_set :: Rule -- ^ The enabled rules
, when :: ManualFlag -- ^ The additional condition about when to run this job.
}
-- The initial set of rules, which assumes a Validate pipeline which is run with FullCI.
emptyRules :: OnOffRules
emptyRules = OnOffRules (ValidateOnly (S.singleton FullCI)) OnSuccess
emptyRules :: String -> OnOffRules
emptyRules jobName = OnOffRules (ValidateOnly jobName (S.fromList [FullCI])) OnSuccess
-- When to run the job
data ManualFlag = Manual -- ^ Only run the job when explicitly triggered by a user
| OnSuccess -- ^ Always run it, if the rules pass (the default)
deriving Eq
data ManualFlag
= Manual -- ^ Only run the job when explicitly triggered by a user
| OnSuccess -- ^ Always run it, if the rules pass (the default)
deriving Eq
setRule :: Rule -> OnOffRules -> OnOffRules
setRule r (OnOffRules _ m) = OnOffRules r m
......@@ -538,10 +585,10 @@ onlyValidateRule :: ValidateRule -> OnOffRules -> OnOffRules
onlyValidateRule r = modifyValidateRules (const (S.singleton r))
removeValidateRule :: ValidateRule -> OnOffRules -> OnOffRules
removeValidateRule r = modifyValidateRules (S.delete r)
removeValidateRule v = modifyValidateRules (S.delete v)
modifyValidateRules :: (S.Set ValidateRule -> S.Set ValidateRule) -> OnOffRules -> OnOffRules
modifyValidateRules f (OnOffRules (ValidateOnly rs) m) = OnOffRules (ValidateOnly (f rs)) m
modifyValidateRules f (OnOffRules (ValidateOnly s rs) m) = OnOffRules (ValidateOnly s (f rs)) m
modifyValidateRules _ r = error $ "Applying validate rule to nightly/release job:" ++ show (rule_set r)
manualRule :: OnOffRules -> OnOffRules
......@@ -553,18 +600,23 @@ manualRule rules = rules { when = Manual }
enumRules :: OnOffRules -> [OnOffRule]
enumRules (OnOffRules r _) = rulesList
where
rulesList = case r of
ValidateOnly rs -> [OnOffRule On (ValidateOnly rs)
, OnOffRule Off ReleaseOnly
, OnOffRule Off Nightly ]
Nightly -> [ OnOffRule Off (ValidateOnly S.empty)
, OnOffRule Off ReleaseOnly
, OnOffRule On Nightly ]
ReleaseOnly -> [ OnOffRule Off (ValidateOnly S.empty)
, OnOffRule On ReleaseOnly
, OnOffRule Off Nightly ]
rulesList =
case r of
ValidateOnly s rs ->
[ OnOffRule On (ValidateOnly s rs)
, OnOffRule Off ReleaseOnly
, OnOffRule Off Nightly
]
Nightly ->
[ OnOffRule Off (ValidateOnly "" S.empty)
, OnOffRule Off ReleaseOnly
, OnOffRule On Nightly
]
ReleaseOnly ->
[ OnOffRule Off (ValidateOnly "" S.empty)
, OnOffRule On ReleaseOnly
, OnOffRule Off Nightly
]
data OnOffRule = OnOffRule OnOff Rule
......@@ -575,86 +627,149 @@ instance ToJSON ManualFlag where
toJSON OnSuccess = "on_success"
instance ToJSON OnOffRules where
toJSON rules = toJSON [object ([
"if" A..= and_all (map one_rule (enumRules rules))
, "when" A..= toJSON (when rules)]
-- Necessary to stop manual jobs stopping pipeline progress
-- https://docs.gitlab.com/ee/ci/yaml/#rulesallow_failure
++
["allow_failure" A..= True | when rules == Manual ])]
toJSON rules = toJSON
[object $
[ "if" A..= and_all (map one_rule (enumRules rules))
, "when" A..= toJSON (when rules)
] ++
-- Necessary to stop manual jobs stopping pipeline progress
-- https://docs.gitlab.com/ee/ci/yaml/#rulesallow_failure
[ "allow_failure" A..= True | when rules == Manual ]
]
where
one_rule (OnOffRule onoff r) = ruleString onoff r
one_rule (OnOffRule onoff r) = ruleToCond onoff r
---------------------------------------------------------------------
-- Rule conditions
---------------------------------------------------------------------
parens :: [Char] -> [Char]
parens s = "(" ++ s ++ ")"
and_all :: [[Char]] -> [Char]
and_all rs = intercalate " && " (map parens rs)
or_all :: [[Char]] -> [Char]
or_all rs = intercalate " || " (map parens rs)
-- | A predicate in GitLab's rules language.
newtype Cond = Cond { getCond :: String }
deriving newtype (ToJSON)
-- | A Rule corresponds to some condition which must be satisifed in order to
-- run the job.
data Rule = ReleaseOnly -- ^ Only run this job in a release pipeline
| Nightly -- ^ Only run this job in the nightly pipeline
| ValidateOnly (S.Set ValidateRule) -- ^ Only run this job in a validate pipeline, when any of these rules are enabled.
deriving (Show, Ord, Eq)
data ValidateRule =
FullCI -- ^ Run this job when the "full-ci" label is present.
| LLVMBackend -- ^ Run this job when the "LLVM backend" label is present
| JSBackend -- ^ Run this job when the "javascript" label is present
| FreeBSDLabel -- ^ Run this job when the "FreeBSD" label is set.
| NonmovingGc -- ^ Run this job when the "non-moving GC" label is set.
| IpeData -- ^ Run this job when the "IPE" label is set
| TestPrimops -- ^ Run this job when "test-primops" label is set
deriving (Show, Enum, Bounded, Ord, Eq)
-- A constant evaluating to True because gitlab doesn't support "true" in the
parens :: Cond -> Cond
parens (Cond s) = Cond $ "(" ++ s ++ ")"
and_all :: [Cond] -> Cond
and_all =
Cond . intercalate " && " . map (getCond . parens)
or_all :: [Cond] -> Cond
or_all =
Cond . intercalate " || " . map (getCond . parens)
type Var = String
varIsSet :: Var -> Cond
varIsSet var =
Cond $ "$" <> var
-- | A constant evaluating to True because gitlab doesn't support "true" in the
-- expression language.
true :: String
true = "\"true\" == \"true\""
-- A constant evaluating to False because gitlab doesn't support "true" in the
true :: Cond
true = Cond "\"true\" == \"true\""
-- | A constant evaluating to False because gitlab doesn't support "true" in the
-- expression language.
_false :: String
_false = "\"disabled\" != \"disabled\""
-- Convert the state of the rule into a string that gitlab understand.
ruleString :: OnOff -> Rule -> String
ruleString On (ValidateOnly vs) =
case S.toList vs of
[] -> true
conds -> or_all (map validateRuleString conds)
ruleString Off (ValidateOnly {}) = true
ruleString On ReleaseOnly = "$RELEASE_JOB == \"yes\""
ruleString Off ReleaseOnly = "$RELEASE_JOB != \"yes\""
ruleString On Nightly = "$NIGHTLY"
ruleString Off Nightly = "$NIGHTLY == null"
labelString :: String -> String
labelString s = "$CI_MERGE_REQUEST_LABELS =~ /.*" ++ s ++ ".*/"
branchStringExact :: String -> String
branchStringExact s = "$CI_COMMIT_BRANCH == \"" ++ s ++ "\""
branchStringLike :: String -> String
branchStringLike s = "$CI_COMMIT_BRANCH =~ /" ++ s ++ "/"
validateRuleString :: ValidateRule -> String
validateRuleString FullCI = or_all ([ labelString "full-ci"
, labelString "marge_bot_batch_merge_job"
, branchStringExact "master"
, branchStringLike "ghc-[0-9]+\\.[0-9]+"
])
_false :: Cond
_false = Cond "\"disabled\" != \"disabled\""
labelString :: String -> Cond
labelString s =
Cond $ "$CI_MERGE_REQUEST_LABELS =~ /.*" ++ s ++ ".*/"
branchStringExact :: String -> Cond
branchStringExact =
varEqString "CI_COMMIT_BRANCH"
branchStringLike :: String -> Cond
branchStringLike s =
Cond $ "$CI_COMMIT_BRANCH =~ /" ++ s ++ "/"
varEqString :: String -> String -> Cond
varEqString var s =
Cond $ "$" ++ var ++ " == \"" ++ s ++ "\""
varNeString :: String -> String -> Cond
varNeString var s =
Cond $ "$" ++ var ++ " != \"" ++ s ++ "\""
varIsNull :: String -> Cond
varIsNull var =
Cond $ "$" ++ var ++ " == null"
---------------------------------------------------------------------
-- Our Rules
---------------------------------------------------------------------
-- | A Rule corresponds to some condition which must be satisifed in order to
-- run the job.
data Rule
= ReleaseOnly -- ^ Only run this job in a release pipeline
| Nightly -- ^ Only run this job in the nightly pipeline
| ValidateOnly String (S.Set ValidateRule) -- ^ Only run this job in a validate pipeline, when any of these rules are enabled.
deriving (Show, Ord, Eq)
data ValidateRule
= FullCI -- ^ Run this job when the "full-ci" label is present.
| FastCI -- ^ Run this job on every validation pipeline
| LLVMBackend -- ^ Run this job when the "LLVM backend" label is present
| JSBackend -- ^ Run this job when the "javascript" label is present
| RiscV -- ^ Run this job when the "RISC-V" label is present
| WasmBackend -- ^ Run this job when the "wasm" label is present
| FreeBSDLabel -- ^ Run this job when the "FreeBSD" label is set.
| NonmovingGc -- ^ Run this job when the "non-moving GC" label is set.
| IpeData -- ^ Run this job when the "IPE" label is set
| TestPrimops -- ^ Run this job when "test-primops" label is set
| I386Backend -- ^ Run this job when the "i386" label is set
deriving (Show, Ord, Eq)
-- | Convert the state of the rule into a string that gitlab understand.
ruleToCond :: OnOff -> Rule -> Cond
ruleToCond On (ValidateOnly only_job_name vs) =
or_all
[ -- 1. Case when ONLY_JOBS is set
and_all [ varIsSet "ONLY_JOBS"
, Cond $ "$ONLY_JOBS =~ /.*\\b" ++ escape only_job_name ++ "(\\s|$).*/"
]
-- 2. Case when ONLY_JOBS is null
, and_all [ varIsNull "ONLY_JOBS"
, case S.toList vs of
[] -> _false
cs -> or_all (map validateRuleString cs)
]
]
where
escape :: String -> String
escape = concatMap (\c -> if c == '+' then "\\+" else [c])
ruleToCond Off (ValidateOnly {}) = true
ruleToCond On ReleaseOnly = "RELEASE_JOB" `varEqString` "yes"
ruleToCond Off ReleaseOnly = "RELEASE_JOB" `varNeString` "yes"
ruleToCond On Nightly = varIsSet "NIGHTLY"
ruleToCond Off Nightly = varIsNull "NIGHTLY"
validateRuleString :: ValidateRule -> Cond
validateRuleString FullCI = or_all [ labelString "full-ci"
, labelString "marge_bot_batch_merge_job"
, branchStringExact "master"
, branchStringLike "ghc-[0-9]+\\.[0-9]+"
]
validateRuleString FastCI = true
validateRuleString LLVMBackend = labelString "LLVM backend"
validateRuleString JSBackend = labelString "javascript"
validateRuleString RiscV = labelString "RISC-V"
validateRuleString WasmBackend = labelString "wasm"
validateRuleString FreeBSDLabel = labelString "FreeBSD"
validateRuleString NonmovingGc = labelString "non-moving GC"
validateRuleString IpeData = labelString "IPE"
validateRuleString TestPrimops = labelString "test-primops"
validateRuleString I386Backend = labelString "i386"
---------------------------------------------------------------------
-- The Job type
---------------------------------------------------------------------
-- | A 'Job' is the description of a single job in a gitlab pipeline. The
-- job contains all the information about how to do the build but can be further
......@@ -679,15 +794,15 @@ data Job
instance ToJSON Job where
toJSON Job{..} = object
[ "stage" A..= jobStage
-- Convoluted to avoid download artifacts from ghci job
-- https://docs.gitlab.com/ee/ci/yaml/#needsartifacts
-- Convoluted to avoid download artifacts from ghci job
-- https://docs.gitlab.com/ee/ci/yaml/#needsartifacts
, "needs" A..= map (\j -> object [ "job" A..= j, "artifacts" A..= False ]) jobNeeds
, "dependencies" A..= jobDependencies
, "image" A..= jobDockerImage
, "tags" A..= jobTags
, "allow_failure" A..= jobAllowFailure
-- Joining up variables like this may well be the wrong thing to do but
-- at least it doesn't lose information silently by overriding.
-- Joining up variables like this may well be the wrong thing to do but
-- at least it doesn't lose information silently by overriding.
, "variables" A..= fmap unwords jobVariables
, "artifacts" A..= jobArtifacts
, "cache" A..= jobCache
......@@ -702,7 +817,7 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
where
jobPlatform = (arch, opsys)
jobRules = emptyRules
jobRules = emptyRules jobName
jobName = testEnv arch opsys buildConfig
......@@ -715,7 +830,8 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
= [ "bash .gitlab/ci.sh setup"
, "bash .gitlab/ci.sh configure"
, "bash .gitlab/ci.sh build_hadrian"
, "bash .gitlab/ci.sh test_hadrian" ]
, "bash .gitlab/ci.sh test_hadrian"
]
| otherwise
= [ "find libraries -name config.sub -exec cp config.sub {} \\;" | Darwin == opsys ] ++
[ "sudo chown ghc:ghc -R ." | Linux {} <- [opsys]] ++
......@@ -735,7 +851,8 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
[ ".gitlab/ci.sh save_cache"
, ".gitlab/ci.sh save_test_output"
, ".gitlab/ci.sh clean"
, "cat ci_timings" ]
, "cat ci_timings"
]
jobFlavour = mkJobFlavour buildConfig
......@@ -747,12 +864,15 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
, "BUILD_FLAVOUR" =: flavourString jobFlavour
, "BIGNUM_BACKEND" =: bignumString (bignumBackend buildConfig)
, "CONFIGURE_ARGS" =: configureArgsStr buildConfig
, "INSTALL_CONFIGURE_ARGS" =: "--enable-strict-ghc-toolchain-check"
, maybe mempty ("CONFIGURE_WRAPPER" =:) (configureWrapper buildConfig)
, maybe mempty ("CROSS_TARGET" =:) (crossTarget buildConfig)
, case crossEmulator buildConfig of
NoEmulator -> case crossTarget buildConfig of
Nothing -> mempty
Just _ -> "CROSS_EMULATOR" =: "NOT_SET" -- we need an emulator but it isn't set. Won't run the testsuite
NoEmulator
-- we need an emulator but it isn't set. Won't run the testsuite
| Just _ <- crossTarget buildConfig
-> "CROSS_EMULATOR" =: "NOT_SET"
| otherwise -> mempty
Emulator s -> "CROSS_EMULATOR" =: s
NoEmulatorNeeded -> mempty
, if withNuma buildConfig then "ENABLE_NUMA" =: "1" else mempty
......@@ -761,6 +881,7 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
| validateNonmovingGc buildConfig
]
in "RUNTEST_ARGS" =: unwords runtestArgs
, if testsuiteUsePerf buildConfig then "RUNTEST_ARGS" =: "--config perf_path=perf" else mempty
]
jobArtifacts = Artifacts
......@@ -831,8 +952,10 @@ setVariable k v j = j { jobVariables = MonoidalMap $ Map.insert k [v] $ unMonoid
delVariable :: String -> Job -> Job
delVariable k j = j { jobVariables = MonoidalMap $ Map.delete k $ unMonoidalMap $ jobVariables j }
---------------------------------------------------------------------
-- Building the standard jobs
--
---------------------------------------------------------------------
-- | Make a normal validate CI job
validate :: Arch -> Opsys -> BuildConfig -> NamedJob Job
validate = job
......@@ -849,15 +972,27 @@ releaseRule = setJobRule ReleaseOnly
nightly :: Arch -> Opsys -> BuildConfig -> NamedJob Job
nightly arch opsys bc =
let NamedJob n j = job arch opsys bc
in NamedJob { name = "nightly-" ++ n, jobInfo = nightlyRule . keepArtifacts "8 weeks" . highCompression $ j}
in NamedJob { name = "nightly-" ++ n
, jobInfo = nightlyRule
. keepArtifacts "8 weeks"
. highCompression $ j
}
-- | Make a normal release CI job
release :: Arch -> Opsys -> BuildConfig -> NamedJob Job
release arch opsys bc =
let NamedJob n j = job arch opsys (bc { buildFlavour = Release })
in NamedJob { name = "release-" ++ n, jobInfo = releaseRule . keepArtifacts "1 year" . ignorePerfFailures . useHashUnitIds . highCompression $ j}
in NamedJob { name = "release-" ++ n
, jobInfo = releaseRule
. keepArtifacts "1 year"
. ignorePerfFailures
. useHashUnitIds
. highCompression $ j
}
---------------------------------------------------------------------
-- Specific job modification functions
---------------------------------------------------------------------
-- | Mark a job as requiring a manual trigger.
manual :: Job -> Job
......@@ -883,10 +1018,16 @@ highCompression = addVariable "XZ_OPT" "-9"
useHashUnitIds :: Job -> Job
useHashUnitIds = addVariable "HADRIAN_ARGS" "--hash-unit-ids"
-- | Change the tag of the job to make sure the job is scheduled on a
-- runner that has the necessary capabilties to run the job with 'perf'
-- profiling counters.
perfProfilingJobTag :: Arch -> Opsys -> Job -> Job
perfProfilingJobTag arch opsys j = j { jobTags = [ runnerPerfTag arch opsys ] }
-- | Mark the validate job to run in fast-ci mode
-- This is default way, to enable all jobs you have to apply the `full-ci` label.
fastCI :: JobGroup Job -> JobGroup Job
fastCI = modifyValidateJobs (removeValidateJobRule FullCI)
fastCI = onlyRule FastCI
-- | Mark a group of jobs as allowed to fail.
allowFailureGroup :: JobGroup Job -> JobGroup Job
......@@ -903,8 +1044,14 @@ onlyRule t = modifyValidateJobs (onlyValidateJobRule t)
-- | Don't run the validate job, normally used to alleviate CI load by marking
-- jobs which are unlikely to fail (ie different linux distros)
--
-- These jobs can still be triggered by using the ONLY_JOBS environment variable
disableValidate :: JobGroup Job -> JobGroup Job
disableValidate st = st { v = Nothing }
disableValidate = modifyValidateJobs (removeValidateJobRule FastCI . removeValidateJobRule FullCI)
---------------------------------------------------------------------
-- NamedJob
---------------------------------------------------------------------
data NamedJob a = NamedJob { name :: String, jobInfo :: a } deriving (Show, Functor)
......@@ -916,14 +1063,18 @@ instance ToJSON a => ToJSON (NamedJob a) where
[ "name" A..= name nj
, "jobInfo" A..= jobInfo nj ]
--data NamedJobGroup a = NamedJobGroup { platform :: String, jg :: JobGroup a }
---------------------------------------------------------------------
-- JobGroup
---------------------------------------------------------------------
-- Jobs are grouped into either triples or pairs depending on whether the
-- job is just validate and nightly, or also release.
data JobGroup a = StandardTriple { v :: Maybe (NamedJob a)
, n :: Maybe (NamedJob a)
, r :: Maybe (NamedJob a) } deriving (Functor, Show)
data JobGroup a
= StandardTriple { v :: Maybe (NamedJob a)
, n :: Maybe (NamedJob a)
, r :: Maybe (NamedJob a)
}
deriving (Functor, Show)
instance ToJSON a => ToJSON (JobGroup a) where
toJSON StandardTriple{..} = object
......@@ -961,104 +1112,194 @@ flattenJobGroup (StandardTriple a b c) = map flattenNamedJob (catMaybes [a,b,c])
flattenNamedJob :: NamedJob a -> (String, a)
flattenNamedJob (NamedJob n i) = (n, i)
-- | Specification for all the jobs we want to build.
jobs :: Map String Job
jobs = Map.fromList $ concatMap (flattenJobGroup) job_groups
jobs = Map.fromList $ concatMap flattenJobGroup job_groups
---------------------------------------------------------------------
-- Job definitions
---------------------------------------------------------------------
debian_x86 :: [JobGroup Job]
debian_x86 =
[ -- Release configurations
-- 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.
disableValidate (standardBuildsWithConfig Amd64 (Linux Debian9) (splitSectionsBroken vanilla))
, disableValidate (standardBuilds Amd64 (Linux Debian10))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Debian10) dwarf)
, disableValidate (standardBuilds Amd64 (Linux Debian11))
, disableValidate (standardBuilds Amd64 (Linux Debian12))
-- Validate only builds
, fastCI (validateBuilds Amd64 (Linux validate_debian) debug)
, validateBuilds Amd64 (Linux validate_debian) nativeInt
, validateBuilds Amd64 (Linux validate_debian) unreg
-- More work is needed to address TSAN failures: #22520
, modifyNightlyJobs allowFailure (modifyValidateJobs (allowFailure . manual) tsan_jobs)
, -- Nightly allowed to fail: #22343
modifyNightlyJobs allowFailure (modifyValidateJobs manual (validateBuilds Amd64 (Linux validate_debian) noTntc))
-- Run the 'perf' profiling nightly job in the release config.
, perfProfilingJob Amd64 (Linux Debian12) releaseConfig
, onlyRule LLVMBackend (validateBuilds Amd64 (Linux validate_debian) llvm)
, addValidateRule TestPrimops (standardBuilds Amd64 (Linux validate_debian))
, onlyRule NonmovingGc (validateBuilds Amd64 (Linux validate_debian) vanilla {validateNonmovingGc = True})
, onlyRule IpeData (validateBuilds Amd64 (Linux validate_debian) zstdIpe)
]
where
validate_debian = Debian12
job_groups :: [JobGroup Job]
job_groups =
[ disableValidate (standardBuilds Amd64 (Linux Debian10))
, addValidateRule TestPrimops (standardBuildsWithConfig Amd64 (Linux Debian10) dwarf)
, validateBuilds Amd64 (Linux Debian10) nativeInt
, validateBuilds Amd64 (Linux Debian10) unreg
, fastCI (validateBuilds Amd64 (Linux Debian10) debug)
, -- Nightly allowed to fail: #22520
modifyNightlyJobs allowFailure
(modifyValidateJobs manual tsan_jobs)
, -- Nightly allowed to fail: #22343
modifyNightlyJobs allowFailure
(modifyValidateJobs manual (validateBuilds Amd64 (Linux Debian10) noTntc))
, onlyRule LLVMBackend (validateBuilds Amd64 (Linux Debian12) llvm)
, disableValidate (standardBuilds Amd64 (Linux Debian11))
, disableValidate (standardBuilds Amd64 (Linux Debian12))
-- 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.
, disableValidate (standardBuildsWithConfig Amd64 (Linux Debian9) (splitSectionsBroken vanilla))
, disableValidate (standardBuilds Amd64 (Linux Ubuntu1804))
, disableValidate (standardBuilds Amd64 (Linux Ubuntu2004))
, disableValidate (standardBuilds Amd64 (Linux Rocky8))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Centos7) (splitSectionsBroken vanilla))
-- Fedora33 job is always built with perf so there's one job in the normal
-- validate pipeline which is built with perf.
, fastCI (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig)
-- This job is only for generating head.hackage docs
, hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) dwarf)
, disableValidate (standardBuilds Amd64 (Linux Fedora38))
, fastCI (standardBuildsWithConfig Amd64 Windows vanilla)
, disableValidate (standardBuildsWithConfig Amd64 Windows nativeInt)
, addValidateRule TestPrimops (standardBuilds Amd64 Darwin)
, allowFailureGroup (onlyRule FreeBSDLabel (validateBuilds Amd64 FreeBSD13 vanilla))
, fastCI (standardBuilds AArch64 Darwin)
, fastCI (standardBuildsWithConfig AArch64 (Linux Debian10) (splitSectionsBroken vanilla))
, disableValidate (standardBuildsWithConfig AArch64 (Linux Debian11) (splitSectionsBroken vanilla))
, onlyRule LLVMBackend (validateBuilds AArch64 (Linux Debian12) llvm)
, standardBuildsWithConfig I386 (Linux Debian10) (splitSectionsBroken vanilla)
-- Fully static build, in theory usable on any linux distribution.
, fullyStaticBrokenTests (standardBuildsWithConfig Amd64 (Linux Alpine312) (splitSectionsBroken static))
-- Dynamically linked build, suitable for building your own static executables on alpine
, disableValidate (standardBuildsWithConfig Amd64 (Linux Alpine312) (splitSectionsBroken vanilla))
, disableValidate (standardBuildsWithConfig AArch64 (Linux Alpine318) (splitSectionsBroken vanilla))
, fullyStaticBrokenTests (disableValidate (allowFailureGroup (standardBuildsWithConfig Amd64 (Linux Alpine312) staticNativeInt)))
, validateBuilds Amd64 (Linux Debian11) (crossConfig "aarch64-linux-gnu" (Emulator "qemu-aarch64 -L /usr/aarch64-linux-gnu") Nothing)
, addValidateRule JSBackend (validateBuilds Amd64 (Linux Debian11) javascriptConfig)
, make_wasm_jobs wasm_build_config
, modifyValidateJobs manual $
make_wasm_jobs wasm_build_config {bignumBackend = Native}
, modifyValidateJobs manual $
make_wasm_jobs wasm_build_config {unregisterised = True}
, onlyRule NonmovingGc (standardBuildsWithConfig Amd64 (Linux Debian11) vanilla {validateNonmovingGc = True})
, onlyRule IpeData (validateBuilds Amd64 (Linux Debian10) zstdIpe)
]
perfProfilingJob arch sys buildConfig =
-- Rename the job to avoid conflicts
rename (<> "-perf")
$ modifyJobs (perfProfilingJobTag arch sys)
$ disableValidate (validateBuilds arch sys $ usePerfProfilingTestsuite buildConfig)
tsan_jobs =
modifyJobs
( addVariable "TSAN_OPTIONS" "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions"
-- Haddock is large enough to make TSAN choke without massive quantities of
-- memory.
. addVariable "HADRIAN_ARGS" "--docs=none") $
validateBuilds Amd64 (Linux validate_debian) tsan
debian_aarch64 :: [JobGroup Job]
debian_aarch64 =
[
disableValidate (standardBuildsWithConfig AArch64 (Linux Debian10) (splitSectionsBroken vanilla))
, fastCI (standardBuildsWithConfig AArch64 (Linux Debian12) (splitSectionsBroken vanilla))
-- LLVM backend bootstrap
, onlyRule LLVMBackend (validateBuilds AArch64 (Linux Debian12) llvm)
]
debian_i386 :: [JobGroup Job]
debian_i386 =
[ disableValidate (standardBuildsWithConfig I386 (Linux Debian10) (splitSectionsBroken vanilla))
, addValidateRule I386Backend (standardBuildsWithConfig I386 (Linux Debian12) (splitSectionsBroken vanilla))
]
ubuntu_x86 :: [JobGroup Job]
ubuntu_x86 =
[ disableValidate (standardBuilds Amd64 (Linux Ubuntu1804))
, disableValidate (standardBuilds Amd64 (Linux Ubuntu2004))
, disableValidate (standardBuilds Amd64 (Linux Ubuntu2204))
]
rhel_x86 :: [JobGroup Job]
rhel_x86 =
[ disableValidate (standardBuilds Amd64 (Linux Rocky8))
]
fedora_x86 :: [JobGroup Job]
fedora_x86 =
[ -- Fedora33 job is always built with perf so there's one job in the normal
-- validate pipeline which is built with perf.
fastCI (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig)
-- This job is only for generating head.hackage docs
, hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) dwarf)
, disableValidate (standardBuilds Amd64 (Linux Fedora38))
]
where
javascriptConfig = (crossConfig "javascript-unknown-ghcjs" (Emulator "js-emulator") (Just "emconfigure"))
{ bignumBackend = Native }
hackage_doc_job = rename (<> "-hackage") . modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-for-hackage")
windows_x86 :: [JobGroup Job]
windows_x86 =
[ fastCI (standardBuildsWithConfig Amd64 Windows vanilla)
, disableValidate (standardBuildsWithConfig Amd64 Windows nativeInt)
]
darwin :: [JobGroup Job]
darwin =
[ addValidateRule TestPrimops (standardBuilds Amd64 Darwin)
, fastCI (standardBuilds AArch64 Darwin)
]
freebsd_jobs :: [JobGroup Job]
freebsd_jobs =
[ addValidateRule FreeBSDLabel (standardBuilds Amd64 FreeBSD14)
]
alpine_x86 :: [JobGroup Job]
alpine_x86 =
[ -- Fully static build, in theory usable on any linux distribution.
fullyStaticBrokenTests (standardBuildsWithConfig Amd64 (Linux Alpine312) (splitSectionsBroken static))
, fullyStaticBrokenTests (disableValidate (allowFailureGroup (standardBuildsWithConfig Amd64 (Linux Alpine312) staticNativeInt)))
-- Dynamically linked build, suitable for building your own static executables on alpine
, disableValidate (standardBuildsWithConfig Amd64 (Linux Alpine312) (splitSectionsBroken vanilla))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Alpine320) (splitSectionsBroken vanilla))
, allowFailureGroup (standardBuildsWithConfig I386 (Linux Alpine320) (splitSectionsBroken vanilla))
]
where
-- ghcilink002 broken due to #17869
--
-- linker_unload_native: due to musl not supporting any means of probing dynlib dependencies
-- (see Note [Object unloading]).
fullyStaticBrokenTests = modifyJobs (addVariable "BROKEN_TESTS" "ghcilink002 linker_unload_native")
hackage_doc_job = rename (<> "-hackage") . modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-base-url")
alpine_aarch64 :: [JobGroup Job]
alpine_aarch64 = [
disableValidate (standardBuildsWithConfig AArch64 (Linux Alpine318) (splitSectionsBroken vanilla))
]
tsan_jobs =
modifyJobs
( addVariable "TSAN_OPTIONS" "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions"
-- Haddock is large enough to make TSAN choke without massive quantities of
-- memory.
. addVariable "HADRIAN_ARGS" "--docs=none") $
validateBuilds Amd64 (Linux Debian10) tsan
cross_jobs :: [JobGroup Job]
cross_jobs = [
-- x86 -> aarch64
validateBuilds Amd64 (Linux Debian11) (crossConfig "aarch64-linux-gnu" (Emulator "qemu-aarch64 -L /usr/aarch64-linux-gnu") Nothing)
-- x86_64 -> riscv
, addValidateRule RiscV (validateBuilds Amd64 (Linux Debian12Riscv) (crossConfig "riscv64-linux-gnu" (Emulator "qemu-riscv64 -L /usr/riscv64-linux-gnu") Nothing))
-- Javascript
, addValidateRule JSBackend (validateBuilds Amd64 (Linux Debian11Js) javascriptConfig)
-- Wasm
, make_wasm_jobs wasm_build_config
, modifyValidateJobs manual $
make_wasm_jobs wasm_build_config {bignumBackend = Native}
, modifyValidateJobs manual $
make_wasm_jobs wasm_build_config {unregisterised = True}
]
where
javascriptConfig = (crossConfig "javascript-unknown-ghcjs" (Emulator "js-emulator") (Just "emconfigure"))
{ bignumBackend = Native }
make_wasm_jobs cfg =
modifyJobs
( delVariable "BROKEN_TESTS"
. setVariable "HADRIAN_ARGS" "--docs=none"
. setVariable "HADRIAN_ARGS" "--docs=no-sphinx-pdfs --docs=no-sphinx-man --haddock-for-hackage"
. delVariable "INSTALL_CONFIGURE_ARGS"
)
$ validateBuilds Amd64 (Linux AlpineWasm) cfg
$ addValidateRule WasmBackend $ validateBuilds Amd64 (Linux AlpineWasm) cfg
wasm_build_config =
(crossConfig "wasm32-wasi" NoEmulatorNeeded Nothing)
{
fullyStatic = True
, buildFlavour = Release -- TODO: This needs to be validate but wasm backend doesn't pass yet
{ hostFullyStatic = True
, buildFlavour = Release -- TODO: This needs to be validate but wasm backend doesn't pass yet
, textWithSIMDUTF = True
}
job_groups :: [JobGroup Job]
job_groups =
debian_x86
++ debian_aarch64
++ debian_i386
++ fedora_x86
++ windows_x86
++ darwin
++ ubuntu_x86
++ rhel_x86
++ alpine_x86
++ alpine_aarch64
++ cross_jobs
++ freebsd_jobs
---------------------------------------------------------------------
-- Platform mapping for GHCup metadata
---------------------------------------------------------------------
mkPlatform :: Arch -> Opsys -> String
mkPlatform arch opsys = archName arch <> "-" <> opsysName opsys
......@@ -1082,11 +1323,14 @@ platform_mapping = Map.map go combined_result
, "x86_64-linux-fedora33-release"
, "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate"
, "x86_64-windows-validate"
, "nightly-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static"
, "aarch64-linux-deb12-validate"
, "nightly-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
, "nightly-x86_64-linux-deb11-validate"
, "nightly-x86_64-linux-deb12-validate"
, "x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static"
, "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
, "x86_64-linux-deb12-validate+thread_sanitizer_cmm"
, "nightly-aarch64-linux-deb10-validate"
, "nightly-aarch64-linux-deb12-validate"
, "nightly-x86_64-linux-alpine3_12-validate"
, "nightly-x86_64-linux-deb10-validate"
, "nightly-x86_64-linux-fedora33-release"
......@@ -1099,7 +1343,11 @@ platform_mapping = Map.map go combined_result
, "release-x86_64-windows-release"
]
process sel = Map.fromListWith combine [ (uncurry mkPlatform (jobPlatform (jobInfo $ j)), j) | (sel -> Just j) <- job_groups ]
process sel =
Map.fromListWith combine
[ (uncurry mkPlatform (jobPlatform (jobInfo j)), j)
| (sel -> Just j) <- job_groups
]
vs = process v
ns = process n
......@@ -1107,10 +1355,13 @@ platform_mapping = Map.map go combined_result
all_platforms = Map.keysSet vs <> Map.keysSet ns <> Map.keysSet rs
combined_result = Map.fromList [ (p, StandardTriple { v = Map.lookup p vs
, n = Map.lookup p ns
, r = Map.lookup p rs })
| p <- S.toList all_platforms ]
combined_result =
Map.fromList
[ (p, StandardTriple { v = Map.lookup p vs
, n = Map.lookup p ns
, r = Map.lookup p rs })
| p <- S.toList all_platforms
]
combine a b
| name a `elem` whitelist = a -- Explicitly selected
......@@ -1125,6 +1376,9 @@ data BindistInfo = BindistInfo { bindistName :: String } deriving Show
instance ToJSON BindistInfo where
toJSON (BindistInfo n) = object [ "bindistName" A..= n ]
---------------------------------------------------------------------
-- Main entrypoint
---------------------------------------------------------------------
main :: IO ()
main = do
......
{-# OPTIONS_GHC -Wall -Wno-missing-fields #-}
import GHC.Unit.Types (stringToUnitId)
import GHC hiding (parseModule)
import GHC.Data.StringBuffer
import GHC.Driver.Config.Parser
......@@ -26,7 +27,8 @@ fakeSettings =
sToolSettings = ToolSettings {},
sTargetPlatform =
genericPlatform,
sPlatformMisc = PlatformMisc {}
sPlatformMisc = PlatformMisc {},
sUnitSettings = UnitSettings { unitSettings_baseUnitId = stringToUnitId "base" }
}
fakeDynFlags :: DynFlags
......
......@@ -37,7 +37,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-darwin-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -57,7 +57,8 @@
"BIN_DIST_NAME": "ghc-aarch64-darwin-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "aarch64-darwin",
......@@ -65,7 +66,7 @@
"TEST_ENV": "aarch64-darwin-validate"
}
},
"aarch64-linux-deb10-validate": {
"aarch64-linux-alpine3_18-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -76,7 +77,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-aarch64-linux-deb10-validate.tar.xz",
"ghc-aarch64-linux-alpine3_18-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -86,14 +87,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb10-$CACHE_REV",
"key": "aarch64-linux-alpine3_18-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -102,7 +103,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-alpine3_18-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -119,14 +120,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb10-validate",
"BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--disable-ld-override --enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb10-validate"
"TEST_ENV": "aarch64-linux-alpine3_18-validate"
}
},
"aarch64-linux-deb12-validate+llvm": {
"aarch64-linux-deb10-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -137,7 +140,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-aarch64-linux-deb12-validate+llvm.tar.xz",
"ghc-aarch64-linux-deb10-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -147,14 +150,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb12-$CACHE_REV",
"key": "aarch64-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -163,7 +166,7 @@
],
"rules": [
{
"if": "(($CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-deb10-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -180,14 +183,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "validate+llvm",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb10-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb12-validate+llvm"
"TEST_ENV": "aarch64-linux-deb10-validate"
}
},
"i386-linux-deb10-validate": {
"aarch64-linux-deb12-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -198,7 +202,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-i386-linux-deb10-validate.tar.xz",
"ghc-aarch64-linux-deb12-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -208,14 +212,14 @@
"when": "always"
},
"cache": {
"key": "i386-linux-deb10-$CACHE_REV",
"key": "aarch64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -224,7 +228,7 @@
],
"rules": [
{
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-deb12-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -237,18 +241,19 @@
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-deb10-validate",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-deb10-validate"
"TEST_ENV": "aarch64-linux-deb12-validate"
}
},
"nightly-aarch64-darwin-validate": {
"aarch64-linux-deb12-validate+llvm": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -257,9 +262,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"expire_in": "2 weeks",
"paths": [
"ghc-aarch64-darwin-validate.tar.xz",
"ghc-aarch64-linux-deb12-validate+llvm.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -269,14 +274,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-darwin-$CACHE_REV",
"key": "aarch64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -285,12 +290,12 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-deb12-validate\\+llvm(\\s|$).*/)) || (($ONLY_JOBS == null) && (($CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"find libraries -name config.sub -exec cp config.sub {} \\;",
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -298,34 +303,30 @@
],
"stage": "full-build",
"tags": [
"aarch64-darwin"
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-darwin-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "aarch64-darwin",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "validate+llvm",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-darwin-validate",
"XZ_OPT": "-9"
"TEST_ENV": "aarch64-linux-deb12-validate+llvm"
}
},
"nightly-aarch64-linux-alpine3_18-validate": {
"i386-linux-alpine3_20-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"allow_failure": true,
"artifacts": {
"expire_in": "8 weeks",
"expire_in": "2 weeks",
"paths": [
"ghc-aarch64-linux-alpine3_18-validate.tar.xz",
"ghc-i386-linux-alpine3_20-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -335,14 +336,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-linux-alpine3_18-$CACHE_REV",
"key": "i386-linux-alpine3_20-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_20:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -351,7 +352,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bi386-linux-alpine3_20-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -364,22 +365,20 @@
],
"stage": "full-build",
"tags": [
"aarch64-linux"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BIN_DIST_NAME": "ghc-i386-linux-alpine3_20-validate",
"BROKEN_TESTS": "encoding004 T10458 simd009 T25062_V16 T25169 T22187_run T22033",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-alpine3_18-validate",
"XZ_OPT": "-9"
"TEST_ENV": "i386-linux-alpine3_20-validate"
}
},
"nightly-aarch64-linux-deb10-validate": {
"i386-linux-deb10-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -388,9 +387,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"expire_in": "2 weeks",
"paths": [
"ghc-aarch64-linux-deb10-validate.tar.xz",
"ghc-i386-linux-deb10-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -400,14 +399,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb10-$CACHE_REV",
"key": "i386-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -416,7 +415,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bi386-linux-deb10-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -429,19 +428,19 @@
],
"stage": "full-build",
"tags": [
"aarch64-linux"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb10-validate",
"BIN_DIST_NAME": "ghc-i386-linux-deb10-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb10-validate",
"XZ_OPT": "-9"
"TEST_ENV": "i386-linux-deb10-validate"
}
},
"nightly-aarch64-linux-deb11-validate": {
"i386-linux-deb12-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -450,9 +449,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"expire_in": "2 weeks",
"paths": [
"ghc-aarch64-linux-deb11-validate.tar.xz",
"ghc-i386-linux-deb12-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -462,14 +461,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb11-$CACHE_REV",
"key": "i386-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb11:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -478,7 +477,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bi386-linux-deb12-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*i386.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -491,19 +490,19 @@
],
"stage": "full-build",
"tags": [
"aarch64-linux"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb11-validate",
"BIN_DIST_NAME": "ghc-i386-linux-deb12-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb11-validate",
"XZ_OPT": "-9"
"TEST_ENV": "i386-linux-deb12-validate"
}
},
"nightly-aarch64-linux-deb12-validate+llvm": {
"nightly-aarch64-darwin-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -514,7 +513,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-aarch64-linux-deb12-validate+llvm.tar.xz",
"ghc-aarch64-darwin-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -524,14 +523,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb12-$CACHE_REV",
"key": "aarch64-darwin-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"image": null,
"needs": [
{
"artifacts": false,
......@@ -545,7 +544,7 @@
}
],
"script": [
"sudo chown ghc:ghc -R .",
"find libraries -name config.sub -exec cp config.sub {} \\;",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -553,19 +552,24 @@
],
"stage": "full-build",
"tags": [
"aarch64-linux"
"aarch64-darwin"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "validate+llvm",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"BIN_DIST_NAME": "ghc-aarch64-darwin-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "aarch64-darwin",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb12-validate+llvm",
"TEST_ENV": "aarch64-darwin-validate",
"XZ_OPT": "-9"
}
},
"nightly-i386-linux-deb10-validate": {
"nightly-aarch64-linux-alpine3_18-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -576,7 +580,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-i386-linux-deb10-validate.tar.xz",
"ghc-aarch64-linux-alpine3_18-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -586,14 +590,14 @@
"when": "always"
},
"cache": {
"key": "i386-linux-deb10-$CACHE_REV",
"key": "aarch64-linux-alpine3_18-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -615,19 +619,21 @@
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-deb10-validate",
"BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--disable-ld-override --enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-deb10-validate",
"TEST_ENV": "aarch64-linux-alpine3_18-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-darwin-validate": {
"nightly-aarch64-linux-deb10-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -638,7 +644,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-darwin-validate.tar.xz",
"ghc-aarch64-linux-deb10-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -648,14 +654,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-darwin-$CACHE_REV",
"key": "aarch64-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -669,7 +675,7 @@
}
],
"script": [
"find libraries -name config.sub -exec cp config.sub {} \\;",
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -677,37 +683,31 @@
],
"stage": "full-build",
"tags": [
"x86_64-darwin-m1"
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-darwin-validate",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb10-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "10.13",
"NIX_SYSTEM": "x86_64-darwin",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-darwin-validate",
"XZ_OPT": "-9",
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
"TEST_ENV": "aarch64-linux-deb10-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-freebsd13-validate": {
"nightly-aarch64-linux-deb12-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": true,
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-freebsd13-validate.tar.xz",
"ghc-aarch64-linux-deb12-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -717,14 +717,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-freebsd13-$CACHE_REV",
"key": "aarch64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -738,6 +738,7 @@
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -745,33 +746,31 @@
],
"stage": "full-build",
"tags": [
"x86_64-freebsd13"
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-freebsd13-validate",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.8.1.0",
"CONFIGURE_ARGS": "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3",
"HADRIAN_ARGS": "--docs=no-sphinx",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-freebsd13-validate",
"TEST_ENV": "aarch64-linux-deb12-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-alpine3_12-int_native-validate+fully_static": {
"nightly-aarch64-linux-deb12-validate+llvm": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": true,
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static.tar.xz",
"ghc-aarch64-linux-deb12-validate+llvm.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -781,14 +780,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"key": "aarch64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -810,33 +809,31 @@
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "validate+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "validate+llvm",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-int_native-validate+fully_static",
"TEST_ENV": "aarch64-linux-deb12-validate+llvm",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-alpine3_12-validate": {
"nightly-i386-linux-alpine3_20-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"allow_failure": true,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_12-validate.tar.xz",
"ghc-i386-linux-alpine3_20-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -846,14 +843,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"key": "i386-linux-alpine3_20-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_20:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -879,18 +876,17 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BIN_DIST_NAME": "ghc-i386-linux-alpine3_20-validate",
"BROKEN_TESTS": "encoding004 T10458 simd009 T25062_V16 T25169 T22187_run T22033",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-validate",
"TEST_ENV": "i386-linux-alpine3_20-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-alpine3_12-validate+fully_static": {
"nightly-i386-linux-deb10-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -901,7 +897,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_12-validate+fully_static.tar.xz",
"ghc-i386-linux-deb10-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -911,14 +907,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"key": "i386-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -944,18 +940,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate+fully_static",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "validate+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"BIN_DIST_NAME": "ghc-i386-linux-deb10-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static",
"TEST_ENV": "i386-linux-deb10-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static": {
"nightly-i386-linux-deb12-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -966,7 +960,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static.tar.xz",
"ghc-i386-linux-deb12-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -976,14 +970,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV",
"key": "i386-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -1009,17 +1003,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static",
"BUILD_FLAVOUR": "release+fully_static",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=none",
"BIN_DIST_NAME": "ghc-i386-linux-deb12-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static",
"TEST_ENV": "i386-linux-deb12-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static": {
"nightly-x86_64-darwin-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -1030,7 +1023,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static.tar.xz",
"ghc-x86_64-darwin-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1040,14 +1033,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV",
"key": "x86_64-darwin-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV",
"image": null,
"needs": [
{
"artifacts": false,
......@@ -1061,7 +1054,7 @@
}
],
"script": [
"sudo chown ghc:ghc -R .",
"find libraries -name config.sub -exec cp config.sub {} \\;",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -1069,21 +1062,27 @@
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"x86_64-darwin-m1"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static",
"BUILD_FLAVOUR": "release+fully_static",
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-darwin-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=none",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "x86_64-darwin",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-darwin-validate",
"XZ_OPT": "-9",
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
}
},
"nightly-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static": {
"nightly-x86_64-freebsd14-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -1094,7 +1093,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static.tar.xz",
"ghc-x86_64-freebsd14-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1104,14 +1103,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV",
"key": "x86_64-freebsd14-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV",
"image": null,
"needs": [
{
"artifacts": false,
......@@ -1125,7 +1124,6 @@
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -1133,32 +1131,35 @@
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"x86_64-freebsd14"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static",
"BUILD_FLAVOUR": "release+fully_static",
"CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=none",
"BIN_DIST_NAME": "ghc-x86_64-freebsd14-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.10.3.0",
"CC": "cc",
"CONFIGURE_ARGS": "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
"CXX": "c++",
"GHC_VERSION": "9.6.4",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static",
"TEST_ENV": "x86_64-freebsd14-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-centos7-validate": {
"nightly-x86_64-linux-alpine3_12-int_native-validate+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"allow_failure": true,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-centos7-validate.tar.xz",
"ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1168,14 +1169,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-centos7-$CACHE_REV",
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -1200,18 +1201,18 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-centos7-validate",
"BROKEN_TESTS": "T22012",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "validate+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-centos7-validate",
"TEST_ENV": "x86_64-linux-alpine3_12-int_native-validate+fully_static",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb10-int_native-validate": {
"nightly-x86_64-linux-alpine3_12-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -1222,7 +1223,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb10-int_native-validate.tar.xz",
"ghc-x86_64-linux-alpine3_12-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1232,14 +1233,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -1264,27 +1265,29 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-int_native-validate",
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-int_native-validate",
"TEST_ENV": "x86_64-linux-alpine3_12-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb10-no_tntc-validate": {
"nightly-x86_64-linux-alpine3_12-validate+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": true,
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb10-no_tntc-validate.tar.xz",
"ghc-x86_64-linux-alpine3_12-validate+fully_static.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1294,14 +1297,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -1327,15 +1330,17 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-no_tntc-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-tables-next-to-code --enable-strict-ghc-toolchain-check",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate+fully_static",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "validate+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-no_tntc-validate",
"TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb10-numa-slow-validate": {
"nightly-x86_64-linux-alpine3_20-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -1346,7 +1351,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz",
"ghc-x86_64-linux-alpine3_20-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1356,14 +1361,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-alpine3_20-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -1389,16 +1394,17 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-numa-slow-validate",
"BUILD_FLAVOUR": "slow-validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"ENABLE_NUMA": "1",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-numa-slow-validate",
"TEST_ENV": "x86_64-linux-alpine3_20-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb10-unreg-validate": {
"nightly-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -1409,7 +1415,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb10-unreg-validate.tar.xz",
"ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1419,14 +1425,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -1452,15 +1458,17 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-unreg-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-unregisterised --enable-strict-ghc-toolchain-check",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man --haddock-for-hackage",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-unreg-validate",
"TEST_ENV": "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb10-validate": {
"nightly-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -1471,7 +1479,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb10-validate.tar.xz",
"ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1481,14 +1489,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -1513,16 +1521,18 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man --haddock-for-hackage",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-validate",
"TEST_ENV": "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb10-validate+debug_info": {
"nightly-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -1533,7 +1543,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb10-validate+debug_info.tar.xz",
"ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1543,14 +1553,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -1576,26 +1586,28 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+debug_info",
"BUILD_FLAVOUR": "validate+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man --haddock-for-hackage",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-validate+debug_info",
"TEST_ENV": "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb10-validate+thread_sanitizer": {
"nightly-x86_64-linux-deb10-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": true,
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb10-validate+thread_sanitizer.tar.xz",
"ghc-x86_64-linux-deb10-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1638,17 +1650,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+thread_sanitizer",
"BUILD_FLAVOUR": "validate+thread_sanitizer",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-validate+thread_sanitizer",
"TSAN_OPTIONS": "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions",
"TEST_ENV": "x86_64-linux-deb10-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb10-zstd-validate": {
"nightly-x86_64-linux-deb10-validate+debug_info": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -1659,7 +1670,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb10-zstd-validate.tar.xz",
"ghc-x86_64-linux-deb10-validate+debug_info.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1702,11 +1713,12 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-zstd-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-ipe-data-compression --enable-strict-ghc-toolchain-check",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+debug_info",
"BUILD_FLAVOUR": "validate+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-zstd-validate",
"TEST_ENV": "x86_64-linux-deb10-validate+debug_info",
"XZ_OPT": "-9"
}
},
......@@ -1769,12 +1781,13 @@
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CROSS_EMULATOR": "qemu-aarch64 -L /usr/aarch64-linux-gnu",
"CROSS_TARGET": "aarch64-linux-gnu",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate": {
"nightly-x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -1785,7 +1798,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate.tar.xz",
"ghc-x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1795,14 +1808,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb11-$CACHE_REV",
"key": "x86_64-linux-deb11-emsdk-closure-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11-emsdk-closure:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -1828,14 +1841,15 @@
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CONFIGURE_WRAPPER": "emconfigure",
"CROSS_EMULATOR": "js-emulator",
"CROSS_TARGET": "javascript-unknown-ghcjs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate",
"TEST_ENV": "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate",
"XZ_OPT": "-9"
}
},
......@@ -1896,12 +1910,13 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb11-validate+boot_nonmoving_gc": {
"nightly-x86_64-linux-deb12-int_native-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -1912,7 +1927,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb11-validate+boot_nonmoving_gc.tar.xz",
"ghc-x86_64-linux-deb12-int_native-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -1922,14 +1937,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb11-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -1954,27 +1969,28 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-validate+boot_nonmoving_gc",
"BUILD_FLAVOUR": "validate+boot_nonmoving_gc",
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-int_native-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity",
"TEST_ENV": "x86_64-linux-deb11-validate+boot_nonmoving_gc",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-int_native-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb12-validate": {
"nightly-x86_64-linux-deb12-no_tntc-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"allow_failure": true,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb12-validate.tar.xz",
"ghc-x86_64-linux-deb12-no_tntc-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2017,15 +2033,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-no_tntc-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--disable-tables-next-to-code --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-validate",
"TEST_ENV": "x86_64-linux-deb12-no_tntc-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb12-validate+llvm": {
"nightly-x86_64-linux-deb12-numa-slow-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2036,7 +2053,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb12-validate+llvm.tar.xz",
"ghc-x86_64-linux-deb12-numa-slow-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2079,15 +2096,17 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "validate+llvm",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-numa-slow-validate",
"BUILD_FLAVOUR": "slow-validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"ENABLE_NUMA": "1",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-validate+llvm",
"TEST_ENV": "x86_64-linux-deb12-numa-slow-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-deb9-validate": {
"nightly-x86_64-linux-deb12-release-perf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2098,7 +2117,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-deb9-validate.tar.xz",
"ghc-x86_64-linux-deb12-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2108,14 +2127,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb9-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2137,19 +2156,20 @@
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"x86_64-linux-perf"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb9-validate",
"BUILD_FLAVOUR": "validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb9-validate",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": " --config perf_path=perf",
"TEST_ENV": "x86_64-linux-deb12-release",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora33-release": {
"nightly-x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2160,7 +2180,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"ghc-x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2170,14 +2190,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"key": "x86_64-linux-deb12-riscv-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12-riscv:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2203,17 +2223,18 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CROSS_EMULATOR": "qemu-riscv64 -L /usr/riscv64-linux-gnu",
"CROSS_TARGET": "riscv64-linux-gnu",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release",
"TEST_ENV": "x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora33-release-hackage": {
"nightly-x86_64-linux-deb12-unreg-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2224,7 +2245,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"ghc-x86_64-linux-deb12-unreg-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2234,14 +2255,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2267,18 +2288,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--haddock-base-url",
"LLC": "/bin/false",
"OPT": "/bin/false",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-unreg-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-unregisterised --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release",
"TEST_ENV": "x86_64-linux-deb12-unreg-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora33-validate+debug_info": {
"nightly-x86_64-linux-deb12-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2289,7 +2308,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-validate+debug_info.tar.xz",
"ghc-x86_64-linux-deb12-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2299,14 +2318,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2332,17 +2351,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-validate+debug_info",
"BUILD_FLAVOUR": "validate+debug_info",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-validate+debug_info",
"TEST_ENV": "x86_64-linux-deb12-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora38-validate": {
"nightly-x86_64-linux-deb12-validate+boot_nonmoving_gc": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2353,7 +2371,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora38-validate.tar.xz",
"ghc-x86_64-linux-deb12-validate+boot_nonmoving_gc.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2363,14 +2381,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora38-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora38:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2396,15 +2414,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora38-validate",
"BUILD_FLAVOUR": "validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+boot_nonmoving_gc",
"BUILD_FLAVOUR": "validate+boot_nonmoving_gc",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora38-validate",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity",
"TEST_ENV": "x86_64-linux-deb12-validate+boot_nonmoving_gc",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-rocky8-validate": {
"nightly-x86_64-linux-deb12-validate+llvm": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2415,7 +2434,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-rocky8-validate.tar.xz",
"ghc-x86_64-linux-deb12-validate+llvm.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2425,14 +2444,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-rocky8-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-rocky8:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2458,27 +2477,27 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-rocky8-validate",
"BUILD_FLAVOUR": "validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "validate+llvm",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-rocky8-validate",
"TEST_ENV": "x86_64-linux-deb12-validate+llvm",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-ubuntu18_04-validate": {
"nightly-x86_64-linux-deb12-validate+thread_sanitizer_cmm": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"allow_failure": true,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-ubuntu18_04-validate.tar.xz",
"ghc-x86_64-linux-deb12-validate+thread_sanitizer_cmm.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2488,14 +2507,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-ubuntu18_04-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu18_04:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2521,15 +2540,18 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu18_04-validate",
"BUILD_FLAVOUR": "validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+thread_sanitizer_cmm",
"BUILD_FLAVOUR": "validate+thread_sanitizer_cmm",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu18_04-validate",
"TEST_ENV": "x86_64-linux-deb12-validate+thread_sanitizer_cmm",
"TSAN_OPTIONS": "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-ubuntu20_04-validate": {
"nightly-x86_64-linux-deb12-zstd-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2540,7 +2562,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-ubuntu20_04-validate.tar.xz",
"ghc-x86_64-linux-deb12-zstd-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2550,14 +2572,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-ubuntu20_04-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2583,25 +2605,27 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-zstd-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--enable-ipe-data-compression --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu20_04-validate",
"TEST_ENV": "x86_64-linux-deb12-zstd-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-windows-int_native-validate": {
"nightly-x86_64-linux-deb9-validate": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-windows-int_native-validate.tar.xz",
"ghc-x86_64-linux-deb9-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2611,11 +2635,14 @@
"when": "always"
},
"cache": {
"key": "no-caching",
"paths": []
"key": "x86_64-linux-deb9-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2629,41 +2656,1864 @@
}
],
"script": [
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb9-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb9-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora33-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora33-release-hackage": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora33-validate+debug_info": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-validate+debug_info.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-validate+debug_info",
"BUILD_FLAVOUR": "validate+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-validate+debug_info",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora38-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora38-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora38-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora38:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora38-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora38-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-rocky8-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-rocky8-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-rocky8-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-rocky8:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-rocky8-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-rocky8-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-ubuntu18_04-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-ubuntu18_04-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-ubuntu18_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu18_04:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu18_04-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu18_04-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-ubuntu20_04-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-ubuntu20_04-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-ubuntu20_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu20_04-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-ubuntu22_04-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-ubuntu22_04-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-ubuntu22_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu22_04:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu22_04-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu22_04-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-windows-int_native-validate": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-windows-int_native-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "no-caching",
"paths": []
},
"dependencies": [],
"image": null,
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"bash .gitlab/ci.sh build_hadrian",
"bash .gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"new-x86_64-windows"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-windows-int_native-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-int_native-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-windows-validate": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-windows-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "no-caching",
"paths": []
},
"dependencies": [],
"image": null,
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"bash .gitlab/ci.sh build_hadrian",
"bash .gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"new-x86_64-windows"
"new-x86_64-windows"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-windows-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-validate",
"XZ_OPT": "-9"
}
},
"release-aarch64-darwin-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-darwin-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "aarch64-darwin-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"find libraries -name config.sub -exec cp config.sub {} \\;",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"aarch64-darwin"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-darwin-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx-pdfs",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "aarch64-darwin",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-darwin-release",
"XZ_OPT": "-9"
}
},
"release-aarch64-linux-alpine3_18-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-linux-alpine3_18-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "aarch64-linux-alpine3_18-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-alpine3_18-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-aarch64-linux-deb10-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-linux-deb10-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb10-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb10-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-aarch64-linux-deb12-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-linux-deb12-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb12-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb12-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-i386-linux-alpine3_20-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": true,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-i386-linux-alpine3_20-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "i386-linux-alpine3_20-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_20:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-alpine3_20-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458 simd009 T25062_V16 T25169 T22187_run T22033",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-alpine3_20-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-i386-linux-deb10-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-i386-linux-deb10-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "i386-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-deb10-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-deb10-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-i386-linux-deb12-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-i386-linux-deb12-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "i386-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-deb12-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-deb12-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-x86_64-darwin-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-darwin-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-darwin-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"find libraries -name config.sub -exec cp config.sub {} \\;",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-darwin-m1"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-darwin-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx-pdfs",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "x86_64-darwin",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-darwin-release",
"XZ_OPT": "-9",
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
}
},
"release-x86_64-freebsd14-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-freebsd14-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-freebsd14-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-freebsd14"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-freebsd14-release",
"BUILD_FLAVOUR": "release",
"CABAL_INSTALL_VERSION": "3.10.3.0",
"CC": "cc",
"CONFIGURE_ARGS": "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
"CXX": "c++",
"GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-freebsd14-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_12-int_native-release+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": true,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-alpine3_12-int_native-release+fully_static.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-release+fully_static",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "release+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-int_native-release+fully_static",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_12-release+fully_static+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-alpine3_12-release+fully_static+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-release+fully_static+no_split_sections",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "release+fully_static+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-release+fully_static+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_12-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-alpine3_12-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_20-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-alpine3_20-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_20-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_20-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-deb10-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-deb10-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-deb10-release+debug_info": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-deb10-release+debug_info.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-release+debug_info",
"BUILD_FLAVOUR": "release+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-release+debug_info",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-deb11-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-deb11-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb11-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-deb12-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-deb12-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-deb9-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-deb9-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb9-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-windows-int_native-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.8.1.0",
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb9-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3",
"HADRIAN_ARGS": "--docs=no-sphinx",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-int_native-validate",
"TEST_ENV": "x86_64-linux-deb9-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-windows-validate": {
"release-x86_64-linux-fedora33-release": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"expire_in": "1 year",
"paths": [
"ghc-x86_64-windows-validate.tar.xz",
"ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2673,11 +4523,14 @@
"when": "always"
},
"cache": {
"key": "no-caching",
"paths": []
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2686,36 +4539,37 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"bash .gitlab/ci.sh build_hadrian",
"bash .gitlab/ci.sh test_hadrian"
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"new-x86_64-windows"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-windows-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.8.1.0",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3",
"HADRIAN_ARGS": "--docs=no-sphinx",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-validate",
"TEST_ENV": "x86_64-linux-fedora33-release",
"XZ_OPT": "-9"
}
},
"release-aarch64-darwin-release": {
"release-x86_64-linux-fedora33-release+debug_info": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2726,7 +4580,7 @@
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-darwin-release.tar.xz",
"ghc-x86_64-linux-fedora33-release+debug_info.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2736,14 +4590,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-darwin-$CACHE_REV",
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2757,7 +4611,7 @@
}
],
"script": [
"find libraries -name config.sub -exec cp config.sub {} \\;",
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -2765,24 +4619,91 @@
],
"stage": "full-build",
"tags": [
"aarch64-darwin"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-darwin-release",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release+debug_info",
"BUILD_FLAVOUR": "release+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release+debug_info",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-fedora33-release-hackage": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--haddock-for-hackage --hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "aarch64-darwin",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-darwin-release",
"TEST_ENV": "x86_64-linux-fedora33-release",
"XZ_OPT": "-9"
}
},
"release-aarch64-linux-alpine3_18-release+no_split_sections": {
"release-x86_64-linux-fedora38-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2793,7 +4714,7 @@
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-linux-alpine3_18-release+no_split_sections.tar.xz",
"ghc-x86_64-linux-fedora38-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2803,14 +4724,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-linux-alpine3_18-$CACHE_REV",
"key": "x86_64-linux-fedora38-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora38:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2832,23 +4753,22 @@
],
"stage": "full-build",
"tags": [
"aarch64-linux"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora38-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-alpine3_18-release+no_split_sections",
"TEST_ENV": "x86_64-linux-fedora38-release",
"XZ_OPT": "-9"
}
},
"release-aarch64-linux-deb10-release+no_split_sections": {
"release-x86_64-linux-rocky8-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2859,7 +4779,7 @@
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-linux-deb10-release+no_split_sections.tar.xz",
"ghc-x86_64-linux-rocky8-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2869,14 +4789,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-rocky8-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-rocky8:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2898,21 +4818,22 @@
],
"stage": "full-build",
"tags": [
"aarch64-linux"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb10-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"BIN_DIST_NAME": "ghc-x86_64-linux-rocky8-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb10-release+no_split_sections",
"TEST_ENV": "x86_64-linux-rocky8-release",
"XZ_OPT": "-9"
}
},
"release-aarch64-linux-deb11-release+no_split_sections": {
"release-x86_64-linux-ubuntu18_04-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2923,7 +4844,7 @@
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-linux-deb11-release+no_split_sections.tar.xz",
"ghc-x86_64-linux-ubuntu18_04-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2933,14 +4854,14 @@
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb11-$CACHE_REV",
"key": "x86_64-linux-ubuntu18_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb11:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu18_04:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -2962,21 +4883,22 @@
],
"stage": "full-build",
"tags": [
"aarch64-linux"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb11-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu18_04-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb11-release+no_split_sections",
"TEST_ENV": "x86_64-linux-ubuntu18_04-release",
"XZ_OPT": "-9"
}
},
"release-i386-linux-deb10-release+no_split_sections": {
"release-x86_64-linux-ubuntu20_04-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -2987,7 +4909,7 @@
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-i386-linux-deb10-release+no_split_sections.tar.xz",
"ghc-x86_64-linux-ubuntu20_04-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -2997,14 +4919,14 @@
"when": "always"
},
"cache": {
"key": "i386-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-ubuntu20_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3030,17 +4952,18 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-deb10-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-deb10-release+no_split_sections",
"TEST_ENV": "x86_64-linux-ubuntu20_04-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-darwin-release": {
"release-x86_64-linux-ubuntu22_04-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3051,7 +4974,7 @@
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-darwin-release.tar.xz",
"ghc-x86_64-linux-ubuntu22_04-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3061,14 +4984,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-darwin-$CACHE_REV",
"key": "x86_64-linux-ubuntu22_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu22_04:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3082,7 +5005,7 @@
}
],
"script": [
"find libraries -name config.sub -exec cp config.sub {} \\;",
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -3090,38 +5013,32 @@
],
"stage": "full-build",
"tags": [
"x86_64-darwin-m1"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-darwin-release",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu22_04-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "10.13",
"NIX_SYSTEM": "x86_64-darwin",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-darwin-release",
"XZ_OPT": "-9",
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
"TEST_ENV": "x86_64-linux-ubuntu22_04-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_12-int_native-release+fully_static": {
"release-x86_64-windows-int_native-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
],
"allow_failure": true,
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-alpine3_12-int_native-release+fully_static.tar.xz",
"ghc-x86_64-windows-int_native-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3131,14 +5048,11 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
"key": "no-caching",
"paths": []
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"image": null,
"needs": [
{
"artifacts": false,
......@@ -3152,42 +5066,43 @@
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"bash .gitlab/ci.sh build_hadrian",
"bash .gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"new-x86_64-windows"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-release+fully_static",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "release+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"BIN_DIST_NAME": "ghc-x86_64-windows-int_native-release",
"BUILD_FLAVOUR": "release",
"CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx-pdfs",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-int_native-release+fully_static",
"TEST_ENV": "x86_64-windows-int_native-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_12-release+fully_static+no_split_sections": {
"release-x86_64-windows-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-alpine3_12-release+fully_static+no_split_sections.tar.xz",
"ghc-x86_64-windows-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3197,14 +5112,11 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
"key": "no-caching",
"paths": []
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"image": null,
"needs": [
{
"artifacts": false,
......@@ -3218,31 +5130,33 @@
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"bash .gitlab/ci.sh build_hadrian",
"bash .gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"new-x86_64-windows"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-release+fully_static+no_split_sections",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "release+fully_static+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"BIN_DIST_NAME": "ghc-x86_64-windows-release",
"BUILD_FLAVOUR": "release",
"CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx-pdfs",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-release+fully_static+no_split_sections",
"TEST_ENV": "x86_64-windows-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_12-release+no_split_sections": {
"x86_64-darwin-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3251,9 +5165,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_12-release+no_split_sections.tar.xz",
"ghc-x86_64-darwin-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3263,14 +5177,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"key": "x86_64-darwin-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"image": null,
"needs": [
{
"artifacts": false,
......@@ -3279,12 +5193,12 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-darwin-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
"find libraries -name config.sub -exec cp config.sub {} \\;",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -3292,23 +5206,26 @@
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"x86_64-darwin-m1"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"BIN_DIST_NAME": "ghc-x86_64-darwin-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "x86_64-darwin",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-release+no_split_sections",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-darwin-validate",
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
}
},
"release-x86_64-linux-centos7-release+no_split_sections": {
"x86_64-freebsd14-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3317,9 +5234,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-centos7-release+no_split_sections.tar.xz",
"ghc-x86_64-freebsd14-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3329,14 +5246,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-centos7-$CACHE_REV",
"key": "x86_64-freebsd14-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV",
"image": null,
"needs": [
{
"artifacts": false,
......@@ -3345,12 +5262,11 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-freebsd14-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*FreeBSD.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -3358,33 +5274,34 @@
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"x86_64-freebsd14"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-centos7-release+no_split_sections",
"BROKEN_TESTS": "T22012",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"IGNORE_PERF_FAILURES": "all",
"BIN_DIST_NAME": "ghc-x86_64-freebsd14-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.10.3.0",
"CC": "cc",
"CONFIGURE_ARGS": "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
"CXX": "c++",
"GHC_VERSION": "9.6.4",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-centos7-release+no_split_sections",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-freebsd14-validate"
}
},
"release-x86_64-linux-deb10-release": {
"x86_64-linux-alpine3_12-int_native-validate+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"allow_failure": true,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb10-release.tar.xz",
"ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3394,14 +5311,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3410,7 +5327,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_12-int_native-validate\\+fully_static(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -3426,18 +5343,17 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "validate+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-alpine3_12-int_native-validate+fully_static"
}
},
"release-x86_64-linux-deb10-release+debug_info": {
"x86_64-linux-alpine3_12-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3446,9 +5362,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb10-release+debug_info.tar.xz",
"ghc-x86_64-linux-alpine3_12-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3458,14 +5374,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3474,7 +5390,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_12-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -3491,17 +5407,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-release+debug_info",
"BUILD_FLAVOUR": "release+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-release+debug_info",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-alpine3_12-validate"
}
},
"release-x86_64-linux-deb11-release": {
"x86_64-linux-alpine3_12-validate+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3510,9 +5425,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb11-release.tar.xz",
"ghc-x86_64-linux-alpine3_12-validate+fully_static.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3522,14 +5437,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb11-$CACHE_REV",
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3538,7 +5453,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_12-validate\\+fully_static(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -3555,17 +5470,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate+fully_static",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "validate+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static"
}
},
"release-x86_64-linux-deb11-release+boot_nonmoving_gc": {
"x86_64-linux-alpine3_20-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3574,9 +5488,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb11-release+boot_nonmoving_gc.tar.xz",
"ghc-x86_64-linux-alpine3_20-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3586,14 +5500,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb11-$CACHE_REV",
"key": "x86_64-linux-alpine3_20-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3602,7 +5516,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -3619,17 +5533,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-release+boot_nonmoving_gc",
"BUILD_FLAVOUR": "release+boot_nonmoving_gc",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"RUNTEST_ARGS": "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity",
"TEST_ENV": "x86_64-linux-deb11-release+boot_nonmoving_gc",
"XZ_OPT": "-9"
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_20-validate"
}
},
"release-x86_64-linux-deb12-release": {
"x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3638,9 +5551,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb12-release.tar.xz",
"ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3650,14 +5563,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb12-$CACHE_REV",
"key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3666,7 +5579,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -3679,21 +5592,20 @@
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man --haddock-for-hackage",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
}
},
"release-x86_64-linux-deb9-release+no_split_sections": {
"x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3702,9 +5614,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb9-release+no_split_sections.tar.xz",
"ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3714,14 +5626,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb9-$CACHE_REV",
"key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3730,8 +5642,9 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
"allow_failure": true,
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
}
],
"script": [
......@@ -3746,18 +5659,17 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb9-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man --haddock-for-hackage",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb9-release+no_split_sections",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
}
},
"release-x86_64-linux-fedora33-release": {
"x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3766,9 +5678,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3778,14 +5690,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3794,8 +5706,9 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
"allow_failure": true,
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
}
],
"script": [
......@@ -3811,19 +5724,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"LLC": "/bin/false",
"OPT": "/bin/false",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man --haddock-for-hackage",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
}
},
"release-x86_64-linux-fedora33-release+debug_info": {
"x86_64-linux-deb10-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3832,9 +5742,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-release+debug_info.tar.xz",
"ghc-x86_64-linux-deb10-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3844,14 +5754,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"key": "x86_64-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3860,7 +5770,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb10-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -3877,19 +5787,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release+debug_info",
"BUILD_FLAVOUR": "release+debug_info",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"LLC": "/bin/false",
"OPT": "/bin/false",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release+debug_info",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-deb10-validate"
}
},
"release-x86_64-linux-fedora33-release-hackage": {
"x86_64-linux-deb10-validate+debug_info": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3898,9 +5804,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"ghc-x86_64-linux-deb10-validate+debug_info.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3910,14 +5816,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"key": "x86_64-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3926,7 +5832,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb10-validate\\+debug_info(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -3943,19 +5849,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+debug_info",
"BUILD_FLAVOUR": "validate+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--haddock-base-url --hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"LLC": "/bin/false",
"OPT": "/bin/false",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-deb10-validate+debug_info"
}
},
"release-x86_64-linux-fedora38-release": {
"x86_64-linux-deb11-cross_aarch64-linux-gnu-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -3964,9 +5866,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-fedora38-release.tar.xz",
"ghc-x86_64-linux-deb11-cross_aarch64-linux-gnu-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -3976,14 +5878,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora38-$CACHE_REV",
"key": "x86_64-linux-deb11-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora38:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -3992,7 +5894,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb11-cross_aarch64-linux-gnu-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -4009,17 +5911,17 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora38-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-cross_aarch64-linux-gnu-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CROSS_EMULATOR": "qemu-aarch64 -L /usr/aarch64-linux-gnu",
"CROSS_TARGET": "aarch64-linux-gnu",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora38-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate"
}
},
"release-x86_64-linux-rocky8-release": {
"x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4028,9 +5930,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-rocky8-release.tar.xz",
"ghc-x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4040,14 +5942,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-rocky8-$CACHE_REV",
"key": "x86_64-linux-deb11-emsdk-closure-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-rocky8:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11-emsdk-closure:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4056,7 +5958,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*javascript.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -4072,18 +5974,19 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-rocky8-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"IGNORE_PERF_FAILURES": "all",
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CONFIGURE_WRAPPER": "emconfigure",
"CROSS_EMULATOR": "js-emulator",
"CROSS_TARGET": "javascript-unknown-ghcjs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-rocky8-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate"
}
},
"release-x86_64-linux-ubuntu18_04-release": {
"x86_64-linux-deb11-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4092,9 +5995,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-ubuntu18_04-release.tar.xz",
"ghc-x86_64-linux-deb11-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4104,14 +6007,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-ubuntu18_04-$CACHE_REV",
"key": "x86_64-linux-deb11-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu18_04:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4120,7 +6023,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb11-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -4137,17 +6040,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu18_04-release",
"BUILD_FLAVOUR": "release",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu18_04-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-deb11-validate"
}
},
"release-x86_64-linux-ubuntu20_04-release": {
"x86_64-linux-deb12-int_native-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4156,9 +6057,9 @@
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-ubuntu20_04-release.tar.xz",
"ghc-x86_64-linux-deb12-int_native-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4168,14 +6069,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-ubuntu20_04-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4184,7 +6085,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-int_native-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -4200,28 +6101,27 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-release",
"BUILD_FLAVOUR": "release",
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-int_native-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu20_04-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-deb12-int_native-validate"
}
},
"release-x86_64-windows-int_native-release": {
"x86_64-linux-deb12-no_tntc-validate": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-windows-int_native-release.tar.xz",
"ghc-x86_64-linux-deb12-no_tntc-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4231,11 +6131,14 @@
"when": "always"
},
"cache": {
"key": "no-caching",
"paths": []
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4244,47 +6147,44 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
"allow_failure": true,
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-no_tntc-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
}
],
"script": [
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"bash .gitlab/ci.sh build_hadrian",
"bash .gitlab/ci.sh test_hadrian"
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"new-x86_64-windows"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-windows-int_native-release",
"BUILD_FLAVOUR": "release",
"CABAL_INSTALL_VERSION": "3.8.1.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"IGNORE_PERF_FAILURES": "all",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-no_tntc-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-tables-next-to-code --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-int_native-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-deb12-no_tntc-validate"
}
},
"release-x86_64-windows-release": {
"x86_64-linux-deb12-numa-slow-validate": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-windows-release.tar.xz",
"ghc-x86_64-linux-deb12-numa-slow-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4294,11 +6194,14 @@
"when": "always"
},
"cache": {
"key": "no-caching",
"paths": []
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4307,37 +6210,33 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-numa-slow-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"bash .gitlab/ci.sh build_hadrian",
"bash .gitlab/ci.sh test_hadrian"
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"new-x86_64-windows"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-windows-release",
"BUILD_FLAVOUR": "release",
"CABAL_INSTALL_VERSION": "3.8.1.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"IGNORE_PERF_FAILURES": "all",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-numa-slow-validate",
"BUILD_FLAVOUR": "slow-validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"ENABLE_NUMA": "1",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-release",
"XZ_OPT": "-9"
"TEST_ENV": "x86_64-linux-deb12-numa-slow-validate"
}
},
"x86_64-darwin-validate": {
"x86_64-linux-deb12-release-perf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4348,7 +6247,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-darwin-validate.tar.xz",
"ghc-x86_64-linux-deb12-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4358,14 +6257,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-darwin-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4374,12 +6273,12 @@
],
"rules": [
{
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"find libraries -name config.sub -exec cp config.sub {} \\;",
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -4387,36 +6286,30 @@
],
"stage": "full-build",
"tags": [
"x86_64-darwin-m1"
"x86_64-linux-perf"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-darwin-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "10.13",
"NIX_SYSTEM": "x86_64-darwin",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-darwin-validate",
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": " --config perf_path=perf",
"TEST_ENV": "x86_64-linux-deb12-release"
}
},
"x86_64-freebsd13-validate": {
"x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": true,
"allow_failure": false,
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-freebsd13-validate.tar.xz",
"ghc-x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4426,14 +6319,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-freebsd13-$CACHE_REV",
"key": "x86_64-linux-deb12-riscv-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12-riscv:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4442,11 +6335,12 @@
],
"rules": [
{
"if": "(($CI_MERGE_REQUEST_LABELS =~ /.*FreeBSD.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*RISC-V.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
......@@ -4454,21 +6348,21 @@
],
"stage": "full-build",
"tags": [
"x86_64-freebsd13"
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-freebsd13-validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.8.1.0",
"CONFIGURE_ARGS": "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3",
"HADRIAN_ARGS": "--docs=no-sphinx",
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CROSS_EMULATOR": "qemu-riscv64 -L /usr/riscv64-linux-gnu",
"CROSS_TARGET": "riscv64-linux-gnu",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-freebsd13-validate"
"TEST_ENV": "x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate"
}
},
"x86_64-linux-alpine3_12-validate+fully_static": {
"x86_64-linux-deb12-unreg-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4479,7 +6373,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_12-validate+fully_static.tar.xz",
"ghc-x86_64-linux-deb12-unreg-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4489,14 +6383,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4505,7 +6399,7 @@
],
"rules": [
{
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-unreg-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -4522,17 +6416,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate+fully_static",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "validate+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-unreg-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-unregisterised --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static"
"TEST_ENV": "x86_64-linux-deb12-unreg-validate"
}
},
"x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static": {
"x86_64-linux-deb12-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4543,7 +6435,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static.tar.xz",
"ghc-x86_64-linux-deb12-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4553,14 +6445,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4569,7 +6461,7 @@
],
"rules": [
{
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -4586,16 +6478,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static",
"BUILD_FLAVOUR": "release+fully_static",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=none",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static"
"TEST_ENV": "x86_64-linux-deb12-validate"
}
},
"x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static": {
"x86_64-linux-deb12-validate+boot_nonmoving_gc": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4606,7 +6497,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static.tar.xz",
"ghc-x86_64-linux-deb12-validate+boot_nonmoving_gc.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4616,14 +6507,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4632,9 +6523,8 @@
],
"rules": [
{
"allow_failure": true,
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-validate\\+boot_nonmoving_gc(\\s|$).*/)) || (($ONLY_JOBS == null) && (($CI_MERGE_REQUEST_LABELS =~ /.*non-moving GC.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
......@@ -4649,17 +6539,16 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static",
"BUILD_FLAVOUR": "release+fully_static",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=none",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static"
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+boot_nonmoving_gc",
"BUILD_FLAVOUR": "validate+boot_nonmoving_gc",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity",
"TEST_ENV": "x86_64-linux-deb12-validate+boot_nonmoving_gc"
}
},
"x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static": {
"x86_64-linux-deb12-validate+llvm": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4670,7 +6559,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static.tar.xz",
"ghc-x86_64-linux-deb12-validate+llvm.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4680,14 +6569,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4696,9 +6585,8 @@
],
"rules": [
{
"allow_failure": true,
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-validate\\+llvm(\\s|$).*/)) || (($ONLY_JOBS == null) && (($CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
......@@ -4714,27 +6602,26 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static",
"BUILD_FLAVOUR": "release+fully_static",
"CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"HADRIAN_ARGS": "--docs=none",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "validate+llvm",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static"
"TEST_ENV": "x86_64-linux-deb12-validate+llvm"
}
},
"x86_64-linux-deb10-int_native-validate": {
"x86_64-linux-deb12-validate+thread_sanitizer_cmm": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"allow_failure": true,
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb10-int_native-validate.tar.xz",
"ghc-x86_64-linux-deb12-validate+thread_sanitizer_cmm.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4744,14 +6631,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4760,8 +6647,9 @@
],
"rules": [
{
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
"allow_failure": true,
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-validate\\+thread_sanitizer_cmm(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
}
],
"script": [
......@@ -4776,15 +6664,18 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-int_native-validate",
"BUILD_FLAVOUR": "validate",
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+thread_sanitizer_cmm",
"BUILD_FLAVOUR": "validate+thread_sanitizer_cmm",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-int_native-validate"
"TEST_ENV": "x86_64-linux-deb12-validate+thread_sanitizer_cmm",
"TSAN_OPTIONS": "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions"
}
},
"x86_64-linux-deb10-no_tntc-validate": {
"x86_64-linux-deb12-zstd-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4795,7 +6686,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb10-no_tntc-validate.tar.xz",
"ghc-x86_64-linux-deb12-zstd-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4805,14 +6696,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4821,9 +6712,8 @@
],
"rules": [
{
"allow_failure": true,
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-zstd-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (($CI_MERGE_REQUEST_LABELS =~ /.*IPE.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
......@@ -4839,14 +6729,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-no_tntc-validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-zstd-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-tables-next-to-code --enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--enable-ipe-data-compression --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-no_tntc-validate"
"TEST_ENV": "x86_64-linux-deb12-zstd-validate"
}
},
"x86_64-linux-deb10-numa-slow-validate": {
"x86_64-linux-deb9-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4857,7 +6748,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz",
"ghc-x86_64-linux-deb9-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4867,14 +6758,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-deb9-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4883,7 +6774,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb9-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -4900,15 +6791,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-numa-slow-validate",
"BUILD_FLAVOUR": "slow-validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb9-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"ENABLE_NUMA": "1",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-numa-slow-validate"
"TEST_ENV": "x86_64-linux-deb9-validate"
}
},
"x86_64-linux-deb10-unreg-validate": {
"x86_64-linux-fedora33-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4919,7 +6810,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb10-unreg-validate.tar.xz",
"ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4929,14 +6820,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -4945,7 +6836,7 @@
],
"rules": [
{
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora33-release(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -4962,14 +6853,17 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-unreg-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-unregisterised --enable-strict-ghc-toolchain-check",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-unreg-validate"
"TEST_ENV": "x86_64-linux-fedora33-release"
}
},
"x86_64-linux-deb10-validate+debug_info": {
"x86_64-linux-fedora33-release-hackage": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -4980,7 +6874,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb10-validate+debug_info.tar.xz",
"ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -4990,14 +6884,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -5006,7 +6900,7 @@
],
"rules": [
{
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora33-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -5023,14 +6917,18 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+debug_info",
"BUILD_FLAVOUR": "validate+debug_info",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-validate+debug_info"
"TEST_ENV": "x86_64-linux-fedora33-release"
}
},
"x86_64-linux-deb10-validate+thread_sanitizer": {
"x86_64-linux-fedora33-validate+debug_info": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -5041,7 +6939,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb10-validate+thread_sanitizer.tar.xz",
"ghc-x86_64-linux-fedora33-validate+debug_info.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -5051,14 +6949,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -5067,9 +6965,8 @@
],
"rules": [
{
"allow_failure": true,
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora33-validate\\+debug_info(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
......@@ -5085,16 +6982,17 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+thread_sanitizer",
"BUILD_FLAVOUR": "validate+thread_sanitizer",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-validate+debug_info",
"BUILD_FLAVOUR": "validate+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-validate+thread_sanitizer",
"TSAN_OPTIONS": "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions"
"TEST_ENV": "x86_64-linux-fedora33-validate+debug_info"
}
},
"x86_64-linux-deb10-zstd-validate": {
"x86_64-linux-fedora38-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -5105,7 +7003,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb10-zstd-validate.tar.xz",
"ghc-x86_64-linux-fedora38-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -5115,14 +7013,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"key": "x86_64-linux-fedora38-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora38:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -5131,7 +7029,7 @@
],
"rules": [
{
"if": "(($CI_MERGE_REQUEST_LABELS =~ /.*IPE.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora38-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -5148,14 +7046,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-zstd-validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora38-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-ipe-data-compression --enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-zstd-validate"
"TEST_ENV": "x86_64-linux-fedora38-validate"
}
},
"x86_64-linux-deb11-cross_aarch64-linux-gnu-validate": {
"x86_64-linux-rocky8-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -5166,7 +7065,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb11-cross_aarch64-linux-gnu-validate.tar.xz",
"ghc-x86_64-linux-rocky8-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -5176,14 +7075,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb11-$CACHE_REV",
"key": "x86_64-linux-rocky8-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-rocky8:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -5192,7 +7091,7 @@
],
"rules": [
{
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-rocky8-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -5209,16 +7108,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-cross_aarch64-linux-gnu-validate",
"BIN_DIST_NAME": "ghc-x86_64-linux-rocky8-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CROSS_EMULATOR": "qemu-aarch64 -L /usr/aarch64-linux-gnu",
"CROSS_TARGET": "aarch64-linux-gnu",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate"
"TEST_ENV": "x86_64-linux-rocky8-validate"
}
},
"x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate": {
"x86_64-linux-ubuntu18_04-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -5229,7 +7127,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate.tar.xz",
"ghc-x86_64-linux-ubuntu18_04-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -5239,14 +7137,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb11-$CACHE_REV",
"key": "x86_64-linux-ubuntu18_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu18_04:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -5255,7 +7153,7 @@
],
"rules": [
{
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*javascript.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-ubuntu18_04-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -5271,18 +7169,16 @@
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate",
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu18_04-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CONFIGURE_WRAPPER": "emconfigure",
"CROSS_EMULATOR": "js-emulator",
"CROSS_TARGET": "javascript-unknown-ghcjs",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate"
"TEST_ENV": "x86_64-linux-ubuntu18_04-validate"
}
},
"x86_64-linux-deb11-validate+boot_nonmoving_gc": {
"x86_64-linux-ubuntu20_04-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -5293,7 +7189,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb11-validate+boot_nonmoving_gc.tar.xz",
"ghc-x86_64-linux-ubuntu20_04-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -5303,14 +7199,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb11-$CACHE_REV",
"key": "x86_64-linux-ubuntu20_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -5319,7 +7215,7 @@
],
"rules": [
{
"if": "(($CI_MERGE_REQUEST_LABELS =~ /.*non-moving GC.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-ubuntu20_04-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -5336,14 +7232,15 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-validate+boot_nonmoving_gc",
"BUILD_FLAVOUR": "validate+boot_nonmoving_gc",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity",
"TEST_ENV": "x86_64-linux-deb11-validate+boot_nonmoving_gc"
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu20_04-validate"
}
},
"x86_64-linux-deb12-validate+llvm": {
"x86_64-linux-ubuntu22_04-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
......@@ -5354,7 +7251,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-deb12-validate+llvm.tar.xz",
"ghc-x86_64-linux-ubuntu22_04-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -5364,14 +7261,14 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb12-$CACHE_REV",
"key": "x86_64-linux-ubuntu22_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu22_04:$DOCKER_REV",
"needs": [
{
"artifacts": false,
......@@ -5380,7 +7277,7 @@
],
"rules": [
{
"if": "(($CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-ubuntu22_04-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -5397,25 +7294,25 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "validate+llvm",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu22_04-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-validate+llvm"
"TEST_ENV": "x86_64-linux-ubuntu22_04-validate"
}
},
"x86_64-linux-fedora33-release": {
"x86_64-windows-int_native-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
],
"allow_failure": false,
"artifacts": {
"expire_in": "2 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"ghc-x86_64-windows-int_native-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
......@@ -5425,14 +7322,11 @@
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
"key": "no-caching",
"paths": []
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"image": null,
"needs": [
{
"artifacts": false,
......@@ -5441,30 +7335,33 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-windows-int_native-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"bash .gitlab/ci.sh build_hadrian",
"bash .gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
"new-x86_64-windows"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-windows-int_native-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release"
"TEST_ENV": "x86_64-windows-int_native-validate"
}
},
"x86_64-windows-validate": {
......@@ -5500,7 +7397,7 @@
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-windows-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
......@@ -5518,10 +7415,11 @@
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-windows-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.8.1.0",
"CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3",
"HADRIAN_ARGS": "--docs=no-sphinx",
"GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "",
......
......@@ -7,7 +7,12 @@ expectations. Also please answer the following question in your MR description:*
Please take a few moments to address the following points:
* [ ] if your MR may break existing programs (e.g. touches `base` or causes the
* [ ] if your MR touches `base` (or touches parts of `ghc-internal` used
or re-exported by `base`) more substantially than just amending comments
or documentation, you likely need to raise a
[CLC proposal](https://github.com/haskell/core-libraries-committee#base-package)
before merging it.
* [ ] if your MR may break existing programs (e.g. causes the
compiler to reject programs), please describe the expected breakage and add
the ~"user-facing" label. This will run ghc/head.hackage> to characterise
the effect of your change on Hackage.
......@@ -30,7 +35,7 @@ label can be applied to perform additional validation checks if your MR affects
unusual configuration.
Once your change is ready please remove the `WIP:` tag and wait for review. If
no one has offerred review in a few days then please leave a comment mentioning
no one has offered a review in a few days then please leave a comment mentioning
@triagers and apply the ~"Blocked on Review" label.
[notes]: https://gitlab.haskell.org/ghc/ghc/wikis/commentary/coding-style#comments-in-the-source-code
......
Thank your for your contribution to Haddock!
* [ ] This MR relates to \<ticket number>
* [ ] I have read the [CONTRIBUTING](./utils/haddock/CONTRIBUTING.md) guide
* [ ] I have inserted a CHANGELOG entry if this warrants it
* [ ] I have squashed my commits
* [ ] I have added tests if necessary
* [ ] I have updated the documentation
If you have any questions don't hesitate to open your merge request and inquire
in a comment. If your patch isn't quite done yet please do add prefix your MR
title with `Draft:`.
Once your change is ready please remove the `Draft:` tag and wait for review. If
no one has offered a review in a few days then please leave a comment mentioning
@triagers and apply the ~"Blocked on Review" label.
......@@ -27,6 +27,15 @@ let
buildCommand = ''
mkdir -p $out/bin
makeWrapper ${./recompress-all} $out/bin/recompress-all \
--prefix PATH : ${gnumake}/bin \
--prefix PATH : ${gnutar}/bin \
--prefix PATH : ${lzip}/bin \
--prefix PATH : ${bzip2}/bin \
--prefix PATH : ${gzip}/bin \
--prefix PATH : ${xz}/bin \
--prefix PATH : ${zip}/bin
makeWrapper ${./upload.sh} $out/bin/upload.sh \
--prefix PATH : ${moreutils}/bin \
--prefix PATH : ${lftp}/bin \
......@@ -35,8 +44,8 @@ let
--prefix PATH : ${s3cmd}/bin \
--prefix PATH : ${gnupg}/bin \
--prefix PATH : ${pinentry}/bin \
--prefix PATH : ${parallel}/bin \
--prefix PATH : ${python3}/bin \
--prefix PATH : $out/bin \
--set ENTER_FHS_ENV ${bindistPrepEnv}/bin/enter-fhs \
--set BASH ${bash}/bin/bash
......
......@@ -18,15 +18,16 @@ def job_triple(job_name):
bindists = {
'release-x86_64-windows-release': 'x86_64-unknown-mingw32',
'release-x86_64-windows-int_native-release': 'x86_64-unknown-mingw32-int_native',
'release-x86_64-rocky8-release': 'x86_64-rocky8-linux',
'release-x86_64-linux-rocky8-release': 'x86_64-rocky8-linux',
'release-x86_64-linux-ubuntu22_04-release': 'x86_64-ubuntu22_04-linux',
'release-x86_64-linux-ubuntu20_04-release': 'x86_64-ubuntu20_04-linux',
'release-x86_64-linux-ubuntu18_04-release': 'x86_64-ubuntu18_04-linux',
'release-x86_64-linux-fedora38-release': 'x86_64-fedora38-linux',
'release-x86_64-linux-fedora33-release+debug_info': 'x86_64-fedora33-linux-dwarf',
'release-x86_64-linux-fedora33-release': 'x86_64-fedora33-linux',
'release-x86_64-linux-fedora38-release': 'x86_64-fedora38-linux',
'release-x86_64-linux-fedora27-release': 'x86_64-fedora27-linux',
'release-x86_64-linux-deb11-release': 'x86_64-deb11-linux',
'release-x86_64-linux-deb12-release': 'x86_64-deb12-linux',
'release-x86_64-linux-deb11-release': 'x86_64-deb11-linux',
'release-x86_64-linux-deb10-release+debug_info': 'x86_64-deb10-linux-dwarf',
'release-x86_64-linux-deb10-release': 'x86_64-deb10-linux',
'release-x86_64-linux-deb9-release': 'x86_64-deb9-linux',
......@@ -34,13 +35,16 @@ def job_triple(job_name):
'release-x86_64-linux-alpine3_12-release+fully_static': 'x86_64-alpine3_12-linux-static',
'release-x86_64-linux-alpine3_12-release': 'x86_64-alpine3_12-linux',
'release-x86_64-linux-alpine3_12-int_native-release+fully_static': 'x86_64-alpine3_12-linux-static-int_native',
'release-x86_64-linux-alpine3_20-release': 'x86_64-alpine3_20-linux',
'release-x86_64-darwin-release': 'x86_64-apple-darwin',
'release-i386-linux-deb9-release': 'i386-deb9-linux',
'release-i386-linux-deb12-release': 'i386-deb12-linux',
'release-i386-linux-deb10-release': 'i386-deb10-linux',
'release-i386-linux-deb9-release': 'i386-deb9-linux',
'release-armv7-linux-deb10-release': 'armv7-deb10-linux',
'release-aarch64-linux-deb10-release': 'aarch64-deb10-linux',
'release-aarch64-linux-deb11-release': 'aarch64-deb11-linux',
'release-aarch64-linux-alpine_3_18-release': 'aarch64-alpine3_18-linux',
'release-aarch64-linux-deb12-release': 'aarch64-deb12-linux',
'release-aarch64-linux-alpine3_18-release+no_split_sections': 'aarch64-alpine3_18-linux',
'release-aarch64-darwin-release': 'aarch64-apple-darwin',
'source-tarball': 'src',
......@@ -128,7 +132,7 @@ def fetch_artifacts(release: str, pipeline_id: int,
for f in doc_files:
subprocess.run(['tar', '-xf', f, '-C', dest])
logging.info(f'extracted docs {f} to {dest}')
index_path = destdir / 'index.html'
index_path = destdir / 'docs' / 'index.html'
index_path.replace(dest / 'index.html')
elif job.name == 'hackage-doc-tarball':
dest = dest_dir / 'hackage_docs'
......
......@@ -22,7 +22,7 @@ options:
```
The script also requires the `.gitlab/jobs-metadata.yaml` file which can be generated
by running `.gitlab/generate_jobs_metadata` script if you want to run it locally.
by running `.gitlab/generate-ci/generate_jobs_metadata` script if you want to run it locally.
## CI Pipelines
......
......@@ -36,16 +36,16 @@ import os
import yaml
import gitlab
from urllib.request import urlopen
from urllib.parse import urlparse
import hashlib
import sys
import json
import urllib.parse
import fetch_gitlab
def eprint(*args, **kwargs):
def eprint(*args, **kwargs) -> None:
print(*args, file=sys.stderr, **kwargs)
gl = gitlab.Gitlab('https://gitlab.haskell.org', per_page=100)
# TODO: Take this file as an argument
......@@ -59,6 +59,10 @@ with open(metadata_file, 'r') as f:
eprint(f"Supported platforms: {job_mapping.keys()}")
# Mapping from job name to its corresponding Job
JobMap = Dict[str, gitlab.Job]
GhcupDist = object
# Artifact precisely specifies a job what the bindist to download is called.
class Artifact(NamedTuple):
......@@ -66,6 +70,7 @@ class Artifact(NamedTuple):
download_name: str
output_name: str
subdir: str
anchor_name: str
# Platform spec provides a specification which is agnostic to Job
# PlatformSpecs are converted into Artifacts by looking in the jobs-metadata.json file.
......@@ -76,45 +81,46 @@ class PlatformSpec(NamedTuple):
source_artifact = Artifact('source-tarball'
, 'ghc-{version}-src.tar.xz'
, 'ghc-{version}-src.tar.xz'
, 'ghc-{version}' )
, 'ghc-{version}'
, 'ghc{version}-src')
test_artifact = Artifact('source-tarball'
, 'ghc-{version}-testsuite.tar.xz'
, 'ghc-{version}-testsuite.tar.xz'
, 'ghc-{version}' )
def debian(arch, n):
return linux_platform(arch, "{arch}-linux-deb{n}".format(arch=arch, n=n))
, 'ghc-{version}/testsuite'
, 'ghc{version}-testsuite')
def darwin(arch):
def darwin(arch: str) -> PlatformSpec:
return PlatformSpec ( '{arch}-darwin'.format(arch=arch)
, 'ghc-{version}-{arch}-apple-darwin'.format(arch=arch, version="{version}") )
windowsArtifact = PlatformSpec ( 'x86_64-windows'
, 'ghc-{version}-x86_64-unknown-mingw32' )
def centos(n):
return linux_platform("x86_64", "x86_64-linux-centos{n}".format(n=n))
def debian(n: int, arch: str='x86_64') -> PlatformSpec:
return linux_platform(arch, "{arch}-linux-deb{n}".format(arch=arch, n=n))
def centos(n: int, arch='x86_64') -> PlatformSpec:
return linux_platform(arch, "{arch}-linux-centos{n}".format(n=n,arch=arch))
def fedora(n):
return linux_platform("x86_64", "x86_64-linux-fedora{n}".format(n=n))
def fedora(n: int, arch='x86_64') -> PlatformSpec:
return linux_platform(arch, "{arch}-linux-fedora{n}".format(n=n,arch=arch))
def alpine(n):
return linux_platform("x86_64", "x86_64-linux-alpine{n}".format(n=n))
def alpine(n: str, arch='x86_64') -> PlatformSpec:
return linux_platform(arch, "{arch}-linux-alpine{n}".format(n=n,arch=arch))
def rocky(n):
return linux_platform("x86_64", "x86_64-linux-rocky{n}".format(n=n))
def rocky(n: int, arch='x86_64') -> PlatformSpec:
return linux_platform(arch, "{arch}-linux-rocky{n}".format(n=n,arch=arch))
def ubuntu(n):
return linux_platform("x86_64", "x86_64-linux-ubuntu{n}".format(n=n))
def ubuntu(n: str, arch='x86_64') -> PlatformSpec:
return linux_platform(arch, "{arch}-linux-ubuntu{n}".format(n=n,arch=arch))
def linux_platform(arch, opsys):
def linux_platform(arch: str, opsys: str) -> PlatformSpec:
return PlatformSpec( opsys, 'ghc-{version}-{arch}-unknown-linux'.format(version="{version}", arch=arch) )
base_url = 'https://gitlab.haskell.org/api/v4/projects/1/jobs/{job_id}/artifacts/{artifact_name}'
hash_cache = {}
hash_cache = {} # type: Dict[str, str]
# Download a URL and return its hash
def download_and_hash(url):
......@@ -132,8 +138,10 @@ def download_and_hash(url):
hash_cache[url] = digest
return digest
uri_to_anchor_cache = {} # type: Dict[str, str]
# Make the metadata for one platform.
def mk_one_metadata(release_mode, version, job_map, artifact):
def mk_one_metadata(release_mode: bool, version: str, job_map: JobMap, artifact: Artifact) -> GhcupDist:
job_id = job_map[artifact.job_name].id
url = base_url.format(job_id=job_id, artifact_name=urllib.parse.quote_plus(artifact.download_name.format(version=version)))
......@@ -141,8 +149,14 @@ def mk_one_metadata(release_mode, version, job_map, artifact):
# In --release-mode, the URL in the metadata needs to point into the downloads folder
# rather then the pipeline.
if release_mode:
# the test artifact is bundled with the source artifact, so it doesn't have its own job name
# So we must manually set the name of the bindist location
if artifact == test_artifact:
bindist_name = "testsuite"
else:
bindist_name = fetch_gitlab.job_triple(artifact.job_name)
final_url = release_base.format( version=version
, bindistName=urllib.parse.quote_plus(f"{fetch_gitlab.job_triple(artifact.job_name)}.tar.xz"))
, bindistName=urllib.parse.quote_plus(f"{bindist_name}.tar.xz"))
else:
final_url = url
......@@ -150,48 +164,63 @@ def mk_one_metadata(release_mode, version, job_map, artifact):
eprint(f"Bindist URL: {url}")
eprint(f"Download URL: {final_url}")
#Download and hash from the release pipeline, this must not change anyway during upload.
# Download and hash from the release pipeline, this must not change anyway during upload.
h = download_and_hash(url)
res = { "dlUri": final_url
, "dlSubdir": artifact.subdir.format(version=version)
, "dlOutput": artifact.output_name.format(version=version)
, "dlHash" : h }
# Only add dlOutput if it is inconsistent with the filename inferred from the URL
output = artifact.output_name.format(version=version)
if Path(urlparse(final_url).path).name != output:
res["dlOutput"] = output
eprint(res)
# add the uri to the anchor name cache so we can lookup an anchor for this uri
uri_to_anchor_cache[final_url] = artifact.anchor_name
return res
# Turns a platform into an Artifact respecting pipeline_type
# Looks up the right job to use from the .gitlab/jobs-metadata.json file
def mk_from_platform(pipeline_type, platform):
def mk_from_platform(pipeline_type: str, platform: PlatformSpec) -> Artifact:
info = job_mapping[platform.name][pipeline_type]
eprint(f"From {platform.name} / {pipeline_type} selecting {info['name']}")
return Artifact(info['name']
, f"{info['jobInfo']['bindistName']}.tar.xz"
, "ghc-{version}-{pn}.tar.xz".format(version="{version}", pn=platform.name)
, platform.subdir)
, platform.subdir
, f"ghc{{version}}-{platform.name}")
# Generate the new metadata for a specific GHC mode etc
def mk_new_yaml(release_mode, version, date, pipeline_type, job_map):
def mk_new_yaml(release_mode: bool, version: str, date: str, pipeline_type, job_map: JobMap) -> object:
def mk(platform):
eprint("\n=== " + platform.name + " " + ('=' * (75 - len(platform.name))))
return mk_one_metadata(release_mode, version, job_map, mk_from_platform(pipeline_type, platform))
# Here are all the bindists we can distribute
ubuntu1804 = mk(ubuntu("18_04"))
ubuntu2004 = mk(ubuntu("20_04"))
rocky8 = mk(rocky("8"))
# Here are all the bindists we can distribute
ubuntu2204 = mk(ubuntu("22_04"))
rocky8 = mk(rocky(8))
centos7 = mk(centos(7))
fedora33 = mk(fedora(33))
darwin_x86 = mk(darwin("x86_64"))
darwin_arm64 = mk(darwin("aarch64"))
windows = mk(windowsArtifact)
alpine3_12 = mk(alpine("3_12"))
deb9 = mk(debian("x86_64", 9))
deb10 = mk(debian("x86_64", 10))
deb11 = mk(debian("x86_64", 11))
deb10_arm64 = mk(debian("aarch64", 10))
deb10_i386 = mk(debian("i386", 10))
alpine3_20 = mk(alpine("3_20"))
alpine3_18_arm64 = mk(alpine("3_18", arch='aarch64'))
deb9 = mk(debian(9, "x86_64"))
deb10 = mk(debian(10, "x86_64"))
deb11 = mk(debian(11, "x86_64"))
deb12 = mk(debian(12, "x86_64"))
deb10_arm64 = mk(debian(10, "aarch64"))
deb12_arm64 = mk(debian(12, "aarch64"))
deb10_i386 = mk(debian(10, "i386"))
deb12_i386 = mk(debian(12, "i386"))
source = mk_one_metadata(release_mode, version, job_map, source_artifact)
test = mk_one_metadata(release_mode, version, job_map, test_artifact)
......@@ -200,34 +229,49 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map):
# developers want.
a64 = { "Linux_Debian": { "< 10": deb9
, "(>= 10 && < 11)": deb10
, ">= 11": deb11
, "( >= 10 && < 11 )": deb10
, "( >= 11 && < 12 )": deb11
, ">= 12": deb12
, "unknown_versioning": deb11 }
, "Linux_Ubuntu" : { "unknown_versioning": ubuntu2004
, "( >= 16 && < 19 )": ubuntu1804
, "( >= 16 && < 18 )": deb9
, "( >= 18 && < 19 )": ubuntu1804
, "( >= 19 && < 21 )": ubuntu2004
, "( >= 21 )": ubuntu2204
}
, "Linux_Mint" : { "< 20": ubuntu1804
, ">= 20": ubuntu2004 }
, ">= 20": ubuntu2004
, "unknown_versioning": ubuntu2004 }
, "Linux_CentOS" : { "( >= 7 && < 8 )" : centos7
, "unknown_versioning" : centos7 }
, "Linux_Fedora" : { ">= 33": fedora33
, "unknown_versioning": centos7 }
, "Linux_RedHat" : { "unknown_versioning": centos7 }
#MP: Replace here with Rocky8 when that job is in the pipeline
, "Linux_RedHat" : { "< 9": centos7
, ">= 9": fedora33
, "unknown_versioning": fedora33 }
, "Linux_UnknownLinux" : { "unknown_versioning": rocky8 }
, "Darwin" : { "unknown_versioning" : darwin_x86 }
, "Windows" : { "unknown_versioning" : windows }
, "Linux_Alpine" : { "unknown_versioning": alpine3_12 }
, "Linux_Alpine" : { "( >= 3.12 && < 3.20 )": alpine3_12
, ">= 3.20": alpine3_20
, "unknown_versioning": alpine3_12 }
}
a32 = { "Linux_Debian": { "unknown_versioning": deb10_i386 }
a32 = { "Linux_Debian": { "( >= 10 && < 12 )": deb10_i386
, ">= 12": deb12_i386
, "unknown_versioning": deb10_i386 }
, "Linux_Ubuntu": { "unknown_versioning": deb10_i386 }
, "Linux_Mint" : { "unknown_versioning": deb10_i386 }
, "Linux_UnknownLinux" : { "unknown_versioning": deb10_i386 }
}
arm64 = { "Linux_UnknownLinux": { "unknown_versioning": deb10_arm64 }
, "Linux_Alpine" : { "unknown_versioning": alpine3_18_arm64 }
, "Linux_Debian": { "( >= 10 && < 12 )": deb10_arm64
, "( >= 12 )": deb12_arm64
, "unknown_versioning": deb10_arm64
}
, "Darwin": { "unknown_versioning": darwin_arm64 }
}
......@@ -260,13 +304,26 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map):
}
def setNightlyTags(ghcup_metadata):
def setNightlyTags(ghcup_metadata: dict) -> None:
for version in ghcup_metadata['ghcupDownloads']['GHC']:
if "LatestNightly" in ghcup_metadata['ghcupDownloads']['GHC'][version]["viTags"]:
ghcup_metadata['ghcupDownloads']['GHC'][version]["viTags"].remove("LatestNightly")
ghcup_metadata['ghcupDownloads']['GHC'][version]["viTags"].append("Nightly")
def mk_dumper(version: str) -> yaml.Dumper:
class CustomAliasDumper(yaml.Dumper):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def generate_anchor(self, node):
if isinstance(node, yaml.MappingNode):
node_dict = { k.value : v.value for (k,v) in node.value }
if 'dlUri' in node_dict:
return uri_to_anchor_cache[node_dict['dlUri']].format(version=version.replace('.',''))
return super().generate_anchor(node)
return CustomAliasDumper
def main() -> None:
......@@ -302,7 +359,7 @@ def main() -> None:
new_yaml = mk_new_yaml(args.release_mode, args.version, args.date, pipeline_type, job_map)
if args.fragment:
print(yaml.dump({ args.version : new_yaml }))
print(yaml.dump({ args.version : new_yaml }, Dumper=mk_dumper(args.version)))
else:
with open(args.metadata, 'r') as file:
......
#!/usr/bin/env -S make -f
MAKEFLAGS += --no-builtin-rules
MAKEFLAGS += --no-builtin-variables
usage :
echo "recompress [dest files]"
exit 1
%.gz : %.xz
echo "[xz->gz] $< to $@..."
xz -cd $< | gzip -c > $@
%.bz2 : %.xz
echo "[xz->bz2] $< to $@..."
xz -cd $< | bzip2 -c > $@
%.lz : %.xz
echo "[xz->lz] $< to $@..."
xz -cd $< | lzip -c > $@
%.zip : %.tar.xz
echo "[tarxz->zip] $< to $@..."
tmp="$$(mktemp -d tmp.XXX)" && \
tar -C "$$tmp" -xf $< && \
cd "$$tmp" && \
zip -9 -r ../$@ * && \
cd .. && \
rm -R "$$tmp"