Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI validate-old-ghcs broken after haskell-actions/setup upgraded to node20 #9858

Closed
andreasabel opened this issue Mar 31, 2024 · 4 comments · Fixed by #9886
Closed

CI validate-old-ghcs broken after haskell-actions/setup upgraded to node20 #9858

andreasabel opened this issue Mar 31, 2024 · 4 comments · Fixed by #9886

Comments

@andreasabel
Copy link
Member

andreasabel commented Mar 31, 2024

The container for the "old ghcs" workflow uses a container phadej/ghc:8.8.4-xenial that does not support node20.

validate-old-ghcs:
name: Validate old ghcs ${{ matrix.extra-ghc }}
runs-on: ubuntu-latest
needs: validate
# This job needs an older ubuntu (16.04) cause
# the required old ghcs using the `-dyn` flavour
# are not installable from ppa/hvr in newer ones
# see https://github.com/haskell/cabal/issues/8011
container:
image: phadej/ghc:8.8.4-xenial

Since I bumped haskell-actions/setup to node20 the workflow fails, missing a recent glibc:
https://github.com/haskell/cabal/actions/runs/8496523229/job/23275396876#step:5:16

/__e/node20/bin/node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /__e/node20/bin/node)

A short term solution would be to pin to haskell-actions/setup@v2.6, however, GH will axe node16 in a couple of weeks, and then the problem will be back.

I'd rather axe GHC 7 validation.
E.g., for 7.0.4, less than 20% of the tests are actually run. Not much of a point, if you ask me.
https://github.com/haskell/cabal/actions/runs/8392859676/job/22990941034#step:8:455

532 tests, 436 skipped, 0 unexpected passes, 0 unexpected fails.

Or someone has to make a new container.

@andreasabel
Copy link
Member Author

There seem to be other issues with the validate-old-ghcs workflow:

It builds cabal-install but does not run the cabal-install tests. Why?

The validate.sh script calls jq which is not installed: https://github.com/haskell/cabal/actions/runs/8392859676/job/22990941034#step:7:156

validate.sh: 379: validate.sh: jq: not found

Also, something I don't understand: Why is it essential to install the -dyn version of the old ghc?

- name: Install extra compiler
run: |
apt-get update
apt-get install -y ghc-${{ matrix.extra-ghc }}-dyn

Is the -dyn version actually run?
- name: "Validate lib-suite-extras --extra-hc ghc-${{ matrix.extra-ghc }}"
env:
EXTRA_GHC: "/opt/ghc/${{ matrix.extra-ghc }}/bin/ghc-${{ matrix.extra-ghc }}"
run: sh validate.sh ${{ env.COMMON_FLAGS }} --lib-only -s lib-suite-extras --extra-hc ${{ env.EXTRA_GHC }}

andreasabel added a commit that referenced this issue Mar 31, 2024
This provides temporary life support to the `validate-old-ghcs` action
until node16 will be finally axed by GHA in May 2024.

Workaround for:
- #9858
@Mikolaj
Copy link
Member

Mikolaj commented Apr 6, 2024

Ouch. I'm afraid the answers to most of your questions, Andreas, are lost in time, like tears in rain.

The "old ghcs" workflow also tests against a few old GHC 8 versions. Are they affected as well?

Could we just use a newer phadej/* container or do all of them have the same problem?

Can we use ghcup or gihub default instead of the containers?

mergify bot pushed a commit that referenced this issue Apr 6, 2024
This provides temporary life support to the `validate-old-ghcs` action
until node16 will be finally axed by GHA in May 2024.

Workaround for:
- #9858

(cherry picked from commit 2da8b2f)
coot pushed a commit that referenced this issue Apr 6, 2024
This provides temporary life support to the `validate-old-ghcs` action
until node16 will be finally axed by GHA in May 2024.

Workaround for:
- #9858
@Mikolaj
Copy link
Member

Mikolaj commented Apr 11, 2024

Copied from https://hackmd.io/c1yOln1fR_K5WiEhhPsUlQ?both:

there seems to be a consensus to drop old ghc (old: not on ghcup) and there's hope the others can relatively easily be handled by switching from containers to ghcup (if they are not already set up like that). Volunteers welcome, but in the worst case, we'll react to the CI outage once it happens.

andreasabel added a commit that referenced this issue Apr 11, 2024
Changes:
- bump GHC_FOR_RELEASE to 9.4.8
- bump action versions
- uniform quoting style
- satisfy actionlint
- fix order: setup Haskell before cache restore (uses setup.haskell-outputs)
- use `--ignore-project` in `cabal install hackage-repo-tool`
- closes #8858: deleted comment
- closes #9858 by dropping container and use ghcup to setup ghcs
@andreasabel
Copy link
Member Author

I give it a shot:

@andreasabel andreasabel self-assigned this Apr 11, 2024
andreasabel added a commit that referenced this issue Apr 12, 2024
Changes:
- bump GHC_FOR_RELEASE to 9.4.8
- bump action versions
- uniform quoting style
- satisfy actionlint
- fix order: setup Haskell before cache restore (uses setup.haskell-outputs)
- use `--ignore-project` in `cabal install hackage-repo-tool`
- use GHC_FOR_RELEASE also in validate-old-ghcs
- closes #8858: deleted comment
- closes #9858 by dropping container and using ghcup to setup ghcs

GHCs that do not install on ubuntu-22.04 with GHCup are dropped, meaning we only keep GHC 8.0.2 and up.
Mikolaj pushed a commit that referenced this issue Apr 15, 2024
Changes:
- bump GHC_FOR_RELEASE to 9.4.8
- bump action versions
- uniform quoting style
- satisfy actionlint
- fix order: setup Haskell before cache restore (uses setup.haskell-outputs)
- use `--ignore-project` in `cabal install hackage-repo-tool`
- use GHC_FOR_RELEASE also in validate-old-ghcs
- closes #8858: deleted comment
- closes #9858 by dropping container and using ghcup to setup ghcs

GHCs that do not install on ubuntu-22.04 with GHCup are dropped, meaning we only keep GHC 8.0.2 and up.
@mergify mergify bot closed this as completed in #9886 Apr 15, 2024
erikd pushed a commit to erikd/cabal that referenced this issue Apr 22, 2024
This provides temporary life support to the `validate-old-ghcs` action
until node16 will be finally axed by GHA in May 2024.

Workaround for:
- haskell#9858
erikd pushed a commit to erikd/cabal that referenced this issue Apr 22, 2024
Changes:
- bump GHC_FOR_RELEASE to 9.4.8
- bump action versions
- uniform quoting style
- satisfy actionlint
- fix order: setup Haskell before cache restore (uses setup.haskell-outputs)
- use `--ignore-project` in `cabal install hackage-repo-tool`
- use GHC_FOR_RELEASE also in validate-old-ghcs
- closes haskell#8858: deleted comment
- closes haskell#9858 by dropping container and using ghcup to setup ghcs

GHCs that do not install on ubuntu-22.04 with GHCup are dropped, meaning we only keep GHC 8.0.2 and up.
mergify bot pushed a commit that referenced this issue Apr 29, 2024
Changes:
- bump GHC_FOR_RELEASE to 9.4.8
- bump action versions
- uniform quoting style
- satisfy actionlint
- fix order: setup Haskell before cache restore (uses setup.haskell-outputs)
- use `--ignore-project` in `cabal install hackage-repo-tool`
- use GHC_FOR_RELEASE also in validate-old-ghcs
- closes #8858: deleted comment
- closes #9858 by dropping container and using ghcup to setup ghcs

GHCs that do not install on ubuntu-22.04 with GHCup are dropped, meaning we only keep GHC 8.0.2 and up.

(cherry picked from commit 29dc53c)

# Conflicts:
#	.github/workflows/validate.yml
geekosaur pushed a commit that referenced this issue Apr 29, 2024
Changes:
- bump GHC_FOR_RELEASE to 9.4.8
- bump action versions
- uniform quoting style
- satisfy actionlint
- fix order: setup Haskell before cache restore (uses setup.haskell-outputs)
- use `--ignore-project` in `cabal install hackage-repo-tool`
- use GHC_FOR_RELEASE also in validate-old-ghcs
- closes #8858: deleted comment
- closes #9858 by dropping container and using ghcup to setup ghcs

GHCs that do not install on ubuntu-22.04 with GHCup are dropped, meaning we only keep GHC 8.0.2 and up.

(cherry picked from commit 29dc53c)

# Conflicts:
#	.github/workflows/validate.yml
Mikolaj added a commit that referenced this issue May 1, 2024
3.12 changelog fixup (#9922)

* Incorporate Brandon’s suggestions

See #9920.

* Incorporate Artem’s suggestions

See #9920.

* Do not repeat yourself

* Fix release notes grammar (#9924)

* Fix release notes grammar

See #9920.

* Fix whitespace

* Support GHC 9.12

(cherry picked from commit da6bdef)

* Fix changelog/readme (backport #9935) (#9936)

* Fix changelog/readme

(cherry picked from commit ea0f464)

* Remove previous release date

---------

Co-authored-by: Francesco Ariis <fa-ml@ariis.it>

* Tell zlib not to use pkg-config in GitLab CI.

(cherry picked from commit 62c74fe)

* Revert "Mark ForeignLibs test as broken with ghc-8.4.4"

This reverts commit a90d44f.

(cherry picked from commit d0a690b)

* CI: drop validation of GHC 7

Changes:
- bump GHC_FOR_RELEASE to 9.4.8
- bump action versions
- uniform quoting style
- satisfy actionlint
- fix order: setup Haskell before cache restore (uses setup.haskell-outputs)
- use `--ignore-project` in `cabal install hackage-repo-tool`
- use GHC_FOR_RELEASE also in validate-old-ghcs
- closes #8858: deleted comment
- closes #9858 by dropping container and using ghcup to setup ghcs

GHCs that do not install on ubuntu-22.04 with GHCup are dropped, meaning we only keep GHC 8.0.2 and up.

(cherry picked from commit 29dc53c)

# Conflicts:
#	.github/workflows/validate.yml

* fix validate.yml conflicts

How is this backport conflicting with _itself_?

* copy an import list from #9551

because `System.Process.Internals` just (like, within the past
hour or so) started exporting a name we are using.

* CI: force MacOS jobs to use Intel runners (macos-13) (backport #9949) (#9956)

* CI: force MacOS jobs to use Intel runners (`macos-13`)

GitHub just switched macos-latest to the ARM chips (now alisasing
`macos-14`), and it brings a bunch of problems.

- First of all, GHC's 8.8 and 8.6 don't exist there.
- ghcup and llvm are unavailable

For the time being, lets stay on the previous version of the runner.

(cherry picked from commit d36e0d0)

* CI: GitHub MacOS runners lost ghcup since 2024-04-27, so use haskell-action/setup instead

(cherry picked from commit 082d952)

* fixup! more compat with new macos runners

(cherry picked from commit 326a1f6)

* !fixup resolve conflicts

* copy an import list from #9551

because `System.Process.Internals` just (like, within the past
hour or so) started exporting a name we are using.

---------

Co-authored-by: Artem Pelenitsyn <a.pelenitsyn@gmail.com>
Co-authored-by: brandon s allbery kf8nh <allbery.b@gmail.com>

* Merge branch '3.12' into mergify/bp/3.12/pr-9886

* Update validate.yml

github nicely decided to ~revert~ the OS X validate fix when I rebased on top of it.

* make validate.yml consistent with master
mergify bot added a commit that referenced this issue May 1, 2024
3.12 changelog fixup (#9922)

* Incorporate Brandon’s suggestions

See #9920.

* Incorporate Artem’s suggestions

See #9920.

* Do not repeat yourself

* Fix release notes grammar (#9924)

* Fix release notes grammar

See #9920.

* Fix whitespace

* Support GHC 9.12

(cherry picked from commit da6bdef)

* Fix changelog/readme (backport #9935) (#9936)

* Fix changelog/readme

(cherry picked from commit ea0f464)

* Remove previous release date

---------

Co-authored-by: Francesco Ariis <fa-ml@ariis.it>

* Tell zlib not to use pkg-config in GitLab CI.

(cherry picked from commit 62c74fe)

* Revert "Mark ForeignLibs test as broken with ghc-8.4.4"

This reverts commit a90d44f.

(cherry picked from commit d0a690b)

* CI: drop validation of GHC 7

Changes:
- bump GHC_FOR_RELEASE to 9.4.8
- bump action versions
- uniform quoting style
- satisfy actionlint
- fix order: setup Haskell before cache restore (uses setup.haskell-outputs)
- use `--ignore-project` in `cabal install hackage-repo-tool`
- use GHC_FOR_RELEASE also in validate-old-ghcs
- closes #8858: deleted comment
- closes #9858 by dropping container and using ghcup to setup ghcs

GHCs that do not install on ubuntu-22.04 with GHCup are dropped, meaning we only keep GHC 8.0.2 and up.

(cherry picked from commit 29dc53c)

# Conflicts:
#	.github/workflows/validate.yml

* fix validate.yml conflicts

How is this backport conflicting with _itself_?

* copy an import list from #9551

because `System.Process.Internals` just (like, within the past
hour or so) started exporting a name we are using.

* CI: force MacOS jobs to use Intel runners (macos-13) (backport #9949) (#9956)

* CI: force MacOS jobs to use Intel runners (`macos-13`)

GitHub just switched macos-latest to the ARM chips (now alisasing
`macos-14`), and it brings a bunch of problems.

- First of all, GHC's 8.8 and 8.6 don't exist there.
- ghcup and llvm are unavailable

For the time being, lets stay on the previous version of the runner.

(cherry picked from commit d36e0d0)

* CI: GitHub MacOS runners lost ghcup since 2024-04-27, so use haskell-action/setup instead

(cherry picked from commit 082d952)

* fixup! more compat with new macos runners

(cherry picked from commit 326a1f6)

* !fixup resolve conflicts

* copy an import list from #9551

because `System.Process.Internals` just (like, within the past
hour or so) started exporting a name we are using.

---------

Co-authored-by: Artem Pelenitsyn <a.pelenitsyn@gmail.com>
Co-authored-by: brandon s allbery kf8nh <allbery.b@gmail.com>

* Merge branch '3.12' into mergify/bp/3.12/pr-9886

* Update validate.yml

github nicely decided to ~revert~ the OS X validate fix when I rebased on top of it.

* make validate.yml consistent with master

Co-authored-by: Mikolaj <281893+Mikolaj@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants