diff --git a/.github/workflows/buf-push.yml b/.github/workflows/buf-push.yml new file mode 100644 index 00000000..12ff5ab5 --- /dev/null +++ b/.github/workflows/buf-push.yml @@ -0,0 +1,49 @@ +name: Push API Schema to BSR +on: + push: + branches: + - "main" + paths: + - "packages/proto/api/**" + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: buf-push + cancel-in-progress: false + +jobs: + buf-push: + name: ๐Ÿš€ Push api module to the BSR + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - name: โฌ‡๏ธ Checkout repo + uses: actions/checkout@v6 + with: + # --git-metadata derives labels from the tags/branches pointing at HEAD + fetch-depth: 0 + + - name: Set up pnpm + uses: pnpm/action-setup@v4 + + - name: โŽ” Setup node + uses: actions/setup-node@v6 + with: + node-version: 24 + cache: "pnpm" + + - name: ๐Ÿ“ฅ Download deps + run: pnpm install + + - name: ๐Ÿงน Lint api protos + working-directory: ./packages/proto + run: pnpm buf:lint:api + + - name: ๐Ÿš€ Push to BSR + working-directory: ./packages/proto + env: + BUF_TOKEN: ${{ secrets.BUF_TOKEN }} + run: pnpm exec buf push api --git-metadata diff --git a/.github/workflows/proto-check.yml b/.github/workflows/proto-check.yml index 12988d98..198e9090 100644 --- a/.github/workflows/proto-check.yml +++ b/.github/workflows/proto-check.yml @@ -47,6 +47,10 @@ jobs: - name: ๐Ÿ“ฅ Download deps run: pnpm install + - name: ๐Ÿงน Lint api protos + working-directory: ./packages/proto + run: pnpm buf:lint:api + - name: ๐Ÿ”„ Regenerate proto files working-directory: ./packages/proto run: | diff --git a/packages/proto/package.json b/packages/proto/package.json index be04f46c..3cc01f69 100644 --- a/packages/proto/package.json +++ b/packages/proto/package.json @@ -44,6 +44,7 @@ "buf:ts": "buf generate --path api/openstatus --template buf.gen.ts.yaml", "buf:go": "buf generate --path internal/private_location --template buf.gen.go.yaml", "buf:lint": "buf lint", + "buf:lint:api": "buf lint api", "build": "buf generate", "clean": "rm -rf gen/ts" },