Skip to content

Merge pull request #90 from o7studios/renovate/google.golang.org-genp… #531

Merge pull request #90 from o7studios/renovate/google.golang.org-genp…

Merge pull request #90 from o7studios/renovate/google.golang.org-genp… #531

Workflow file for this run

name: "⚙️ CI & Release Workflow"
on:
push:
pull_request:
types: [ opened, reopened ]
env:
JAVA_VERSION: '25'
JAVA_DISTRIBUTION: 'temurin'
permissions:
contents: write
jobs:
generate:
name: "🧬 Generate proto"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: "📥 Checkout Code (Full History)"
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: "📦 Setup Buf"
uses: bufbuild/buf-setup-action@v1.50.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: "🧬 Generate Protobuf Files"
run: make generate-proto
- name: Auto-commit and push changes
uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: "🤖 Generate protobufs"
file_pattern: "sdk/**/*"
lint:
name: "🧹 Lint Code"
runs-on: ubuntu-latest
needs: generate
permissions:
contents: read
steps:
- name: "📥 Checkout Code"
uses: actions/checkout@v7
- name: "📦 Setup Buf"
uses: bufbuild/buf-setup-action@v1.50.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: "🧬 Generate Protobuf Files"
run: make generate-proto
- name: "🔧 Setup Go"
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache-dependency-path: go.sum
- name: "🔍 Run golangci-lint"
uses: golangci/golangci-lint-action@v9
with:
version: latest
args: --timeout 3m0s
releaser:
name: "🏁 Release"
if: startsWith(github.ref, 'refs/tags/')
needs:
- lint
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- name: "📥 Checkout Code (Full History)"
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: "📦 Setup Buf"
uses: bufbuild/buf-setup-action@v1.50.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: "🧬 Generate Protobuf Files"
run: make generate-proto
- name: "🔧 Setup Go (with Cache)"
uses: actions/setup-go@v6
with:
cache: true
go-version-file: go.mod
cache-dependency-path: go.sum
- name: ☕ Setup Java ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v5
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.JAVA_VERSION }}
- name: "🔧 Setup Node"
uses: actions/setup-node@v6
with:
node-version: '24.x'
registry-url: 'https://registry.npmjs.org'
- name: "Extract version from tag"
id: version
run: |
RAW_TAG="${GITHUB_REF##*/}"
VERSION="${RAW_TAG#v}"
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: "Set npm version from tag"
working-directory: sdk/ts
run: |
npm version ${{ steps.version.outputs.version }} --no-git-tag-version
- run: npm ci
working-directory: sdk/ts
- run: npm publish --dry-run
working-directory: sdk/ts
- name: "🚀 Publish to npm"
working-directory: sdk/ts
run: |
npm publish --access public
- name: ⚡ Setup Gradle with Cache
uses: gradle/actions/setup-gradle@v6
- name: "🚀 Publish to Maven Central"
env:
GPG_KEY: ${{ secrets.GPG_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
run: |
RAW_TAG="${GITHUB_REF##*/}"
VERSION="${RAW_TAG#v}"
[[ "$VERSION" =~ ^[0-9]+(\.[0-9]+)*$ ]] || exit -1
./gradlew publishToCentralPortal -Pversion="$VERSION" --info --stacktrace