name: proto-checks
'on':
  - push
  - pull_request
env:
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
  proto-lint:
    name: proto-checks
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5

      - name: Setup Go
        uses: actions/setup-go@v6
        with:
          go-version: 1.25.x

      - name: Setup build depends
        run: |
          go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest
          go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest
          go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
          go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

      - uses: bufbuild/buf-setup-action@v1.50.0
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}

      - name: buf generate
        working-directory: ./gctrpc
        run: buf generate

      - uses: bufbuild/buf-lint-action@v1
        with:
          input: gctrpc
          
      - name: buf format
        run: buf format --diff --exit-code

      - name: buf generate backtester
        working-directory: ./backtester/btrpc
        run: buf generate

      - uses: bufbuild/buf-lint-action@v1
        with:
          input: ./backtester/btrpc

      - name: buf format backtester
        run: buf format --diff --exit-code
