name: "Building derivations"
on: [pull_request, push]
jobs:
  check-outputs:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: cachix/install-nix-action@v16
        with:
          nix_path: nixpkgs=channel:nixos-unstable
      - name: Check flake outputs
        run: NIXPKGS_ALLOW_INSECURE=1 nix flake check --impure

  build-custom-packages:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: cachix/install-nix-action@v16
        with:
          nix_path: nixpkgs=channel:nixos-unstable
      - name: Prepare push to binary cache
        uses: cachix/cachix-action@v10
        if: ${{ github.ref == 'refs/heads/master' }}
        with:
          name: foo-dogsquared
          authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
      - name: Build custom packages
        run: nix shell nixpkgs#nix-build-uncached --command nix-build-uncached ./pkgs

  build-hosts:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: cachix/install-nix-action@v16
        with:
          nix_path: nixpkgs=channel:nixos-unstable
      - name: Build NixOS configurations
        run: |
          nix build .#nixosConfigurations.ni.config.system.build.toplevel