From 78a6c0cc34127cd9dd8853c338c6f6a6465ec4b3 Mon Sep 17 00:00:00 2001 From: redianthus Date: Wed, 3 Dec 2025 16:32:12 +0100 Subject: [PATCH 1/2] add basic `shell.nix` --- shell.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 shell.nix diff --git a/shell.nix b/shell.nix new file mode 100644 index 000000000..0a6f20bcd --- /dev/null +++ b/shell.nix @@ -0,0 +1,20 @@ +{ pkgs ? import (builtins.fetchTarball { + url = "https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz"; + }) {} +}: + +pkgs.mkShell { + dontDetectOcamlConflicts = true; + nativeBuildInputs = with pkgs.ocamlPackages; [ + cppo + dune-configurator + dune_3 + findlib + ocaml + odoc + ppx_deriving_yojson + ]; + buildInputs = with pkgs.ocamlPackages; [ + zarith + ]; +} From d8f1fd1e2a7da87553183e7528c08a49b08642df Mon Sep 17 00:00:00 2001 From: redianthus Date: Wed, 3 Dec 2025 16:32:28 +0100 Subject: [PATCH 2/2] add basic nix CI --- .github/workflows/build-nix.yml | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/build-nix.yml diff --git a/.github/workflows/build-nix.yml b/.github/workflows/build-nix.yml new file mode 100644 index 000000000..ac40c1edd --- /dev/null +++ b/.github/workflows/build-nix.yml @@ -0,0 +1,37 @@ +name: build-nix +on: + pull_request: + branches: + - main + push: + branches: + - main +jobs: + build: + runs-on: ubuntu-latest + container: + image: nixos/nix:latest + steps: + - name: test + run: | + set -x + + git clone https://github.com/${{ github.repository }}.git + cd $(basename ${{ github.repository }}) + + if [ "${{ github.event_name }}" = "pull_request" ]; then + git fetch origin pull/${{ github.event.pull_request.number }}/head:pr-${{ github.event.pull_request.number }} + git checkout pr-${{ github.event.pull_request.number }} + else + git checkout ${{ github.ref_name }} + fi + + nix-shell --run " + ODOC_WARN_ERROR=true + dune build @doc && + dune build @install + " + + nix-shell -p git --run " + git diff --exit-code goblint-cil.opam + "