Skip to content

chore(buf): use new buf gh action #1

chore(buf): use new buf gh action

chore(buf): use new buf gh action #1

Workflow file for this run

name: proto
on:
push:
tags:
- 'v*'
pull_request:
branches:
- main
jobs:
buf:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: bufbuild/buf-action@v1
with:
token: ${{ secrets.BUF_TOKEN }}
setup_only: false
github_token: ${{ secrets.GITHUB_TOKEN }}
breaking_against: "https://github.com/stroeer/tapir.git#branch=main"
java:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
- uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-dependencies-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', '**/java/**/*.gradle*') }}
restore-keys: |
gradle-${{ runner.os }}-dependencies-
- uses: bufbuild/buf-action@v1
with:
setup_only: true
github_token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.BUF_TOKEN }}
- name: generate
run: make generate
- name: test
working-directory: java
run: ./gradlew clean build
- name: publish
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
working-directory: java
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
RELEASE_TAG=${GITHUB_REF/refs\/tags\/v/}
echo $RELEASE_TAG
./gradlew -Pversion=$RELEASE_TAG clean publish
node:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# we need Node for the local execution of protoc Typescript plugin
- uses: actions/setup-node@v4
with:
cache: 'npm'
cache-dependency-path: 'node/package-lock.json'
node-version-file: 'node/.nvmrc'
registry-url: "https://npm.pkg.github.com"
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: bufbuild/buf-action@v1
with:
setup_only: true
github_token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.BUF_TOKEN }}
# we need Node for the local execution of protoc Typescript plugin
- name: install
working-directory: node
run: npm ci
- name: generate
run: make generate TEMPLATE=buf.gen.node.yaml
- name: checks
working-directory: node
run: npm run checks
- name: publish
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
working-directory: node
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
RELEASE_TAG=${GITHUB_REF/refs\/tags\/v/}
echo $RELEASE_TAG
npm version $RELEASE_TAG
npm publish
node-proto:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: 'npm'
cache-dependency-path: 'node-proto/package-lock.json'
node-version-file: 'node-proto/.nvmrc'
registry-url: "https://npm.pkg.github.com"
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: bufbuild/buf-action@v1
with:
setup_only: true
github_token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.BUF_TOKEN }}
- name: install
working-directory: node-proto
run: npm ci
- name: generate
run: make generate TEMPLATE=buf.gen.node-proto.yaml
- name: build
working-directory: node-proto
run: npm run build
- name: checks
working-directory: node-proto
run: npm run checks
- name: publish
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
working-directory: node-proto
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
RELEASE_TAG=${GITHUB_REF/refs\/tags\/v/}
echo $RELEASE_TAG
npm version $RELEASE_TAG
npm publish
go:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.20'
- uses: bufbuild/buf-action@v1
with:
setup_only: true
github_token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.BUF_TOKEN }}
- name: generate
run: make generate TEMPLATE=buf.gen.go.yaml
- name: publish
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
run: |
RELEASE_TAG=${GITHUB_REF/refs\/tags\/v/}
echo $RELEASE_TAG
curl -X POST https://api.github.com/repos/stroeer/go-tapir/dispatches \
-H 'Accept: application/vnd.github.everest-preview+json' \
-u ${{ secrets.GO_TAPIR_TOKEN }} \
--data '{"event_type": "publish", "client_payload": { "tag": "'"$RELEASE_TAG"'" }}'