This doesn't work when run from subdirectories, and going there manually before running `mg run //nix/bufCheck` is annoying. Change-Id: Icd30a7596ff0dfe2781f7cfa1b4085cbfdebd6ac Reviewed-on: https://cl.tvl.fyi/c/depot/+/7324 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de>
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			797 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			797 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
# Check protobuf syntax and breaking.
 | 
						|
#
 | 
						|
{ depot, pkgs, ... }:
 | 
						|
 | 
						|
pkgs.writeShellScriptBin "ci-buf-check" ''
 | 
						|
  export PATH="$PATH:${pkgs.lib.makeBinPath [ pkgs.buf pkgs.protoc-gen-go pkgs.protoc-gen-go-grpc ]}"
 | 
						|
  (cd $(git rev-parse --show-toplevel) && buf lint .)
 | 
						|
 | 
						|
  # Run buf generate, and bail out if generated files are changed.
 | 
						|
  (cd $(git rev-parse --show-toplevel) && buf generate --path tvix/store/protos)
 | 
						|
  # Check if any files have changed
 | 
						|
  if [[ -n "$(git status --porcelain -unormal)" ]]; then
 | 
						|
      echo "-----------------------------"
 | 
						|
      echo ".pb.go files need to be updated"
 | 
						|
      echo "-----------------------------"
 | 
						|
      git status -unormal
 | 
						|
      exit 1
 | 
						|
  fi
 | 
						|
 | 
						|
  # Report-only
 | 
						|
  (cd $(git rev-parse --show-toplevel) && (buf breaking . --against "./.git#ref=HEAD~1" || true))
 | 
						|
''
 |