Use buf to detect for wire breaking changes (#415)

pull/414/head^2
Aaron Abbott 2 years ago committed by GitHub
parent 157bedf2d4
commit 0bfcf1ca8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      .github/workflows/build-check.yaml
  2. 11
      Makefile
  3. 6
      buf.yaml

@ -82,3 +82,16 @@ jobs:
steps:
- uses: actions/checkout@v2
- run: make gen-kotlin
breaking-change:
needs: docker-pull
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run make breaking-change with json output to annotate PR
# Formats JSON output into Github workflow commands
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-error-message
run: >
BUF_FLAGS="--error-format json" make -s breaking-change
| jq -rs '.[] | "::error file=\(.path),line=\(.start_line),endLine=\(.end_line),title=Buf detected breaking change \(.type)::\(.message)"'
; (exit ${PIPESTATUS[0]})

@ -18,7 +18,13 @@ endef
gen-all: gen-cpp gen-csharp gen-go gen-java gen-kotlin gen-objc gen-openapi gen-php gen-python gen-ruby
OTEL_DOCKER_PROTOBUF ?= otel/build-protobuf:0.9.0
BUF_DOCKER ?= bufbuild/buf:1.7.0
PROTOC := docker run --rm -u ${shell id -u} -v${PWD}:${PWD} -w${PWD} ${OTEL_DOCKER_PROTOBUF} --proto_path=${PWD}
BUF := docker run --rm -v "${PWD}:/workspace" -w /workspace ${BUF_DOCKER}
# When checking for protobuf breaking changes, check against the upstream repo's main branch.
# Options are described in https://docs.buf.build/breaking/usage#git
BUF_AGAINST ?= "https://github.com/open-telemetry/opentelemetry-proto.git"
PROTO_GEN_CPP_DIR ?= $(GENDIR)/cpp
PROTO_GEN_CSHARP_DIR ?= $(GENDIR)/csharp
@ -36,6 +42,7 @@ PROTO_GEN_RUBY_DIR ?= $(GENDIR)/ruby
.PHONY: docker-pull
docker-pull:
docker pull $(OTEL_DOCKER_PROTOBUF)
docker pull $(BUF_DOCKER)
# Generate gRPC/Protobuf implementation for C++.
.PHONY: gen-cpp
@ -139,3 +146,7 @@ gen-ruby:
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) --grpc-ruby_out=./$(PROTO_GEN_RUBY_DIR) opentelemetry/proto/collector/trace/v1/trace_service.proto
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) --grpc-ruby_out=./$(PROTO_GEN_RUBY_DIR) opentelemetry/proto/collector/metrics/v1/metrics_service.proto
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) --grpc-ruby_out=./$(PROTO_GEN_RUBY_DIR) opentelemetry/proto/collector/logs/v1/logs_service.proto
.PHONY: breaking-change
breaking-change:
$(BUF) breaking --against $(BUF_AGAINST) $(BUF_FLAGS)

@ -0,0 +1,6 @@
version: v1
# See https://docs.buf.build/breaking/configuration
breaking:
use:
- WIRE
Loading…
Cancel
Save