Skip to content

Release core-sdk

Release core-sdk #108

Workflow file for this run

name: CI
on:
push:
branches: [main, "runapi-ci/**"]
tags: ["v*", "*/v*"]
pull_request:
branches: [main]
permissions:
contents: read
defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
java:
name: Java ${{ matrix.test-java-version }}
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- test-java-version: '8'
java-versions: |
21
8
java-home-envs: JAVA_HOME_21_X64,JAVA_HOME_8_X64
- test-java-version: '11'
java-versions: |
21
11
java-home-envs: JAVA_HOME_21_X64,JAVA_HOME_11_X64
- test-java-version: '17'
java-versions: |
21
17
java-home-envs: JAVA_HOME_21_X64,JAVA_HOME_17_X64
- test-java-version: '21'
java-versions: '21'
java-home-envs: JAVA_HOME_21_X64
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- name: Set up Java
uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4
with:
distribution: temurin
java-version: ${{ matrix.java-versions }}
- name: Test and build local packages
run: ./gradlew --no-daemon test publishToMavenLocal -PtestJavaVersion=${{ matrix.test-java-version }} -Porg.gradle.java.installations.fromEnv=${{ matrix.java-home-envs }}
working-directory: java
env:
JAVA_HOME: ${{ env.JAVA_HOME_21_X64 }}
javascript:
name: JavaScript package
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # zizmor: ignore[cache-poisoning] cache is opt-in and no cache input is configured; v4
with:
node-version: 22
- name: Install dependencies
run: npm install --ignore-scripts --no-audit --no-fund
working-directory: js
- name: Typecheck
run: npm run typecheck
working-directory: js
- name: Build
run: npm run build
working-directory: js
- name: Test
run: npm test
working-directory: js
- name: Verify npm package boundary
run: npm pack --dry-run --json --ignore-scripts
working-directory: js
python:
name: Python wheel
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
with:
python-version: '3.13'
- name: Install build and test tools
run: python -m pip install build pytest
working-directory: python
- name: Build wheel
run: python -m build
working-directory: python
- name: Install wheel
run: python -m pip install dist/*.whl
working-directory: python
- name: Test installed package
run: python -m pytest
working-directory: python
ruby:
name: Ruby gem (Ruby ${{ matrix.ruby-version }})
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
ruby-version: ['3.1', '4.0']
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- name: Set up Ruby
uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install dependencies
run: bundle install --jobs 4 --retry 3
working-directory: ruby
- name: Test
run: bundle exec rspec
working-directory: ruby
- name: Build gem
run: 'gem build -- *.gemspec'
working-directory: ruby
go:
name: Go module
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
with:
go-version: '1.26'
cache: false
- name: Test
run: go test ./...
working-directory: go