Make fetch
an Effect
#1751
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Miso CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
env: | |
ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
if: github.ref != 'refs/heads/master' | |
steps: | |
- uses: DeterminateSystems/nix-installer-action@main | |
- uses: actions/[email protected] | |
- uses: cachix/install-nix-action@v25 | |
with: | |
nix_path: nixpkgs=channel:nixpkgs-unstable | |
- name: Cancel Previous Runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- uses: cachix/cachix-action@v16 | |
with: | |
name: haskell-miso-cachix | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- name: Nix channel update | |
run: nix-channel --update | |
- name: Bun install | |
run: nix-env -iA bun -f . && bun install | |
- name: Miso.ts tests | |
run: bun run test | |
- name: Bun build prod | |
run: bun run build && bun run prod | |
- name: (JS) Miso GHCJS (GHCJS 8.6) | |
run: nix-build -A miso-ghcjs | |
- name: (JS) Miso GHCJS Production (GHCJS 8.6) | |
run: nix-build -A miso-ghcjs-prod | |
- name: (x86) Miso GHC (GHC 8.6.5) | |
run: nix-build -A miso-ghc | |
- name: (JS) Miso GHCJS (GHC 9.12.2) | |
run: nix-build -A miso-ghcjs-9122 | |
- name: (x86) Miso GHC (GHC 9.12.2) | |
run: nix-build -A miso-ghc-9122 | |
- name: (x86) Haskell-miso.org server (GHC 8.6.5) | |
run: nix-build -A haskell-miso-server | |
- name: (JS) Haskell-miso.org client (GHCJS 8.6) | |
run: nix-build -A haskell-miso-client | |
- name: (x86) sse.haskell-miso.org server (GHC 8.6.5) | |
run: nix-build -A sse-server | |
- name: (JS) sse.haskell-miso.org client (GHCJS 8.6) | |
run: nix-build -A sse-client | |
- name: (x86) Miso examples (GHC 8.6.5) | |
run: nix-build -A miso-examples-ghc | |
- name: (x86) Miso examples (GHC 9.12.2) | |
run: nix-build -A miso-examples-ghc-9122 | |
- name: (JS) Miso examples (GHCJS 9.12.2) | |
run: nix-build -A miso-examples-ghcjs-9122 | |
- name: (JS) Miso third-party examples (2048, flatris, etc.) (GHCJS 8.6.5) | |
run: nix-build -A more-examples -j1 | |
- name: (JS) Miso sample app (GHCJS 8.6) | |
run: nix-build -A sample-app-js | |
- name: (x86) Miso sample app jsaddle (GHC 8.6.5) | |
run: nix-build -A sample-app | |
- name: (x86) Nix garbage collect | |
run: nix-collect-garbage -d | |
- name: (WASM) Miso examples (GHC 9.12.2) | |
run: nix-build -A wasmExamples && ./result/bin/build.sh | |
- name: (x86) NixOS test runner for haskell-miso.org (GHC 8.6.5) | |
run: nix-build -A haskell-miso-org-test | |
- name: (x86) Nix garbage collect | |
run: nix-collect-garbage -d | |
- name: Miso Haddocks | |
run: nix-shell --run 'cabal update && cabal haddock-project' | |
- name: (x86) Nginx example hosting check | |
run: nix-build -A nginx-nixos-test --dry-run | |
deploy: | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- uses: DeterminateSystems/nix-installer-action@v12 | |
- uses: actions/[email protected] | |
- uses: cachix/install-nix-action@v25 | |
with: | |
nix_path: nixpkgs=channel:nixpkgs-unstable | |
- uses: cachix/cachix-action@v16 | |
with: | |
name: haskell-miso-cachix | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- name: Nix channel update | |
run: nix-channel --update | |
- name: Bun install | |
run: nix-env -iA bun -f . && bun install | |
- name: Bun build | |
run: bun run build | |
- name: Build | |
run: nix-build -A miso-ghcjs | |
- name: Miso Haddocks | |
run: nix-shell --run 'cabal update && cabal haddock-project' | |
- name: Miso.ts test coverage | |
run: bun run test | |
- name: Deploy | |
run: nix-build -A deploy -j1 && ./result | |
env: | |
AWS_SECRET_ACCESS_KEY: '${{ secrets.AWS_SECRET_ACCESS_KEY }}' | |
AWS_ACCESS_KEY_ID: '${{ secrets.AWS_ACCESS_KEY_ID }}' | |
DEPLOY: '${{ secrets.DEPLOY }}' | |
EMAIL: '${{ secrets.EMAIL }}' |