diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index af10ff6..b269ef3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,9 +20,23 @@ 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 + uses: actions/cache@v4 + with: + key: nix-${{ hashFiles('dist-newstyle/cache/plan.json') }} + restore-keys: nix- + path: | + ~/.ghc-wasm/.cabal/store + dist-newstyle + - 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 @@ -56,7 +70,7 @@ jobs: ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/develop/ghcup-cross-0.0.8.yaml ghcup install ghc --set wasm32-wasi-9.10.1.20241021 -- $CONFIGURE_ARGS - - name: build-frontend + - name: gen-plan-json run: | cd frontend cabal \ @@ -64,6 +78,24 @@ jobs: --with-hc-pkg=wasm32-wasi-ghc-pkg \ --with-hsc2hs=wasm32-wasi-hsc2hs \ update + 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 + uses: actions/cache@v4 + with: + key: ghcup-${{ hashFiles('dist-newstyle/cache/plan.json') }} + restore-keys: ghcup- + path: | + ~/.local/state/cabal/store + dist-newstyle + + - name: build-frontend + run: | + cd frontend ./build.sh --low-memory-unused --converge --gufa --flatten --rereloop -Oz non-nix-build: @@ -93,6 +125,20 @@ jobs: env: FLAVOUR: '9.10' + - name: gen-plan-json + run: | + cd frontend + wasm32-wasi-cabal build ghc-wasm-miso-examples --dry-run + + - name: cabal-cache + uses: actions/cache@v4 + with: + key: vanilla-${{ hashFiles('dist-newstyle/cache/plan.json') }} + restore-keys: vanilla- + path: | + ~/.ghc-wasm/.cabal/store + dist-newstyle + - name: build-frontend run: | cd frontend