summaryrefslogtreecommitdiff
path: root/.gitlab
Commit message (Collapse)AuthorAgeFilesLines
* Build vanilla alpine bindistsMatthew Pickering2023-05-113-8/+141
| | | | | | | | | | | We currently attempt to build and distribute fully static alpine bindists (ones which could be used on any linux platform) but most people who use the alpine bindists want to use alpine to build their own static applications (for which a fully static bindist is not necessary). We should build and distribute these bindists for these users whilst the fully-static bindist is still unusable. Fixes #23349
* Use hash-unit-ids in release jobsMatthew Pickering2023-05-043-11/+29
| | | | Includes fix upload_ghc_libs glob
* ci: additional wasm32 manual jobs in validate pipelinesCheng Shao2023-04-272-2/+126
| | | | | | This patch enables bignum native & unregisterised wasm32 jobs as manual jobs in validate pipelines, which can be useful to prevent breakage when working on wasm32 related patches.
* ci: update ci.sh to actually run the entire testsuite for wasm backendCheng Shao2023-04-271-4/+5
| | | | | For the time being, we still need to use in-tree mode and can't test the bindist yet.
* ci: use alpine3_17-wasm image for wasm jobsCheng Shao2023-03-302-78/+73
| | | | | Bump the ci-images dependency and use the new alpine3_17-wasm docker image for wasm jobs.
* ci: unset CROSS_EMULATOR for js jobCheng Shao2023-03-301-0/+2
|
* ci: ensure that all non-i386 pipelines do parallel xz compressionCheng Shao2023-03-301-1/+1
| | | | | | We can safely enable parallel xz compression for non-i386 pipelines. However, previously we didn't export XZ_OPT, so the xz process won't see it if XZ_OPT hasn't already been set in the current job.
* ci: make lint-ci-config job fast againCheng Shao2023-03-302-2/+2
| | | | | | | | We don't pin our nixpkgs revision and tracks the default nixpkgs-unstable channel anyway. Instead of using haskell.packages.ghc924, we should be using haskell.packages.ghc92 to maximize the binary cache hit rate and make lint-ci-config job fast again. Also bumps the nix docker image to the latest revision.
* gitlab-ci: Add job bootstrapping with nonmoving GCBen Gamari2023-03-082-72/+267
|
* Allow nightly-x86_64-linux-deb10-validate+thread_sanitizer to failBryan Richter2023-02-282-2/+4
| | | | See #22520
* JS: Store CI perf results (fix #22923)Sylvain Henry2023-02-241-1/+1
|
* gitlab-ci: Run nix-build with -v0Ben Gamari2023-02-241-1/+1
| | | | | | This significantly cuts down on the amount of noise in the job log. Addresses #22861.
* Propagate failure if unable to push notesBryan Richter2023-02-231-0/+4
|
* ghcup-metadata: Use Ubuntu and Rocky bindistsMatthew Pickering2023-02-161-5/+14
| | | | | | Prefer to use the Ubuntu 20.04 and 18.04 binary distributions on Ubuntu and Linux Mint. Prefer to use the Rocky 8 binary distribution on unknown distributions.
* ghcup-metadata: Add test artifactMatthew Pickering2023-02-161-0/+3
| | | | Add the released testsuite tarball to the generated ghcup metadata.
* Allow failure in nightly-x86_64-linux-deb10-no_tntc-validateBryan Richter2023-02-152-2/+8
| | | | See #22343
* upload_ghc_libs: More control over which packages to operate onBen Gamari2023-02-141-4/+9
| | | | | | Here we add a `--skip` flag to `upload_ghc_libs`, making it easier to limit which packages to upload. This is often necessary when one package is not uploadable (e.g. see #22740).
* gitlab-template: Emphasize `user facing` labelBen Gamari2023-02-091-8/+10
| | | | | | | | My sense is that the current mention of the ~"user facing" label is overlooked by many MR authors. Let's move this point up in the list to make it more likely that it is seen. Also rephrase some of the points.
* JS: replace "js" architecture with "javascript"Sylvain Henry2023-02-062-11/+11
| | | | | | | | | | | | | | | Despite Cabal supporting any architecture name, `cabal --check` only supports a few built-in ones. Sadly `cabal --check` is used by Hackage hence using any non built-in name in a package (e.g. `arch(js)`) is rejected and the package is prevented from being uploaded on Hackage. Luckily built-in support for the `javascript` architecture was added for GHCJS a while ago. In order to allow newer `base` to be uploaded on Hackage we make the switch from `js` to `javascript` architecture. Fixes #22740. Co-authored-by: Ben Gamari <ben@smart-cactus.org>
* gitlab-ci: Eliminate redundant ghc --info outputBen Gamari2023-02-031-2/+5
| | | | | | | Previously ci.sh would emit the output of `ghc --info` every time it ran when using the nix toolchain. This produced a significant amount of noise. See #22861.
* CI: JavaScript backend runs testsuitedoyougnu2023-02-023-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This MR runs the testsuite for the JS backend. Note that this is a temporary solution until !9515 is merged. Key point: The CI runs hadrian on the built cross compiler _but not_ on the bindist. Other Highlights: - stm submodule gets a bump to mark tests as broken - several tests are marked as broken or are fixed by adding more - conditions to their test runner instance. List of working commit messages: CI: test cross target _and_ emulator CI: JS: Try run testsuite with hadrian JS.CI: cleanup and simplify hadrian invocation use single bracket, print info JS CI: remove call to test_compiler from hadrian don't build haddock JS: mark more tests as broken Tracked in https://gitlab.haskell.org/ghc/ghc/-/issues/22576 JS testsuite: don't skip sum_mod test Its expected to fail, yet we skipped it which automatically makes it succeed leading to an unexpected success, JS testsuite: don't mark T12035j as skip leads to an unexpected pass JS testsuite: remove broken on T14075 leads to unexpected pass JS testsuite: mark more tests as broken JS testsuite: mark T11760 in base as broken JS testsuite: mark ManyUnbSums broken submodules: bump process and hpc for JS tests Both submodules has needed tests skipped or marked broken for th JS backend. This commit now adds these changes to GHC. See: HPC: https://gitlab.haskell.org/hpc/hpc/-/merge_requests/21 Process: https://github.com/haskell/process/pull/268 remove js_broken on now passing tests separate wasm and js backend ci test: T11760: add threaded, non-moving only_ways test: T10296a add req_c T13894: skip for JS backend tests: jspace, T22333: mark as js_broken(22573) test: T22513i mark as req_th stm submodule: mark stm055, T16707 broken for JS tests: js_broken(22374) on unpack_sums_6, T12010 dont run diff on JS CI, cleanup fixup: More CI cleanup fix: align text to master fix: align exceptions submodule to master CI: Bump DOCKER_REV Bump to ci-images commit that has a deb11 build with node. Required for !9552 testsuite: mark T22669 as js_skip See #22669 This test tests that .o-boot files aren't created when run in using the interpreter backend. Thus this is not relevant for the JS backend. testsuite: mark T22671 as broken on JS See #22835 base.testsuite: mark Chan002 fragile for JS see #22836 revert: submodule process bump bump stm submodule New hash includes skips for the JS backend. testsuite: mark RnPatternSynonymFail broken on JS Requires TH: - see !9779 - and #22261 compiler: GHC.hs ifdef import Utils.Panic.Plain
* gen_ci: Only consider release jobs for job metadataMatthew Pickering2023-01-301-4/+1
| | | | | In particular we do not have a release job for FreeBSD so the generation of the platform mapping was failing.
* rel_eng: Fix the name of the ubuntu-* jobsMatthew Pickering2023-01-301-2/+2
| | | | | | These were not uploaded for alpha1 Fixes #22844
* rel_eng: Add check to make sure that release jobs are downloaded by fetch-gitlabMatthew Pickering2023-01-301-0/+10
| | | | | | This check makes sure that if a job is a prefixed by "release-" then the script downloads it and understands how to map the job name to the platform.
* ci: Remove FreeBSD job from release pipelinesMatthew Pickering2023-01-302-63/+1
| | | | We no longer attempt to build or distribute this release
* rel-eng: Add missing rocky8 bindistMatthew Pickering2023-01-261-0/+1
| | | | | We intend to release rocky8 bindist so the fetching script needs to know about them.
* ci: Add ubuntu18_04 nightly and release jobsMatthew Pickering2023-01-263-0/+123
| | | | | | | This adds release jobs for ubuntu18_04 which uses glibc 2.27 which is older than the 2.28 which is used by Rocky8 bindists. Ticket #22268
* ghcup metadata: Remove viPostRemove field from generated metadataMatthew Pickering2023-01-231-1/+0
| | | | This has been removed from the downstream metadata.
* ghcup metadata: Fix subdir for windows bindistMatthew Pickering2023-01-231-1/+1
|
* Bump process submoduleCheng Shao2023-01-231-1/+3
| | | | | | | Includes a critical fix for wasm32, see https://github.com/haskell/process/pull/272 for details. Also changes the existing cross test to include process stuff and avoid future regression here.
* gitlab-ci: Add Rocky8 jobsBen Gamari2023-01-232-1/+133
| | | | Addresses #22268.
* Add scripts to generate ghcup metadata on nightly and release pipelinesMatthew Pickering2023-01-169-25/+479
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. A python script in .gitlab/rel_eng/mk-ghcup-metadata which generates suitable metadata for consumption by GHCUp for the relevant pipelines. - The script generates the metadata just as the ghcup maintainers want, without taking into account platform/library combinations. It is updated manually when the mapping changes. - The script downloads the bindists which ghcup wants to distribute, calculates the hash and generates the yaml in the correct structure. - The script is documented in the .gitlab/rel_eng/mk-ghcup-metadata/README.mk file 1a. The script requires us to understand the mapping from platform -> job. To choose the preferred bindist for each platform the .gitlab/gen_ci.hs script is modified to allow outputting a metadata file which answers the question about which job produces the bindist which we want to distribute to users for a specific platform. 2. Pipelines to run on nightly and release jobs to generate metadata - ghcup-metadata-nightly: Generates metadata which points directly to artifacts in the nightly job. - ghcup-metadata-release: Generates metadata suitable for inclusion directly in ghcup by pointing to the downloads folder where the bindist will be uploaded to. 2a. Trigger jobs which test the generated metadata in the downstream `ghccup-ci` repo. See that repo for documentation about what is tested and how but essentially we test in a variety of clean images that ghcup can download and install the bindists we say exist in our metadata.
* rel_eng: Add release engineering scripts into ghc treeMatthew Pickering2023-01-1610-0/+764
| | | | | | | | | | It is better to keep these scripts in the tree as they depend on the CI configuration and so on. By keeping them in tree we can keep them up-to-date as the CI config changes and also makes it easier to backport changes to the release script between release branches in future. The final motivation is that it makes generating GHCUp metadata possible.
* ci: Don't build aarch64-deb10-llvm job on release pipelinesMatthew Pickering2023-01-162-61/+1
| | | | Closes #22721
* wasm ci: Remove wasm release jobsMatthew Pickering2023-01-132-191/+3
| | | | | This removes the wasm release jobs, as we do not yet intend to distribute these binaries.
* ci: add wasm ci jobs via gen_ci.hsCheng Shao2023-01-132-542/+418
| | | | | | | - There is one regular wasm job run in validate pipelines - Additionally, int-native/unreg wasm jobs run in nightly/release pipelines Also, remove the legacy handwritten wasm ci jobs in .gitlab-ci.yml.
* ci: source the toolchain env file in wasm jobsCheng Shao2023-01-131-0/+4
|
* ci: improve nix-shell for gen_ci.hs and fix some ghc/hlint warningsCheng Shao2023-01-134-20/+45
| | | | | | | | | | | - Add a ghc environment including prebuilt dependencies to the nix-shell. Get rid of the ad hoc cabal cache and all dependencies are now downloaded from the nixos binary cache. - Make gen_ci.hs a cabal package with HLS integration, to make future hacking of gen_ci.hs easier. - Fix some ghc/hlint warnings after I got HLS to work. - For the lint-ci-config job, do a shallow clone to save a few minutes of unnecessary git checkout time.
* ci: use in-image emsdk for js jobsCheng Shao2023-01-131-15/+2
|
* ci: enable xz parallel compression for x64 jobsCheng Shao2023-01-131-0/+7
|
* gitlab-ci: Pass -w to cabal updateBen Gamari2023-01-131-1/+3
| | | | Due to cabal#8447, cabal-install 3.8.1.0 requires a compiler to run `cabal update`.
* gitlab-ci: Bump Darwin bootstrap toolchainBen Gamari2023-01-132-8/+8
| | | | | This updates the bootstrap compiler on Darwin from 8.10.7 to 9.2.5, ensuring that we have the fix for #21964.
* Change MSYSTEM to CLANG64 uniformlyCheng Shao2023-01-123-16/+10
|
* Disable split sections on aarch64-deb10 buildMatthew Pickering2023-01-092-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See #22722 Failure on this job: https://gitlab.haskell.org/ghc/ghc/-/jobs/1287852 ``` Unexpected failures: /builds/ghc/ghc/tmp/ghctest-s3d8g1hj/test spaces/testsuite/tests/th/T10828.run T10828 [exit code non-0] (ext-interp) /builds/ghc/ghc/tmp/ghctest-s3d8g1hj/test spaces/testsuite/tests/th/T13123.run T13123 [exit code non-0] (ext-interp) /builds/ghc/ghc/tmp/ghctest-s3d8g1hj/test spaces/testsuite/tests/th/T20590.run T20590 [exit code non-0] (ext-interp) Appending 232 stats to file: /builds/ghc/ghc/performance-metrics.tsv ``` ``` Compile failed (exit code 1) errors were: data family D_0 a_1 :: * -> * data instance D_0 GHC.Types.Int GHC.Types.Bool :: * where DInt_2 :: D_0 GHC.Types.Int GHC.Types.Bool data E_3 where MkE_4 :: a_5 -> E_3 data Foo_6 a_7 b_8 where MkFoo_9, MkFoo'_10 :: a_11 -> Foo_6 a_11 b_12 newtype Bar_13 :: * -> GHC.Types.Bool -> * where MkBar_14 :: a_15 -> Bar_13 a_15 b_16 data T10828.T (a_0 :: *) where T10828.MkT :: forall (a_1 :: *) . a_1 -> a_1 -> T10828.T a_1 T10828.MkC :: forall (a_2 :: *) (b_3 :: *) . (GHC.Types.~) a_2 GHC.Types.Int => {T10828.foo :: a_2, T10828.bar :: b_3} -> T10828.T GHC.Types.Int T10828.hs:1:1: error: [GHC-87897] Exception when trying to run compile-time code: ghc-iserv terminated (-4) Code: (do TyConI dec <- runQ $ reify (mkName "T") runIO $ putStrLn (pprint dec) >> hFlush stdout d <- runQ $ [d| data T' a :: Type where MkT' :: a -> a -> T' a MkC' :: forall a b. (a ~ Int) => {foo :: a, bar :: b} -> T' Int |] runIO $ putStrLn (pprint d) >> hFlush stdout ....) *** unexpected failure for T10828(ext-interp) =====> 7000 of 9215 [0, 1, 0] =====> 7000 of 9215 [0, 1, 0] =====> 7000 of 9215 [0, 1, 0] =====> 7000 of 9215 [0, 1, 0] Compile failed (exit code 1) errors were: T13123.hs:1:1: error: [GHC-87897] Exception when trying to run compile-time code: ghc-iserv terminated (-4) Code: ([d| data GADT where MkGADT :: forall k proxy (a :: k). proxy a -> GADT |]) *** unexpected failure for T13123(ext-interp) =====> 7100 of 9215 [0, 2, 0] =====> 7100 of 9215 [0, 2, 0] =====> 7200 of 9215 [0, 2, 0] Compile failed (exit code 1) errors were: T20590.hs:1:1: error: [GHC-87897] Exception when trying to run compile-time code: ghc-iserv terminated (-4) Code: ([d| data T where MkT :: forall a. a -> T |]) *** unexpected failure for T20590(ext-interp) ``` Looks fairly worrying to me.
* darwin ci: Explicitly pass desired build triple to configureMatthew Pickering2023-01-061-1/+1
| | | | | | On the zw3rk machines for some reason the build machine was inferred to be arm64. Setting the build triple appropiately resolve this confusion and we produce x86 binaries.
* ci: Upgrade darwin, windows and freebsd CI to use GHC-9.4.3Matthew Pickering2023-01-064-28/+47
| | | | Fixes #22599
* packaging: Build perf builds with -split-sectionswip/various-hadrian-fixesMatthew Pickering2023-01-042-39/+46
| | | | | | | | | | | In 8f71d958 the make build system was made to use split-sections on linux systems but it appears this logic never made it to hadrian. There is the split_sections flavour transformer but this doesn't appear to be used for perf builds on linux. This is disbled on deb9 and windows due to #21670 Closes #21135
* ci: Build all test dependencies with in-tree compilerMatthew Pickering2023-01-041-1/+1
| | | | | | | This means that these executables will honour flavour transformers such as "werror". Fixes #22555
* gitlab-ci: Introduce aarch64-linux-llvm jobBen Gamari2022-12-242-0/+178
| | | | | | | This nightly job will ensure that we don't break the LLVM backend on AArch64/Linux by bootstrapping GHC. This would have caught #22640.
* packaging: Fix upload_ghc_libs.py scriptMatthew Pickering2022-12-201-3/+8
| | | | | | | This change reflects the changes where .cabal files are now generated by hadrian rather than ./configure. Fixes #22518