| name: Release |
| |
| on: |
| release: |
| types: [published] |
| |
| jobs: |
| release: |
| name: Release cmd/protoc-gen-go-grpc |
| runs-on: ubuntu-latest |
| if: startsWith(github.event.release.tag_name, 'cmd/protoc-gen-go-grpc/') |
| strategy: |
| matrix: |
| goos: [linux, darwin, windows] |
| goarch: [386, amd64] |
| exclude: |
| - goos: darwin |
| goarch: 386 |
| |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@v2 |
| |
| - name: Set up Go |
| uses: actions/setup-go@v2 |
| |
| - name: Download dependencies |
| run: | |
| cd cmd/protoc-gen-go-grpc |
| go mod download |
| |
| - name: Prepare build directory |
| run: | |
| mkdir -p build/ |
| cp README.md build/ |
| cp LICENSE build/ |
| |
| - name: Build |
| env: |
| GOOS: ${{ matrix.goos }} |
| GOARCH: ${{ matrix.goarch }} |
| run: | |
| cd cmd/protoc-gen-go-grpc |
| go build -trimpath -o $GITHUB_WORKSPACE/build |
| |
| - name: Create package |
| id: package |
| run: | |
| PACKAGE_NAME=protoc-gen-go-grpc.${GITHUB_REF#refs/tags/cmd/protoc-gen-go-grpc/}.${{ matrix.goos }}.${{ matrix.goarch }}.tar.gz |
| tar -czvf $PACKAGE_NAME -C build . |
| echo ::set-output name=name::${PACKAGE_NAME} |
| |
| - name: Upload asset |
| uses: actions/upload-release-asset@v1 |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| with: |
| upload_url: ${{ github.event.release.upload_url }} |
| asset_path: ./${{ steps.package.outputs.name }} |
| asset_name: ${{ steps.package.outputs.name }} |
| asset_content_type: application/gzip |