hellofresh / grpc-protoc-plugins

Pipeline and releases for gRPC PHP and Pythin plugins that are not available as prebuilt artifacts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

grpc-php-plugin && grpc-python-plugin

At the time of this repo creation the official way of getting grpc-php-plugin artifact was to build it manually:

It should already been compiled when you run make from the root directory of this repo. The plugin can be found in the bins/opt directory. We are planning to provide a better way to download and install the plugin in the future.

Python gRPC plugin is not provided as standalone protoc plugin as well with the recommendation to use python module:

python -m pip install grpcio-tools $ python -m grpc_tools.protoc -I../../protos --python_out=. --grpc_python_out=. ../../protos/helloworld.proto

This repository is a temporary solution for building and storing grpc-php-plugin and grpc-python-plugin artifacts to use as protoc plugins, until a better way will be found.

How it works

Repo is not storing any grpc code but GitHub Actions pipeline and prebuilt artifacts in releases.

The flow is the following:

  • as soon as we need the fresh version of the plugins we create a release with the same version as gRPC library release/tag (e.g. v1.35.0)
  • GitHub Actions pipeline checks out the code of the library with corresponding version, builds artifacts (should be two per plugin - for linux@amd64 and darwin@amd64) and attaches them to the release
  • projects/tools interested in the prebuilt artifacts can download and use them as they would normally do with other plugins (e.g. grpc-go already provides prebuilt artifacts)

License

The content of this repository is licensed under Apache License 2.0. All the derived works are licensed under their own licenses.

About

Pipeline and releases for gRPC PHP and Pythin plugins that are not available as prebuilt artifacts

License:Apache License 2.0