diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 45cb9c09..e7deef33 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -111,7 +111,6 @@ jobs: echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV" HCDIR=/opt/$HCKIND/$HCVER HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER") - echo "$HOME/.ghcup/bin" >> "$GITHUB_PATH" HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#') HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#') echo "HC=$HC" >> "$GITHUB_ENV" @@ -263,9 +262,7 @@ jobs: $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --write-ghc-environment-files=always - name: tests run: | - export HAPPY=$HOME/.cabal/bin/happy - export HC - export CABAL + export HAPPY=$($CABAL list-bin happy) $CABAL v2-test $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --test-show-details=direct - name: cabal check run: | diff --git a/DEVELOPER.md b/DEVELOPER.md index 96776d27..47c6dc78 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -3,57 +3,9 @@ This document holds some useful information for developing Happy. CI on GitHub Actions ==================== -2021-07-14 +2024-07-15 +---------- The GHC workflow file `.github/workflows/haskell-ci.yml` is generated by: haskell-ci regenerate - patch --input=.github/haskell-ci.patch .github/workflows/haskell-ci.yml - -The patch introduces happy specifics to the build and test process that -are not covered by a vanilla instance of the haskell-ci workflow. - -When new GHC versions become available, CI can be updated by - - - adding these versions to the `tested-with` field in `happy.cabal` - (possibly removing obsolete minor versions) - - - generate the `haskell-ci.yml` by the steps above. - -This should work as long as `haskell-ci` does not change its generated -workflow too much. Otherwise, the patch might not apply cleanly and -the workflow has to be patched manually. - -2023-02-06 Updating to a new version of Haskell-CI --------------------------------------------------- - -1. Install Haskell-CI from its source repo: - - pushd /tmp - git clone https://github.com/haskell-CI/haskell-ci.git - cd haskell-ci - cabal install - popd - -2. Update the `tested-with` fields in the `.cabal` files. - -3. Follow the instructions to regenerate the Haskell CI workflow, which are: - - haskell-ci regenerate - patch --input=.github/haskell-ci.patch .github/workflows/haskell-ci.yml - -If some hunks fail to apply in the last step, the patch as to be updated. - -4. Apply the remaining hunks manually. - -5. Save the patched workflow, regenerate the original workflow, regenerate the patch - - cp .github/workflows/haskell-ci.yml .github/workflows/haskell-ci.yml-patched - haskell-ci regenerate - diff -u .github/workflows/haskell-ci.yml .github/workflows/haskell-ci.yml-patched > .github/haskell-ci.patch - -6. Now the patch will apply cleanly. - - patch --input=.github/haskell-ci.patch .github/workflows/haskell-ci.yml - -7. Commit the updated files (no extra files need to be committed). diff --git a/tests/Makefile b/tests/Makefile index 399126d1..26afd345 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -12,9 +12,9 @@ # [2021-07-14, PR #196](https://github.com/haskell/happy/pull/196) # ifndef HAPPY -HAPPY=$(shell which happy) +HAPPY=$(shell cabal list-bin happy) ifeq "$(filter $(dir $(shell pwd))%,$(HAPPY))" "" -HAPPY=../dist/build/happy/happy +$(error Environment variable $$HAPPY not set and `cabal list-bin happy` did not succeed. Cannot run testsuite.) endif endif