diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f1dbfb2..ab0e899 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,9 +20,21 @@ jobs: - name: install-nix uses: DeterminateSystems/nix-installer-action@v16 + - name: gen-plan-json + id: gen-plan-json + run: | + nix develop --command bash -c 'cd frontend && wasm32-wasi-cabal update && wasm32-wasi-cabal build ghc-wasm-miso-examples --dry-run && echo WASM32_WASI_GHC=$(which wasm32-wasi-ghc) >> $GITHUB_OUTPUT' + + - name: cabal-cache-native + uses: andreabedini/cabal-cache-native + with: + store-path: /home/runner/.ghc-wasm/.cabal/store + cache-key-prefix: nix + ghc: ${{ steps.gen-plan-json.outputs.WASM32_WASI_GHC }} + - name: build-frontend run: | - nix develop --command bash -c "cd frontend && wasm32-wasi-cabal update && exec ./build.sh --low-memory-unused --converge --gufa --flatten --rereloop -Oz" + nix develop --command bash -c "cd frontend && exec ./build.sh --low-memory-unused --converge --gufa --flatten --rereloop -Oz" ghcup-build: name: ghcup-build @@ -52,6 +64,21 @@ jobs: - uses: dw-labs-org/dart-sass-gha@v1 + - name: gen-plan-json + run: | + cabal \ + --with-compiler=wasm32-wasi-ghc \ + --with-hc-pkg=wasm32-wasi-ghc-pkg \ + --with-hsc2hs=wasm32-wasi-hsc2hs \ + build ghc-wasm-miso-examples --dry-run + + - name: cabal-cache-native + uses: andreabedini/cabal-cache-native + with: + store-path: /home/runner/.local/state/cabal/store + cache-key-prefix: ghcup + ghc: wasm32-wasi-ghc + - name: build-frontend run: | cd frontend @@ -85,6 +112,17 @@ jobs: - uses: dw-labs-org/dart-sass-gha@v1 + - name: gen-plan-json + run: | + wasm32-wasi-cabal build ghc-wasm-miso-examples --dry-run + + - name: cabal-cache-native + uses: andreabedini/cabal-cache-native + with: + store-path: /home/runner/.ghc-wasm/.cabal/store + cache-key-prefix: vanilla + ghc: wasm32-wasi-ghc + - name: build-frontend run: | cd frontend