refactor(tvix/*/protos): separate lint target

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
This commit is contained in:
Florian Klink 2023-12-09 15:40:57 +02:00 committed by clbot
parent 8486f87e3c
commit 43943e2623
3 changed files with 107 additions and 46 deletions

View file

@ -1,9 +1,6 @@
{ depot, pkgs, ... }: {
# Produces the golang bindings.
go-bindings = pkgs.stdenv.mkDerivation {
name = "go-bindings";
src = depot.nix.sparseTree {
{ depot, pkgs, ... }:
let
protos = depot.nix.sparseTree {
name = "build-protos";
root = depot.path.origSrc;
paths = [
@ -15,6 +12,32 @@
../../../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
@ -24,8 +47,6 @@
buildPhase = ''
export HOME=$TMPDIR
buf lint
buf format -d --exit-code
buf generate
mkdir -p $out

View file

@ -1,9 +1,6 @@
{ depot, pkgs, ... }: {
# Produces the golang bindings.
go-bindings = pkgs.stdenv.mkDerivation {
name = "go-bindings";
src = depot.nix.sparseTree {
{ depot, pkgs, ... }:
let
protos = depot.nix.sparseTree {
name = "castore-protos";
root = depot.path.origSrc;
paths = [
@ -14,6 +11,31 @@
../../../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
@ -23,8 +45,6 @@
buildPhase = ''
export HOME=$TMPDIR
buf lint
buf format -d --exit-code
buf generate
mkdir -p $out

View file

@ -1,10 +1,7 @@
{ depot, pkgs, ... }: {
# Produces the golang bindings.
go-bindings = pkgs.stdenv.mkDerivation {
name = "go-bindings";
src = depot.nix.sparseTree {
name = "castore-protos";
{ depot, pkgs, ... }:
let
protos = depot.nix.sparseTree {
name = "store-protos";
root = depot.path.origSrc;
paths = [
# We need to include castore.proto (only), as it's referred.
@ -15,6 +12,31 @@
../../../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
@ -24,8 +46,6 @@
buildPhase = ''
export HOME=$TMPDIR
buf lint
buf format -d --exit-code
buf generate
mkdir -p $out