@@ -24,26 +24,26 @@ jobs:
2424 ormolu :
2525 runs-on : ubuntu-latest
2626 steps :
27- - uses : actions/checkout@v3
28- - uses : haskell-actions/run-ormolu@v12
27+ - uses : actions/checkout@v4
28+ - uses : haskell-actions/run-ormolu@v15
2929 with :
3030 version : " 0.5.0.1"
3131
3232 hlint :
3333 runs-on : ubuntu-latest
3434 steps :
35- - uses : actions/checkout@v3
35+ - uses : actions/checkout@v4
3636
37- - name : ' Set up HLint'
38- uses : haskell/actions/hlint-setup@v2
39- with :
40- version : ' 3.5'
37+ - name : " Set up HLint"
38+ uses : haskell/actions/hlint-setup@v2
39+ with :
40+ version : " 3.5"
4141
42- - name : ' Run HLint'
43- uses : haskell/actions/hlint-run@v2
44- with :
45- path : ' ["src/", "test/", "examples"]'
46- fail-on : warning
42+ - name : " Run HLint"
43+ uses : haskell/actions/hlint-run@v2
44+ with :
45+ path : ' ["src/", "test/", "examples"]'
46+ fail-on : warning
4747
4848 cabal :
4949 name : ${{ matrix.os }} / ghc-${{ matrix.ghc }} / cabal-${{ matrix.cabal }}
@@ -52,96 +52,95 @@ jobs:
5252 strategy :
5353 matrix :
5454 os : [ubuntu-latest, windows-latest] # Removed macos-latest due to cert issues.
55- cabal : ["3.6", "3. 8", "latest"]
55+ cabal : ["3.8", "latest"]
5656 ghc :
57+ - " 9.6"
5758 - " 9.4"
5859 - " 9.2"
5960 - " 9.0"
6061 - " 8.10"
61- - " 8.8"
62- - " 8.6"
63- exclude :
64- - os : windows-latest
65- ghc : " 9.4"
66- cabal : " 3.6"
62+ # exclude:
63+ # - os: windows-latest
64+ # ghc: "9.4"
65+ # cabal: "3.6"
6766
6867 steps :
69- - uses : actions/checkout@v3
70- if : github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'
71-
72- - uses : haskell/actions/setup@v2
73- id : setup-haskell-cabal
74- name : Setup Haskell
75- with :
76- ghc-version : ${{ matrix.ghc }}
77- cabal-version : ${{ matrix.cabal }}
78-
79- - name : Configure
80- run : |
81- cabal configure --enable-tests --enable-benchmarks --test-show-details=direct -fexamples -fdev -flive-test
82-
83- - name : Freeze
84- run : |
85- cabal freeze
86-
87- - uses : actions/cache@v3
88- name : Cache ~/.cabal/packages, ~/.cabal/store and dist-newstyle
89- with :
90- path : |
91- ~/.cabal/packages
92- ~/.cabal/store
93- dist-newstyle
94- key : ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal', '**/cabal.project', '**/cabal.project.freeze') }}
95- restore-keys : ${{ runner.os }}-${{ matrix.ghc }}-
96-
97- - name : Install dependencies
98- run : |
99- cabal build --only-dependencies
100-
101- - name : Build
102- run : |
103- cabal build
104-
105- - name : Setup MinIO for testing (Linux)
106- if : matrix.os == 'ubuntu-latest'
107- run : |
108- mkdir -p /tmp/minio /tmp/minio-config/certs
109- cp test/cert/* /tmp/minio-config/certs/
110- (cd /tmp/minio; wget -q https://dl.min.io/server/minio/release/linux-amd64/minio; chmod +x ./minio)
111- sudo cp /tmp/minio-config/certs/public.crt /usr/local/share/ca-certificates/
112- sudo update-ca-certificates
113-
114- - name : Setup MinIO for testing (MacOS)
115- if : matrix.os == 'macos-latest'
116- run : |
117- mkdir -p /tmp/minio /tmp/minio-config/certs
118- cp test/cert/* /tmp/minio-config/certs/
119- (cd /tmp/minio; wget -q https://dl.min.io/server/minio/release/darwin-amd64/minio; chmod +x ./minio)
120- sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /tmp/minio-config/certs/public.crt
121-
122- - name : Setup MinIO for testing (Windows)
123- if : matrix.os == 'windows-latest'
124- run : |
125- New-Item -ItemType Directory -Path "$env:temp/minio-config/certs/"
126- Copy-Item -Path test\cert\* -Destination "$env:temp/minio-config/certs/"
127- Invoke-WebRequest -Uri https://dl.minio.io/server/minio/release/windows-amd64/minio.exe -OutFile $HOME/minio.exe
128- Import-Certificate -FilePath "$env:temp/minio-config/certs/public.crt" -CertStoreLocation Cert:\LocalMachine\Root
129-
130- - name : Test (Non-Windows)
131- if : matrix.os != 'windows-latest'
132- run : |
133- /tmp/minio/minio server --quiet --certs-dir /tmp/minio-config/certs data1 data2 data3 data4 2>&1 > minio.log &
134- ghc --version
135- cabal --version
136- cabal test
137-
138- - name : Test (Windows)
139- if : matrix.os == 'windows-latest'
140- run : |
141- Start-Process -NoNewWindow -FilePath "$HOME/minio.exe" -ArgumentList "--certs-dir", "$env:temp/minio-config/certs", "server", "$env:temp/data1", "$env:temp/data2", "$env:temp/data3", "$env:temp/data4"
142- ghc --version
143- cabal --version
144- cabal test
68+ - uses : actions/checkout@v4
69+ if : github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'
70+
71+ - uses : haskell/actions/setup@v2
72+ id : setup-haskell-cabal
73+ name : Setup Haskell
74+ with :
75+ ghc-version : ${{ matrix.ghc }}
76+ cabal-version : ${{ matrix.cabal }}
77+
78+ - name : Configure
79+ run : |
80+ cabal configure --enable-tests --enable-benchmarks --test-show-details=direct -fexamples -fdev -flive-test
81+
82+ - name : Freeze
83+ run : |
84+ cabal freeze
85+
86+ - uses : actions/cache@v3
87+ name : Cache ~/.cabal/packages, ~/.cabal/store and dist-newstyle
88+ with :
89+ path : |
90+ ~/.cabal/packages
91+ ~/.cabal/store
92+ dist-newstyle
93+ key : ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal', '**/cabal.project', '**/cabal.project.freeze') }}
94+ restore-keys : ${{ runner.os }}-${{ matrix.ghc }}-
95+
96+ - name : Install dependencies
97+ run : |
98+ cabal build --only-dependencies
99+
100+ - name : Build
101+ run : |
102+ cabal build
103+
104+ - name : Setup MinIO for testing (Linux)
105+ if : matrix.os == 'ubuntu-latest'
106+ run : |
107+ mkdir -p /tmp/minio /tmp/minio-config/certs
108+ cp test/cert/* /tmp/minio-config/certs/
109+ (cd /tmp/minio; wget -q https://dl.min.io/server/minio/release/linux-amd64/minio; chmod +x ./minio)
110+ sudo cp /tmp/minio-config/certs/public.crt /usr/local/share/ca-certificates/
111+ sudo update-ca-certificates
112+
113+ - name : Setup MinIO for testing (MacOS)
114+ if : matrix.os == 'macos-latest'
115+ run : |
116+ mkdir -p /tmp/minio /tmp/minio-config/certs
117+ cp test/cert/* /tmp/minio-config/certs/
118+ (cd /tmp/minio; wget -q https://dl.min.io/server/minio/release/darwin-amd64/minio; chmod +x ./minio)
119+ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /tmp/minio-config/certs/public.crt
120+
121+ - name : Setup MinIO for testing (Windows)
122+ if : matrix.os == 'windows-latest'
123+ run : |
124+ New-Item -ItemType Directory -Path "$env:temp/minio-config/certs/"
125+ Copy-Item -Path test\cert\* -Destination "$env:temp/minio-config/certs/"
126+ Invoke-WebRequest -Uri https://dl.minio.io/server/minio/release/windows-amd64/minio.exe -OutFile $HOME/minio.exe
127+ Import-Certificate -FilePath "$env:temp/minio-config/certs/public.crt" -CertStoreLocation Cert:\LocalMachine\Root
128+
129+ - name : Test (Non-Windows)
130+ if : matrix.os != 'windows-latest'
131+ run : |
132+ /tmp/minio/minio server --quiet --certs-dir /tmp/minio-config/certs data1 data2 data3 data4 2>&1 > minio.log &
133+ ghc --version
134+ cabal --version
135+ cabal test
136+
137+ - name : Test (Windows)
138+ if : matrix.os == 'windows-latest'
139+ run : |
140+ Start-Process -NoNewWindow -FilePath "$HOME/minio.exe" -ArgumentList "--certs-dir", "$env:temp/minio-config/certs", "server", "$env:temp/data1", "$env:temp/data2", "$env:temp/data3", "$env:temp/data4"
141+ ghc --version
142+ cabal --version
143+ cabal test
145144
146145 stack :
147146 name : stack / ghc ${{ matrix.ghc }}
@@ -151,80 +150,83 @@ jobs:
151150 ghc :
152151 - " 8.10.7"
153152 - " 9.0.2"
154- - " 9.2.4"
153+ - " 9.2.8"
154+ - " 9.4.8"
155+ - " 9.6.5"
155156 os : [ubuntu-latest]
156157
157158 steps :
158- - uses : actions/checkout@v3
159- if : github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'
160-
161- - uses : haskell/actions/setup@v2
162- name : Setup Haskell Stack
163- with :
164- enable-stack : true
165- ghc-version : ${{ matrix.ghc }}
166- stack-version : ' latest'
167-
168- - uses : actions/cache@v3
169- name : Cache ~/.stack
170- with :
171- path : ~/.stack
172- key : ${{ runner.os }}-stack-global-${{ hashFiles('stack.yaml') }}-${{ hashFiles('package.yaml') }}
173- restore-keys : |
174- ${{ runner.os }}-stack-global-
175- - uses : actions/cache@v3
176- name : Cache .stack-work
177- with :
178- path : .stack-work
179- key : ${{ runner.os }}-stack-work-${{ hashFiles('stack.yaml') }}-${{ hashFiles('package.yaml') }}-${{ hashFiles('**/*.hs') }}
180- restore-keys : |
181- ${{ runner.os }}-stack-work-
182-
183- - name : Install dependencies
184- run : |
185- stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks --only-dependencies
186-
187- - name : Build
188- run : |
189- stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks --flag minio-hs:examples --flag minio-hs:live-test --flag minio-hs:dev
190-
191- - name : Setup MinIO for testing (Linux)
192- if : matrix.os == 'ubuntu-latest'
193- run : |
194- mkdir -p /tmp/minio /tmp/minio-config/certs
195- cp test/cert/* /tmp/minio-config/certs/
196- (cd /tmp/minio; wget -q https://dl.min.io/server/minio/release/linux-amd64/minio; chmod +x ./minio)
197- sudo cp /tmp/minio-config/certs/public.crt /usr/local/share/ca-certificates/
198- sudo update-ca-certificates
199-
200- - name : Setup MinIO for testing (MacOS)
201- if : matrix.os == 'macos-latest'
202- run : |
203- mkdir -p /tmp/minio /tmp/minio-config/certs
204- cp test/cert/* /tmp/minio-config/certs/
205- (cd /tmp/minio; wget -q https://dl.min.io/server/minio/release/darwin-amd64/minio; chmod +x ./minio)
206- sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /tmp/minio-config/certs/public.crt
207-
208- - name : Setup MinIO for testing (Windows)
209- if : matrix.os == 'windows-latest'
210- run : |
211- New-Item -ItemType Directory -Path "$env:temp/minio-config/certs/"
212- Copy-Item -Path test\cert\* -Destination "$env:temp/minio-config/certs/"
213- Invoke-WebRequest -Uri https://dl.minio.io/server/minio/release/windows-amd64/minio.exe -OutFile $HOME/minio.exe
214- Import-Certificate -FilePath "$env:temp/minio-config/certs/public.crt" -CertStoreLocation Cert:\LocalMachine\Root
215-
216- - name : Test (Non-Windows)
217- if : matrix.os != 'windows-latest'
218- run : |
219- /tmp/minio/minio server --quiet --certs-dir /tmp/minio-config/certs data1 data2 data3 data4 2>&1 > minio.log &
220- ghc --version
221- stack --version
222- stack test --system-ghc --flag minio-hs:live-test --flag minio-hs:dev
223-
224- - name : Test (Windows)
225- if : matrix.os == 'windows-latest'
226- run : |
227- Start-Process -NoNewWindow -FilePath "$HOME/minio.exe" -ArgumentList "--certs-dir", "$env:temp/minio-config/certs", "server", "$env:temp/data1", "$env:temp/data2", "$env:temp/data3", "$env:temp/data4"
228- ghc --version
229- cabal --version
230- stack test --system-ghc --flag minio-hs:live-test --flag minio-hs:dev
159+ - uses : actions/checkout@v4
160+ if : github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'
161+
162+ - name : Install Haskell Stack
163+ run : |
164+ if ! which stack
165+ then
166+ curl -sSL https://get.haskellstack.org/ | sh
167+ fi
168+
169+ - uses : actions/cache@v3
170+ name : Cache ~/.stack
171+ with :
172+ path : ~/.stack
173+ key : ${{ runner.os }}-stack-global-${{ hashFiles('stack.yaml') }}-${{ hashFiles('package.yaml') }}
174+ restore-keys : |
175+ ${{ runner.os }}-stack-global-
176+ - uses : actions/cache@v3
177+ name : Cache .stack-work
178+ with :
179+ path : .stack-work
180+ key : ${{ runner.os }}-stack-work-${{ hashFiles('stack.yaml') }}-${{ hashFiles('package.yaml') }}-${{ hashFiles('**/*.hs') }}
181+ restore-keys : |
182+ ${{ runner.os }}-stack-work-
183+
184+ - name : Install dependencies
185+ run : |
186+ stack --version
187+ stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks --only-dependencies
188+
189+ - name : Build
190+ run : |
191+ stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks --flag minio-hs:examples --flag minio-hs:live-test --flag minio-hs:dev
192+
193+ - name : Setup MinIO for testing (Linux)
194+ if : matrix.os == 'ubuntu-latest'
195+ run : |
196+ mkdir -p /tmp/minio /tmp/minio-config/certs
197+ cp test/cert/* /tmp/minio-config/certs/
198+ (cd /tmp/minio; wget -q https://dl.min.io/server/minio/release/linux-amd64/minio; chmod +x ./minio)
199+ sudo cp /tmp/minio-config/certs/public.crt /usr/local/share/ca-certificates/
200+ sudo update-ca-certificates
201+
202+ - name : Setup MinIO for testing (MacOS)
203+ if : matrix.os == 'macos-latest'
204+ run : |
205+ mkdir -p /tmp/minio /tmp/minio-config/certs
206+ cp test/cert/* /tmp/minio-config/certs/
207+ (cd /tmp/minio; wget -q https://dl.min.io/server/minio/release/darwin-amd64/minio; chmod +x ./minio)
208+ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /tmp/minio-config/certs/public.crt
209+
210+ - name : Setup MinIO for testing (Windows)
211+ if : matrix.os == 'windows-latest'
212+ run : |
213+ New-Item -ItemType Directory -Path "$env:temp/minio-config/certs/"
214+ Copy-Item -Path test\cert\* -Destination "$env:temp/minio-config/certs/"
215+ Invoke-WebRequest -Uri https://dl.minio.io/server/minio/release/windows-amd64/minio.exe -OutFile $HOME/minio.exe
216+ Import-Certificate -FilePath "$env:temp/minio-config/certs/public.crt" -CertStoreLocation Cert:\LocalMachine\Root
217+
218+ - name : Test (Non-Windows)
219+ if : matrix.os != 'windows-latest'
220+ run : |
221+ /tmp/minio/minio server --quiet --certs-dir /tmp/minio-config/certs data1 data2 data3 data4 2>&1 > minio.log &
222+ ghc --version
223+ stack --version
224+ stack test --system-ghc --flag minio-hs:live-test --flag minio-hs:dev
225+
226+ - name : Test (Windows)
227+ if : matrix.os == 'windows-latest'
228+ run : |
229+ Start-Process -NoNewWindow -FilePath "$HOME/minio.exe" -ArgumentList "--certs-dir", "$env:temp/minio-config/certs", "server", "$env:temp/data1", "$env:temp/data2", "$env:temp/data3", "$env:temp/data4"
230+ ghc --version
231+ cabal --version
232+ stack test --system-ghc --flag minio-hs:live-test --flag minio-hs:dev
0 commit comments