diff --git a/.github/workflows/build-frontend.yml b/.github/workflows/build-frontend.yml new file mode 100644 index 0000000..632a1f1 --- /dev/null +++ b/.github/workflows/build-frontend.yml @@ -0,0 +1,40 @@ +name: Build frontend + +on: + push: + branches: ["master"] + pull_request: + workflow_dispatch: + +permissions: + contents: read + +# Cancel superseded runs on the same ref (keep master runs intact). +concurrency: + group: build-frontend-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} + +jobs: + build-frontend: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Nix + uses: cachix/install-nix-action@v31 + with: + extra_nix_config: | + experimental-features = nix-command flakes + + # Mirrors `make frontend-build` (cd frontend && purs-nix bundle), + # running purs-nix from the flake dev shell defined in frontend/flake.nix. + - name: Build frontend + run: nix develop ./frontend --command make frontend-build + + - name: Upload bundle + uses: actions/upload-artifact@v4 + with: + name: frontend-bundle + path: frontend/main.js + if-no-files-found: error