Skip to content

Commit bdebdbf

Browse files
committed
CI: remove dependency on cabal-plan (#8891)
1 parent 6f9acee commit bdebdbf

File tree

2 files changed

+21
-28
lines changed

2 files changed

+21
-28
lines changed

.github/workflows/validate.yml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,6 @@ jobs:
7878
run: |
7979
git config --global protocol.file.allow always
8080
81-
# The '+exe' constraint below is important, otherwise cabal-install
82-
# might decide to build the library but not the executable which is
83-
# what we need.
84-
- name: Install cabal-plan
85-
run: |
86-
cd $(mktemp -d)
87-
cabal install cabal-plan --allow-newer="base" --constraint='cabal-plan +exe'
88-
echo "$HOME/.cabal/bin:$HOME/.local/bin" >> $GITHUB_PATH
89-
9081
# The tool is not essential to the rest of the test suite. If
9182
# hackage-repo-tool is not present, any test that requires it will
9283
# be skipped.
@@ -132,7 +123,7 @@ jobs:
132123
- name: Tar cabal head executable
133124
if: matrix.ghc == env.GHC_FOR_RELEASE
134125
run: |
135-
CABAL_EXEC=$(cabal-plan list-bin --builddir=dist-newstyle-validate-ghc-${{ matrix.ghc }} cabal-install:exe:cabal)
126+
CABAL_EXEC=$(cabal list-bin --builddir=dist-newstyle-validate-ghc-${{ matrix.ghc }} --project-file=cabal.project.validate cabal-install:exe:cabal)
136127
# We have to tar the executable to preserve executable permissions
137128
# see https://github.com/actions/upload-artifact/issues/38
138129
if [[ ${{ runner.os }} == 'Windows' ]]; then

validate.sh

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ BUILDDIR=dist-newstyle-validate-$BASEHC
315315
CABAL_TESTSUITE_BDIR="$(pwd)/$BUILDDIR/build/$ARCH/$BASEHC/cabal-testsuite-3"
316316

317317
CABALNEWBUILD="${CABAL} v2-build $JOBS -w $HC --builddir=$BUILDDIR --project-file=$PROJECTFILE"
318-
CABALPLANLISTBIN="${CABALPLAN} list-bin --builddir=$BUILDDIR"
318+
CABALLISTBIN="${CABAL} list-bin --builddir=$BUILDDIR --project-file=$PROJECTFILE"
319319

320320
# header
321321
#######################################################################
@@ -347,7 +347,6 @@ print_header print-tool-versions
347347

348348
timed $HC --version
349349
timed $CABAL --version
350-
timed $CABALPLAN --version
351350

352351
for EXTRAHC in $EXTRAHCS; do
353352
timed $EXTRAHC --version
@@ -368,8 +367,11 @@ step_time_summary() {
368367

369368
step_build() {
370369
print_header "build"
370+
print_header "Step Build: dry run"
371371
timed $CABALNEWBUILD $TARGETS --dry-run || exit 1
372-
$CABALPLAN topo --builddir=$BUILDDIR || exit 1
372+
print_header "Step Build: full build plan (cached and to-be-built dependencies):"
373+
jq -r '."install-plan" | map(."pkg-name" + "-" + ."pkg-version" + " " + ."component-name") | join("\n")' "$BUILDDIR/cache/plan.json"
374+
print_header "Step Build: actual build"
373375
timed $CABALNEWBUILD $TARGETS || exit 1
374376
}
375377

@@ -386,22 +388,22 @@ timed doctest -package-env=doctest-Cabal --fast Cabal/Distribution Cabal/Languag
386388
step_lib_tests() {
387389
print_header "Cabal: tests"
388390

389-
CMD="$($CABALPLANLISTBIN Cabal-tests:test:unit-tests) $TESTSUITEJOBS --hide-successes --with-ghc=$HC"
391+
CMD="$($CABALLISTBIN Cabal-tests:test:unit-tests) $TESTSUITEJOBS --hide-successes --with-ghc=$HC"
390392
(cd Cabal-tests && timed $CMD) || exit 1
391393

392-
CMD="$($CABALPLANLISTBIN Cabal-tests:test:check-tests) $TESTSUITEJOBS --hide-successes"
394+
CMD="$($CABALLISTBIN Cabal-tests:test:check-tests) $TESTSUITEJOBS --hide-successes"
393395
(cd Cabal-tests && timed $CMD) || exit 1
394396

395-
CMD="$($CABALPLANLISTBIN Cabal-tests:test:parser-tests) $TESTSUITEJOBS --hide-successes"
397+
CMD="$($CABALLISTBIN Cabal-tests:test:parser-tests) $TESTSUITEJOBS --hide-successes"
396398
(cd Cabal-tests && timed $CMD) || exit 1
397399

398-
CMD="$($CABALPLANLISTBIN Cabal-tests:test:rpmvercmp) $TESTSUITEJOBS --hide-successes"
400+
CMD="$($CABALLISTBIN Cabal-tests:test:rpmvercmp) $TESTSUITEJOBS --hide-successes"
399401
(cd Cabal-tests && timed $CMD) || exit 1
400402

401-
CMD="$($CABALPLANLISTBIN Cabal-tests:test:no-thunks-test) $TESTSUITEJOBS --hide-successes"
403+
CMD="$($CABALLISTBIN Cabal-tests:test:no-thunks-test) $TESTSUITEJOBS --hide-successes"
402404
(cd Cabal-tests && timed $CMD) || exit 1
403405

404-
CMD=$($CABALPLANLISTBIN Cabal-tests:test:hackage-tests)
406+
CMD=$($CABALLISTBIN Cabal-tests:test:hackage-tests)
405407
(cd Cabal-tests && timed $CMD read-fields) || exit 1
406408
if $HACKAGETESTSALL; then
407409
(cd Cabal-tests && timed $CMD parsec) || exit 1
@@ -418,14 +420,14 @@ fi
418420
step_lib_suite() {
419421
print_header "Cabal: cabal-testsuite"
420422

421-
CMD="$($CABALPLANLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR $TESTSUITEJOBS --with-ghc=$HC --hide-successes"
423+
CMD="$($CABALLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR $TESTSUITEJOBS --with-ghc=$HC --hide-successes"
422424
(cd cabal-testsuite && timed $CMD) || exit 1
423425
}
424426

425427
step_lib_suite_extras() {
426428
for EXTRAHC in $EXTRAHCS; do
427429

428-
CMD="$($CABALPLANLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR $TESTSUITEJOBS --with-ghc=$EXTRAHC --hide-successes"
430+
CMD="$($CABALLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR $TESTSUITEJOBS --with-ghc=$EXTRAHC --hide-successes"
429431
(cd cabal-testsuite && timed $CMD) || exit 1
430432

431433
done
@@ -438,19 +440,19 @@ step_cli_tests() {
438440
print_header "cabal-install: tests"
439441

440442
# this are sorted in asc time used, quicker tests first.
441-
CMD="$($CABALPLANLISTBIN cabal-install:test:long-tests) $TESTSUITEJOBS --hide-successes"
443+
CMD="$($CABALLISTBIN cabal-install:test:long-tests) $TESTSUITEJOBS --hide-successes"
442444
(cd cabal-install && timed $CMD) || exit 1
443445

444446
# This doesn't work in parallel either
445-
CMD="$($CABALPLANLISTBIN cabal-install:test:unit-tests) -j1 --hide-successes"
447+
CMD="$($CABALLISTBIN cabal-install:test:unit-tests) -j1 --hide-successes"
446448
(cd cabal-install && timed $CMD) || exit 1
447449

448450
# Only single job, otherwise we fail with "Heap exhausted"
449-
CMD="$($CABALPLANLISTBIN cabal-install:test:mem-use-tests) -j1 --hide-successes"
451+
CMD="$($CABALLISTBIN cabal-install:test:mem-use-tests) -j1 --hide-successes"
450452
(cd cabal-install && timed $CMD) || exit 1
451453

452454
# This test-suite doesn't like concurrency
453-
CMD="$($CABALPLANLISTBIN cabal-install:test:integration-tests2) -j1 --hide-successes --with-ghc=$HC"
455+
CMD="$($CABALLISTBIN cabal-install:test:integration-tests2) -j1 --hide-successes --with-ghc=$HC"
454456
(cd cabal-install && timed $CMD) || exit 1
455457
}
456458

@@ -460,7 +462,7 @@ CMD="$($CABALPLANLISTBIN cabal-install:test:integration-tests2) -j1 --hide-succe
460462
step_cli_suite() {
461463
print_header "cabal-install: cabal-testsuite"
462464

463-
CMD="$($CABALPLANLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR --with-cabal=$($CABALPLANLISTBIN cabal-install:exe:cabal) $TESTSUITEJOBS --with-ghc=$HC --hide-successes"
465+
CMD="$($CABALLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR --with-cabal=$($CABALLISTBIN cabal-install:exe:cabal) $TESTSUITEJOBS --with-ghc=$HC --hide-successes"
464466
(cd cabal-testsuite && timed $CMD) || exit 1
465467
}
466468

@@ -470,15 +472,15 @@ CMD="$($CABALPLANLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TEST
470472
step_solver_benchmarks_tests() {
471473
print_header "solver-benchmarks: test"
472474

473-
CMD="$($CABALPLANLISTBIN solver-benchmarks:test:unit-tests)"
475+
CMD="$($CABALLISTBIN solver-benchmarks:test:unit-tests)"
474476
(cd Cabal && timed $CMD) || exit 1
475477
}
476478

477479
step_solver_benchmarks_run() {
478480
print_header "solver-benchmarks: run"
479481

480482
SOLVEPKG=Chart-diagrams
481-
CMD="$($CABALPLANLISTBIN solver-benchmarks:exe:hackage-benchmark) --cabal1=$CABAL --cabal2=$($CABALPLANLISTBIN cabal-install:exe:cabal) --trials=5 --packages=$SOLVEPKG --print-trials"
483+
CMD="$($CABALLISTBIN solver-benchmarks:exe:hackage-benchmark) --cabal1=$CABAL --cabal2=$($CABALLISTBIN cabal-install:exe:cabal) --trials=5 --packages=$SOLVEPKG --print-trials"
482484
(cd Cabal && timed $CMD) || exit 1
483485
}
484486

0 commit comments

Comments
 (0)