Skip to content

Cleanup generated Go API (#284) #773

Cleanup generated Go API (#284)

Cleanup generated Go API (#284) #773

name: build-and-test
on:
push:
branches: [main]
tags:
- "v[0-9]+.[0-9]+.[0-9]+*"
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
GO111MODULE: "on"
CACHE_BENCHMARK: "off"
RUN_BASE_BENCHMARK: "on"
GO_VERSION: 1.22.x
jobs:
build:
strategy:
matrix:
go-version: [ 1.22.x ]
runs-on: ubuntu-latest
steps:
- name: Install Go stable
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
- name: Checkout code
uses: actions/checkout@v4
with:
# this is needed for "make testcompat" in benchmarks to checkout a past commit
fetch-depth: 0
- name: Go cache
uses: actions/cache@v4
with:
path: |
~/go/pkg/mod
~/.cache/go-build
key: ${{ runner.os }}-go-cache-${{ hashFiles('**/go.sum') }}
- name: Restore benchstat
uses: actions/cache@v4
with:
path: ~/go/bin/benchstat
key: ${{ runner.os }}-benchstat-legacy
- name: Build and test
run: |
make build-ci
build-java:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up JDK for running Gradle
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
distribution: temurin
java-version: 21
- name: Set up gradle
uses: gradle/actions/setup-gradle@8379f6a1328ee0e06e2bb424dadb7b159856a326 # v4.4.0
with:
cache-read-only: ${{ github.event_name == 'pull_request' }}
- name: Gradle build and test
run: cd java && ./gradlew build -x test
benchmark-java:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Generate test files
run: |
cd benchmarks
make gentestfiles
- name: Set up JDK for running Gradle
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
distribution: temurin
java-version: 21
- name: Set up gradle
uses: gradle/actions/setup-gradle@8379f6a1328ee0e06e2bb424dadb7b159856a326 # v4.4.0
with:
cache-read-only: ${{ github.event_name == 'pull_request' }}
- name: Gradle build and test
run: cd java && ./gradlew jmh
test-java:
name: test-java (${{ matrix.test-java-version }})
runs-on: ubuntu-latest
strategy:
matrix:
test-java-version:
- 8
- 11
- 17
- 21
- 23
fail-fast: false
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- id: setup-test-java
name: Set up JDK ${{ matrix.test-java-version }} for running tests
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
# using zulu because new releases get published quickly
distribution: zulu
java-version: ${{ matrix.test-java-version }}
- name: Set up JDK for running Gradle
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
distribution: temurin
java-version: 21
- name: Set up gradle
uses: gradle/actions/setup-gradle@8379f6a1328ee0e06e2bb424dadb7b159856a326 # v4.4.0
with:
cache-read-only: ${{ github.event_name == 'pull_request' }}
- name: Generate test files
run: |
cd benchmarks
make gentestfiles
- name: Generate Java code from test schemas
run: |
cd stefc/generator
go test -run TestGenerate
- name: Gradle test
run: >
cd java && ./gradlew test
-PtestJavaVersion=${{ matrix.test-java-version }}
-Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }}
-Porg.gradle.java.installations.auto-download=false