Magnus pushed to branch wip/mangoiv/ci-stages at Glasgow Haskell Compiler / GHC
Commits:
-
3d9fdc75
by mangoiv at 2026-09-22T17:31:07+02:00
-
407b39ca
by mangoiv at 2026-09-22T17:31:07+02:00
-
fbcf8e79
by mangoiv at 2026-09-22T17:31:07+02:00
-
c3fc8492
by mangoiv at 2026-09-22T17:31:07+02:00
-
697cdba1
by mangoiv at 2026-09-22T17:31:08+02:00
-
fb3ae926
by mangoiv at 2026-09-22T17:31:08+02:00
-
f8f3a17a
by mangoiv at 2026-09-22T17:31:08+02:00
-
26348a3b
by mangoiv at 2026-09-22T17:31:08+02:00
7 changed files:
- .gitlab-ci.yml
- .gitlab/ci.sh
- .gitlab/common.sh
- distrib/configure.ac.in
- m4/subst_tooldir.m4
- testsuite/driver/runtests.py
- testsuite/driver/testlib.py
Changes:
| ... | ... | @@ -68,8 +68,8 @@ stages: |
| 68 | 68 | - tool-lint # Source linting of the tools
|
| 69 | 69 | - quick-build # A very quick smoke-test to weed out broken commits
|
| 70 | 70 | - full-build # Build all the things
|
| 71 | - - packaging # Source distribution, etc.
|
|
| 72 | 71 | - testing # head.hackage correctness and compiler performance testing
|
| 72 | + - packaging # Source distribution, etc.
|
|
| 73 | 73 | - deploy # push documentation
|
| 74 | 74 | |
| 75 | 75 | # Note [The CI Story]
|
| ... | ... | @@ -685,7 +685,7 @@ function test_hadrian() { |
| 685 | 685 | tar -xf "$bindist_tar" -C "$dist_dir"
|
| 686 | 686 | fi
|
| 687 | 687 | |
| 688 | - check_msys2_deps _build/stage1/bin/ghc --version
|
|
| 688 | + # check_msys2_deps _build/stage1/bin/ghc --version
|
|
| 689 | 689 | check_release_build
|
| 690 | 690 | |
| 691 | 691 | # GitLab's log viewer renders ANSI colors, but stdout here is not a tty,
|
| ... | ... | @@ -974,7 +974,9 @@ function run_hadrian() { |
| 974 | 974 | if [ -n "${VERBOSE:-}" ]; then args+=("-V"); fi
|
| 975 | 975 | # Before running the compiler, unset variables gitlab env vars as these
|
| 976 | 976 | # can destabilise the performance test (see #20341)
|
| 977 | - (unset $(compgen -v | grep CI_*);
|
|
| 977 | + (unset $(compgen -v | grep -E '^(CI_|FF_|GITLAB_)');
|
|
| 978 | + # dump the env before running hdarian itself.
|
|
| 979 | + start_section run_hadrian_env "env for runnning hadrian"; env; end_section run_hadrian_env
|
|
| 978 | 980 | run "${HADRIAN_PATH:-hadrian/build-cabal}" \
|
| 979 | 981 | --flavour="$BUILD_FLAVOUR" \
|
| 980 | 982 | -j"$cores" \
|
| ... | ... | @@ -47,7 +47,7 @@ info() { echo_color "${LT_BLUE}" "$1"; } |
| 47 | 47 | fail() { error "error: $1"; exit 1; }
|
| 48 | 48 | |
| 49 | 49 | function run() {
|
| 50 | - info "Running $*..."
|
|
| 50 | + info "Running $*"
|
|
| 51 | 51 | "$@" || ( error "$* failed"; return 1; )
|
| 52 | 52 | }
|
| 53 | 53 |
| ... | ... | @@ -103,7 +103,7 @@ AC_ARG_ENABLE(distro-toolchain, |
| 103 | 103 | AC_SUBST([EnableDistroToolchain])
|
| 104 | 104 | |
| 105 | 105 | if test "$HostOS" = "mingw32" -a "$EnableDistroToolchain" = "NO"; then
|
| 106 | - FP_SETUP_WINDOWS_TOOLCHAIN([$hardtop/mingw/], [\$\$topdir/../mingw/])
|
|
| 106 | + FP_SETUP_WINDOWS_TOOLCHAIN([$hardtop/mingw/], [\$topdir/../mingw/])
|
|
| 107 | 107 | fi
|
| 108 | 108 | |
| 109 | 109 |
| ... | ... | @@ -41,5 +41,5 @@ dnl ghc-toolchain. |
| 41 | 41 | # See Note [How we configure the bundled windows toolchain]
|
| 42 | 42 | AC_DEFUN([SUBST_TOOLDIR],
|
| 43 | 43 | [
|
| 44 | - sed -i.bkp $1 's%'"$mingw_prefix"'%'"$mingw_install_prefix"'%g'
|
|
| 44 | + sed -i.bkp 's%'"$mingw_prefix"'%'"$mingw_install_prefix"'%g' $1
|
|
| 45 | 45 | ]) |
| ... | ... | @@ -353,6 +353,7 @@ except Exception as e: |
| 353 | 353 | print('Failed to detect CPU features: ', e)
|
| 354 | 354 | |
| 355 | 355 | sys.stdout.flush()
|
| 356 | +sys.stderr.flush()
|
|
| 356 | 357 | |
| 357 | 358 | if config.local:
|
| 358 | 359 | tempdir = ''
|
| ... | ... | @@ -479,6 +480,9 @@ for name in config.only: |
| 479 | 480 | # .T file errors.
|
| 480 | 481 | pass
|
| 481 | 482 | |
| 483 | +sys.stdout.flush()
|
|
| 484 | +sys.stderr.flush()
|
|
| 485 | + |
|
| 482 | 486 | if config.list_broken:
|
| 483 | 487 | print('')
|
| 484 | 488 | print('Broken tests:')
|
| ... | ... | @@ -506,12 +510,17 @@ else: |
| 506 | 510 | # wait for parallel tests to finish
|
| 507 | 511 | asyncio.run(run_parallelTests())
|
| 508 | 512 | |
| 513 | + sys.stdout.flush()
|
|
| 514 | + sys.stderr.flush()
|
|
| 515 | + |
|
| 509 | 516 | # Run the following tests purely sequential
|
| 510 | 517 | async def run_aloneTests():
|
| 511 | 518 | for oneTest in aloneTests:
|
| 512 | 519 | if stopping():
|
| 513 | 520 | break
|
| 514 | 521 | await oneTest(None)
|
| 522 | + sys.stdout.flush()
|
|
| 523 | + sys.stderr.flush()
|
|
| 515 | 524 | |
| 516 | 525 | asyncio.run(run_aloneTests())
|
| 517 | 526 | |
| ... | ... | @@ -520,6 +529,7 @@ else: |
| 520 | 529 | |
| 521 | 530 | # flush everything before we continue
|
| 522 | 531 | sys.stdout.flush()
|
| 532 | + sys.stderr.flush()
|
|
| 523 | 533 | |
| 524 | 534 | # Dump metrics data.
|
| 525 | 535 | print("\nPerformance Metrics (test environment: {}):\n".format(config.test_env))
|
| ... | ... | @@ -1699,8 +1699,8 @@ async def test_common_work(name: TestName, opts, |
| 1699 | 1699 | |
| 1700 | 1700 | # Skip tests which require hadrian dependencies if we are testing
|
| 1701 | 1701 | # an out-of-tree compiler as Hadrian is unavailable. See #13897.
|
| 1702 | - if not config.in_tree_compiler and getTestOpts().hadrian_deps - {'test:ghc'}:
|
|
| 1703 | - do_ways = []
|
|
| 1702 | + # if not config.in_tree_compiler and getTestOpts().hadrian_deps - {'test:ghc'}:
|
|
| 1703 | + # do_ways = []
|
|
| 1704 | 1704 | |
| 1705 | 1705 | # Run the required tests...
|
| 1706 | 1706 | for way in do_ways:
|