11
11
jobs :
12
12
build :
13
13
runs-on : ${{ matrix.os }}
14
- container : ${{ (matrix .os == 'ubuntu-18.04 ' && 'alpine:3.12') || '' }}
14
+ container : ${{ (runner .os == 'Linux ' && 'alpine:3.12') || '' }}
15
15
defaults :
16
16
run :
17
- shell : ${{ (matrix .os == 'windows-latest ' && 'bash') || 'sh' }}
17
+ shell : ${{ (runner .os == 'Windows ' && 'bash') || 'sh' }}
18
18
strategy :
19
19
fail-fast : false
20
20
matrix :
35
35
36
36
steps :
37
37
- name : Install system dependencies
38
- if : matrix .os == 'ubuntu-18.04 '
38
+ if : runner .os == 'Linux '
39
39
run : |
40
40
apk add --no-cache curl gcc g++ gmp-dev ncurses-dev libffi-dev make xz gzip tar perl git bash sudo binutils-gold
41
41
apk add --no-cache zlib zlib-dev zlib-static gmp gmp-dev ncurses-static
@@ -50,25 +50,26 @@ jobs:
50
50
with :
51
51
ghc : ${{ matrix.ghc }}
52
52
os : ${{ runner.os }}
53
+ cache-prefix : ${{ github.workflow }}
53
54
54
55
- name : (Windows) Platform specifics
55
- if : matrix .os == 'windows-latest '
56
+ if : runner .os == 'Windows '
56
57
env :
57
58
GHC_VER : ${{ matrix.ghc }}
58
59
run : |
59
60
echo "EXE_EXT=.exe" >> $GITHUB_ENV
60
61
echo "GHC_VERSION=$GHC_VER" >> $GITHUB_ENV
61
62
62
63
- name : (Linux) Platform specifics
63
- if : matrix .os == 'ubuntu-18.04 '
64
+ if : runner .os == 'Linux '
64
65
env :
65
66
GHC_VER : ${{ matrix.ghc }}
66
67
run : |
67
68
echo "LINUX_CABAL_ARGS=--enable-executable-static --ghc-options=-split-sections" >> $GITHUB_ENV
68
69
echo "GHC_VERSION=$GHC_VER" >> $GITHUB_ENV
69
70
70
71
- name : (macOS) Platform specifics
71
- if : matrix .os == 'macOS-latest '
72
+ if : runner .os == 'macOS'
72
73
env :
73
74
GHC_VER : ${{ matrix.ghc }}
74
75
run : |
77
78
- name : Build the server
78
79
# Try building it twice in case of flakey builds on Windows
79
80
run : |
80
- echo "Path: $PATH"
81
81
cabal build exe:hls -O2 $LINUX_CABAL_ARGS || cabal build exe:hls -O2 $LINUX_CABAL_ARGS -j1
82
82
83
83
- name : Compress server binary
@@ -106,13 +106,13 @@ jobs:
106
106
with :
107
107
upload_url : ${{ github.event.release.upload_url }}
108
108
asset_path : ${{ steps.compress_server_binary.outputs.path }}
109
- asset_name : haskell-language-server-${{ runner.OS }}-${{ env.GHC_VERSION }}${{env.EXE_EXT}}.${{ steps.compress_server_binary.outputs.extension }}
109
+ asset_name : haskell-language-server-${{ runner.os }}-${{ env.GHC_VERSION }}${{env.EXE_EXT}}.${{ steps.compress_server_binary.outputs.extension }}
110
110
asset_content_type : ${{ steps.compress_server_binary.outputs.content_type }}
111
111
112
112
- name : Upload server to workflow artifacts
113
113
uses : actions/upload-artifact@v2
114
114
with :
115
- name : haskell-language-server-${{ runner.OS }}-${{ matrix.ghc }}${{env.EXE_EXT}}.${{ steps.compress_server_binary.outputs.extension }}
115
+ name : haskell-language-server-${{ runner.os }}-${{ matrix.ghc }}${{env.EXE_EXT}}.${{ steps.compress_server_binary.outputs.extension }}
116
116
path : ${{ steps.compress_server_binary.outputs.path }}
117
117
118
118
- name : (GHC 8.10) Build the wrapper
@@ -146,14 +146,14 @@ jobs:
146
146
with :
147
147
upload_url : ${{ github.event.release.upload_url }}
148
148
asset_path : ${{ steps.compress_wrapper_binary.outputs.path }}
149
- asset_name : haskell-language-server-wrapper-${{ runner.OS }}${{env.EXE_EXT}}.${{ steps.compress_wrapper_binary.outputs.extension }}
149
+ asset_name : haskell-language-server-wrapper-${{ runner.os }}${{env.EXE_EXT}}.${{ steps.compress_wrapper_binary.outputs.extension }}
150
150
asset_content_type : ${{ steps.compress_wrapper_binary.outputs.content_type}}
151
151
152
152
- name : (GHC 8.10) Upload wrapper to workflow artifacts
153
153
uses : actions/upload-artifact@v2
154
154
if : matrix.ghc == '8.10.7'
155
155
with :
156
- name : haskell-language-server-wrapper-${{ runner.OS }}${{env.EXE_EXT}}.${{ steps.compress_wrapper_binary.outputs.extension }}
156
+ name : haskell-language-server-wrapper-${{ runner.os }}${{env.EXE_EXT}}.${{ steps.compress_wrapper_binary.outputs.extension }}
157
157
path : ${{ steps.compress_wrapper_binary.outputs.path }}
158
158
159
159
# generates a custom tarball with sources, used by `ghcup compile hls`
@@ -196,22 +196,22 @@ jobs:
196
196
runs-on : ubuntu-18.04
197
197
strategy :
198
198
matrix :
199
- os : [ "Linux"
200
- , "macOS"
201
- , "Windows"
202
- ]
199
+ target- os : [ "Linux"
200
+ , "macOS"
201
+ , "Windows"
202
+ ]
203
203
steps :
204
204
- uses : actions/download-artifact@v2
205
205
206
206
- name : Generate tarball with all binaries
207
207
run : |
208
208
# move the binaries for the specific platform into bin/
209
209
mkdir bin
210
- mv haskell-language-server-${{ matrix.os }}-*/* bin
211
- mv haskell-language-server-wrapper-${{ matrix.os }}.*/* bin
210
+ mv haskell-language-server-${{ matrix.target- os }}-*/* bin
211
+ mv haskell-language-server-wrapper-${{ matrix.target- os }}.*/* bin
212
212
# decompress them
213
213
cd bin
214
- if [[ "${{ matrix.os }}" == "Windows" ]]; then
214
+ if [[ "${{ matrix.target- os }}" == "Windows" ]]; then
215
215
7z x "*.zip"
216
216
rm *.zip
217
217
else
@@ -227,13 +227,13 @@ jobs:
227
227
with :
228
228
upload_url : ${{ github.event.release.upload_url }}
229
229
asset_path : bin/haskell-language-server.tar.gz
230
- asset_name : haskell-language-server-${{ matrix.os }}-${{ github.event.release.tag_name }}.tar.gz
230
+ asset_name : haskell-language-server-${{ matrix.target- os }}-${{ github.event.release.tag_name }}.tar.gz
231
231
asset_content_type : application/gzip
232
232
233
233
- name : Upload binaries tarball to workflow artifacts
234
234
uses : actions/upload-artifact@v2
235
235
with :
236
- name : haskell-language-server-${{ matrix.os }}-${{ github.event.release.tag_name }}.tar.gz
236
+ name : haskell-language-server-${{ matrix.target- os }}-${{ github.event.release.tag_name }}.tar.gz
237
237
path : bin/haskell-language-server.tar.gz
238
238
239
239
sha256sum :
0 commit comments