|
22 | 22 | include: |
23 | 23 | - os: ubuntu-latest |
24 | 24 | shell: bash |
25 | | - container: "{\"image\": \"elopeztob/alpine-haskell-stack-echidna:ghc-9.6.5\", \"options\": \"--user 1001\"}" |
| 25 | + container: "{\"image\": \"elopeztob/alpine-haskell-stack-echidna:ghc-9.8.4\", \"options\": \"--user 1001\"}" |
26 | 26 | - os: macos-13 # x86_64 macOS |
27 | 27 | shell: bash |
28 | 28 | - os: windows-latest |
@@ -65,14 +65,24 @@ jobs: |
65 | 65 | id: stack |
66 | 66 | if: matrix.container == '' |
67 | 67 | with: |
68 | | - ghc-version: '9.6.5' |
| 68 | + ghc-version: '9.8.4' |
69 | 69 | enable-stack: true |
70 | 70 | stack-version: 'latest' |
71 | 71 |
|
72 | 72 | - name: Configure Stack environment |
73 | 73 | run: | |
74 | 74 | HOME="${{ (runner.os == 'Windows' && '$(cygpath -m ~)') || '$HOME' }}" |
| 75 | + # This relative path works only if GHC was installed using chocolatey, but not when it was installed with ghcup |
75 | 76 | GHC_MINGW_PATH="${{ (runner.os == 'Windows' && '$(cygpath -m "$GHC_BIN_PATH/../mingw")') || '' }}" |
| 77 | + if [ -n "$GHC_MINGW_PATH" ] && [ ! -d "$GHC_MINGW_PATH" ]; then |
| 78 | + echo "The expected GHC_MINGW_PATH directory $GHC_MINGW_PATH does not exist" |
| 79 | + echo "Trying to locate it via ghcup" |
| 80 | + GHCUP_PATH=$(cygpath -m "C:\ghcup\bin\ghcup.exe") |
| 81 | + GHC_REAL_PATH=$("$GHCUP_PATH" whereis ghc "$GHC_VERSION" | tr -d '\r') |
| 82 | + GHC_MINGW_PATH="$(cygpath -m "$(dirname $GHC_REAL_PATH)"/../mingw)" |
| 83 | + fi |
| 84 | + echo "GHC_MINGW_PATH=$GHC_MINGW_PATH" >> "$GITHUB_ENV" |
| 85 | +
|
76 | 86 | mkdir -p "$STACK_ROOT" |
77 | 87 | { echo "extra-include-dirs:"; |
78 | 88 | echo "- $HOME/.local/include"; |
@@ -100,12 +110,13 @@ jobs: |
100 | 110 | REPLACE_LINKER_WIN: ${{ (runner.os == 'Windows' && 'true') || 'false' }} |
101 | 111 | SKIP_MSYS: ${{ (runner.os == 'Windows' && 'true') || 'false' }} |
102 | 112 | GHC_BIN_PATH: ${{ steps.stack.outputs.ghc-path }} |
| 113 | + GHC_VERSION: ${{ steps.stack.outputs.ghc-version }} |
103 | 114 |
|
104 | 115 | - name: Configure Haskell paths (Windows) |
105 | 116 | if: runner.os == 'Windows' |
106 | 117 | run: | |
107 | 118 | HASKELL_PATHS="$(cygpath -u "$GHC_PATH"):$(cygpath -u "$CABAL_PATH"):$(cygpath -u "$STACK_PATH")" |
108 | | - HASKELL_MINGW_PATH="$(cygpath -u "$GHC_PATH/../mingw")" |
| 119 | + HASKELL_MINGW_PATH="$(cygpath -u "$GHC_MINGW_PATH")" |
109 | 120 | SYSTEM_MINGW_PATH="$(cygpath -m "$MSYS2_LOCATION/$MSYSTEM")" |
110 | 121 | echo "HASKELL_PATHS=$HASKELL_PATHS" >> "$GITHUB_ENV" |
111 | 122 | echo "HASKELL_MINGW_PATH=$HASKELL_MINGW_PATH" >> "$GITHUB_ENV" |
|
0 commit comments