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/
 | |
|     '';
 | |
|   };
 | |
| }
 |