Break up the go-bindings derivation. Keep "protos" containing all proto files (well, and the buf config), and use it for a check phase running linter and formatter, as well as the existing "go-bindings" attribute Change-Id: I52cb9d08570bb76452acb831eb711c5b6c0eacfb Reviewed-on: https://cl.tvl.fyi/c/depot/+/10239 Reviewed-by: raitobezarius <tvl@lahfa.xyz> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
		
			
				
	
	
		
			56 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ depot, pkgs, ... }:
 | 
						|
let
 | 
						|
  protos = depot.nix.sparseTree {
 | 
						|
    name = "build-protos";
 | 
						|
    root = depot.path.origSrc;
 | 
						|
    paths = [
 | 
						|
      # We need to include castore.proto (only), as it's referred.
 | 
						|
      ../../castore/protos/castore.proto
 | 
						|
      ./build.proto
 | 
						|
      ./rpc_build.proto
 | 
						|
      ../../../buf.yaml
 | 
						|
      ../../../buf.gen.yaml
 | 
						|
    ];
 | 
						|
  };
 | 
						|
in
 | 
						|
depot.nix.readTree.drvTargets {
 | 
						|
  inherit protos;
 | 
						|
 | 
						|
  # Lints and ensures formatting of the proto files.
 | 
						|
  check = pkgs.stdenv.mkDerivation {
 | 
						|
    name = "proto-check";
 | 
						|
    src = protos;
 | 
						|
 | 
						|
    nativeBuildInputs = [
 | 
						|
      pkgs.buf
 | 
						|
    ];
 | 
						|
 | 
						|
    buildPhase = ''
 | 
						|
      export HOME=$TMPDIR
 | 
						|
      buf lint
 | 
						|
      buf format -d --exit-code
 | 
						|
      touch $out
 | 
						|
    '';
 | 
						|
  };
 | 
						|
 | 
						|
  # Produces the golang bindings.
 | 
						|
  go-bindings = pkgs.stdenv.mkDerivation {
 | 
						|
    name = "go-bindings";
 | 
						|
 | 
						|
    src = protos;
 | 
						|
 | 
						|
    nativeBuildInputs = [
 | 
						|
      pkgs.buf
 | 
						|
      pkgs.protoc-gen-go
 | 
						|
      pkgs.protoc-gen-go-grpc
 | 
						|
    ];
 | 
						|
 | 
						|
    buildPhase = ''
 | 
						|
      export HOME=$TMPDIR
 | 
						|
      buf generate
 | 
						|
 | 
						|
      mkdir -p $out
 | 
						|
      cp tvix/build/protos/*.pb.go $out/
 | 
						|
    '';
 | 
						|
  };
 | 
						|
}
 |