diff --git a/.github/workflows/nix-ci.yml b/.github/workflows/nix-ci.yml new file mode 100644 index 000000000..02d644a78 --- /dev/null +++ b/.github/workflows/nix-ci.yml @@ -0,0 +1,54 @@ +name: Nix CI +on: + push: + pull_request: +jobs: + check-hashes: + name: Ensure Nix Hashes are up-to-date + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install nix + uses: cachix/install-nix-action@v22 + with: + nix_path: nixpkgs=channel:nixos-unstable + # - uses: cachix/cachix-action@v12 + # with: + # name: trawelling + # authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + + - name: Prepare Nix shell + run: nix develop --impure .#ci + + - name: Update npm Hashes + working-directory: nix/package/web + run: nix develop --impure .#ci --command "./update.sh" + + - name: Update Composer Hashes + working-directory: nix/package + run: nix develop --impure .#ci --command "./update.sh" + + - name: Check if up-to-date + shell: bash + run: | + if [ "$(git status --porcelain=v1 2>/dev/null | wc -l)" = "1" ]; then + git status + echo "::error::Nix hashes are not up to date" + fi + + build: + name: Build Package + runs-on: ubuntu-latest + needs: check + steps: + - uses: actions/checkout@v3 + - name: Install nix + uses: cachix/install-nix-action@v22 + with: + nix_path: nixpkgs=channel:nixos-unstable + # - uses: cachix/cachix-action@v12 + # with: + # name: trawelling + # authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - name: Build with nix + run: nix build diff --git a/nix/shell.nix b/nix/shell.nix index afa038282..5e4c2646c 100644 --- a/nix/shell.nix +++ b/nix/shell.nix @@ -1,9 +1,11 @@ {...}: { perSystem = { + config, pkgs, lib, ... - }: { + }: rec { + devenv.shells.ci = devenv.shells.default; devenv.shells.default = { config, inputs,