name: Publish on: push: branches: - main jobs: publish: name: Publish Job runs-on: ubuntu-latest env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 registry-url: "https://git.lendry.ru/api/packages/lendry-erp/npm/" scope: "@lendry-erp" # 1. Устанавливаем Go (нужен для скачивания плагинов генерации) - name: Setup Go uses: actions/setup-go@v5 with: go-version: "1.22" # Можно указать нужную тебе версию # 2. Устанавливаем плагины генерации для Go и добавляем их в PATH - name: Install Go Protoc Plugins run: | go install google.golang.org/protobuf/cmd/protoc-gen-go@latest go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest echo "$(go env GOPATH)/bin" >> $GITHUB_PATH - name: Install protoc run: sudo apt-get update && sudo apt-get install -y protobuf-compiler - name: Install deps run: npm ci - name: Build run: npm run build # 3. Исправленный шаг генерации (команды разделены, добавлено создание папки) - name: Generate Protobuf run: | npm install -g ts-proto mkdir -p ./gen/go # Создаем вложенную папку для Go protoc -I ./proto/* ./proto/*/*.proto \ --ts_proto_out=nestJs=true,addGrpcMetadata=true,package=omit:./gen \ --go_out=paths=source_relative:./gen/go \ --go-grpc_out=paths=source_relative:./gen/go - name: Commit and push changes run: | # Представляемся Git-ботом git config --global user.name "github-actions[bot]" git config --global user.email "github-actions[bot]@users.noreply.github.com" # Добавляем папку gen в индекс git add ./gen # Проверяем, есть ли изменения. Если есть — коммитим и пушим. git diff --quiet && git diff --staged --quiet || (git commit -m "chore: auto-generate protobuf files [skip ci]" && git push) - name: Publish package run: npm publish