@@ -66,65 +66,50 @@ jobs:
6666 - name : run official-images tests
6767 run : ./official-images/test/run.sh haskell:${{ matrix.ghc }}-${{ matrix.deb }}
6868
69- emulated-architecture -tests :
69+ arm64 -tests :
7070 timeout-minutes : 60
71- runs-on : ubuntu-24.04
72- name : ${{ matrix.arch }} -${{ matrix.ghc }}-${{ matrix.deb }}
71+ runs-on : ubuntu-24.04-arm
72+ name : arm64 -${{ matrix.ghc }}-${{ matrix.deb }}
7373 strategy :
7474 fail-fast : false
7575 matrix :
7676 ghc : ['9.6.7', '9.8.4', '9.10.2', '9.12.2']
77- # uraimo/run-on-arch-action does not support debian slim variants
77+ # native arm runner; still avoid slim variants here
7878 deb : ['bullseye']
79- arch : ['aarch64']
8079 include :
8180 # bookworm (debian 12)
8281 - ghc : ' 9.12.2'
8382 ghc_minor : ' 9.12'
8483 deb : ' bookworm'
85- arch : ' aarch64'
86- docker_platform : arm64
8784 # bullseye (debian 11)
8885 - ghc : ' 9.10.2'
8986 ghc_minor : ' 9.10'
90- docker_platform : arm64
9187 - ghc : ' 9.8.4'
9288 ghc_minor : ' 9.8'
93- docker_platform : arm64
9489 - ghc : ' 9.6.7'
9590 ghc_minor : ' 9.6'
96- docker_platform : arm64
9791 exclude :
9892 - ghc : ' 9.12.2'
9993 deb : ' bullseye'
10094
10195 steps :
10296 - uses : actions/checkout@v4
103- - name : docker build [ ${{ matrix.arch }} ${{ matrix.ghc }}]
104- 97+ - name : docker build and test [arm64 ${{ matrix.ghc }}]
98+ run : |
99+ docker build --pull --progress=plain \
100+ -t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \
101+ ${{ matrix.ghc_minor }}/${{ matrix.deb }} \
102+ --build-arg "BUILDKIT_DOCKERFILE_CHECK=skip=SecretsUsedInArgOrEnv;error=true"
103+ echo 'testing..'
104+ docker run \
105+ -t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \
106+ bash -c "cabal update && cabal install --lib primitive"
107+ docker run \
108+ -t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \
109+ bash -c "echo | ghci"
110+ - uses : actions/checkout@v4
105111 with :
106- arch : ${{ matrix.arch }}
107- distro : ${{ matrix.deb }}
108- githubToken : ${{ github.token }}
109- install : |
110- apt-get update
111- apt-get install -y curl
112- curl -fsSL https://get.docker.com | sh
113- run : |
114- docker build --pull --progress=plain \
115- --platform "linux/${{ matrix.docker_platform }}" \
116- -t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \
117- ${{ matrix.ghc_minor }}/${{ matrix.deb }} \
118- --build-arg "BUILDKIT_DOCKERFILE_CHECK=skip=SecretsUsedInArgOrEnv;error=true"
119- echo 'testing..'
120- docker run \
121- --platform "linux/${{ matrix.docker_platform }}" \
122- -t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \
123- bash -c "cabal update && cabal install --lib primitive"
124- docker run \
125- --platform "linux/${{ matrix.docker_platform }}" \
126- -t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \
127- bash -c "echo | ghci"
128-
129- # Running the official tests does not work as we need to hardcode the plaform due to the emulated nature.
130- # This solution is fairly hacky, but gets us most of benefit of the official tests.
112+ repository : docker-library/official-images
113+ path : official-images
114+ - name : run official-images tests
115+ run : ./official-images/test/run.sh haskell:${{ matrix.ghc }}-${{ matrix.deb }}
0 commit comments