1111 name : Build
1212 runs-on : ubuntu-22.04
1313
14+ env :
15+ CI_CACHE_KEY : ${{ runner.os }}-${{ runner.arch }}-${{ env.GHC_WASM_META_COMMIT_HASH }}-flavor-${{ env.GHC_WASM_META_FLAVOUR }}
16+
1417 steps :
1518 - uses : actions/checkout@v4
1619 with :
@@ -21,10 +24,19 @@ jobs:
2124 id : ghc-wasm-cache-restore
2225 uses : actions/cache/restore@v4
2326 with :
24- path : ~/.ghc-wasm
25- key : ' ghc-wasm-${{ runner.os }}-${{ runner.arch }}-${{ env.GHC_WASM_META_COMMIT_HASH }}-flavor-${{ env.GHC_WASM_META_FLAVOUR }}'
27+ path : |
28+ ~/.cabal
29+ ~/.ghc-wasm
30+ key : ghc-wasm-${{ env.CI_CACHE_KEY }}
31+
32+ - name : Try to restore cached dist-newstyle
33+ id : dist-newstyle-cache-restore
34+ uses : actions/cache/restore@v4
35+ with :
36+ path : dist-newstyle
37+ key : dist-newstyle-${{ env.CI_CACHE_KEY }}-${{ hashFiles('dist-newstyle/**') }}
2638 restore-keys : |
27- 'ghc-wasm -${{ runner.os }}-${{ runner.arch }}-${{ env.GHC_WASM_META_COMMIT_HASH }}-flavor-${{ env.GHC_WASM_META_FLAVOUR }}-'
39+ dist-newstyle -${{ env.CI_CACHE_KEY }}-
2840
2941 - name : Clone and setup ghc-wasm-meta
3042 id : ghc-wasm-setup
@@ -57,15 +69,24 @@ jobs:
5769
5870 - name : ' Build dep: lsp-types'
5971 uses : nick-fields/retry@v3
72+ id : build-dep-lsp-types
6073 with :
6174 timeout_minutes : 10
6275 max_attempts : 2
6376 command : cd als && wasm32-wasi-cabal build lib:lsp-types
6477
6578 - name : ' Build dep: agda'
79+ id : build-dep-agda
6680 working-directory : ' ./als'
6781 run : wasm32-wasi-cabal build lib:agda
6882
83+ - name : Cache dist-newstyle
84+ uses : actions/cache/save@v4
85+ if : steps.build-dep-lsp-types.outcome == 'success' && steps.build-dep-agda.outcome == 'success'
86+ with :
87+ path : dist-newstyle
88+ key : dist-newstyle-${{ env.CI_CACHE_KEY }}-${{ hashFiles('dist-newstyle/**') }}
89+
6990 - name : Build every dependency else
7091 working-directory : ' ./als'
7192 run : |
@@ -82,14 +103,16 @@ jobs:
82103 cp $(wasm32-wasi-cabal list-bin als) ~/out
83104
84105 - name : Clean up cabal logs
85- run : rm -rf ~/.ghc-wasm/.cabal/logs
106+ run : rm -rf ~/.cabal/logs ~/. ghc-wasm/.cabal/logs
86107
87108 - name : Cache ghc-wasm-meta
88109 uses : actions/cache/save@v4
89110 if : always()
90111 with :
91- path : ~/.ghc-wasm
92- key : ${{ steps.ghc-wasm-cache-restore.outputs.cache-primary-key }}-${{ hashFiles('.ghc-wasm/**') }}
112+ path :
113+ ~/.cabal
114+ ~/.ghc-wasm
115+ key : ${{ steps.ghc-wasm-cache-restore.outputs.cache-primary-key }}
93116
94117 - name : Upload artifact
95118 uses : actions/upload-artifact@v4
0 commit comments