Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 52 additions & 30 deletions .github/workflows/bazel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,20 @@ on:

jobs:
bazel-build-test:
name: Bazel build & test (Java ${{ matrix.java }})
runs-on: ubuntu-latest
name: Bazel build & test (Java ${{ matrix.java }} on ${{ matrix.os }})
runs-on: ${{ matrix.os }}
permissions:
contents: read
strategy:
fail-fast: false
matrix:
java: ["11", "17", "21"]
java: ["11.0.x", "17.0.x", "21.0.x"]
os: [ubuntu-latest, macos-latest, windows-latest]
env:
BAZELISK_SKIP_VERSION_CHECK: "1"
# Prevent MSYS from rewriting Bazel labels (//pkg:target) into paths on
# Windows bash runners.
MSYS2_ARG_CONV_EXCL: "*"

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
Expand All @@ -53,7 +59,8 @@ jobs:

# Install Bazelisk which reads the pinned version from .bazelversion.
# Install into $HOME/.local/bin (no root required) and add it to PATH.
- name: Install Bazelisk
- name: Install Bazelisk (Linux)
if: runner.os == 'Linux'
run: |
mkdir -p "$HOME/.local/bin"
curl -fsSL \
Expand All @@ -62,6 +69,30 @@ jobs:
chmod +x "$HOME/.local/bin/bazel"
echo "$HOME/.local/bin" >> "$GITHUB_PATH"

- name: Install Bazelisk (macOS)
if: runner.os == 'macOS'
run: |
mkdir -p "$HOME/.local/bin"
ARCH=$(uname -m)
SUFFIX="amd64"
[[ "$ARCH" == "arm64" ]] && SUFFIX="arm64"
curl -fsSL \
"https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-darwin-${SUFFIX}" \
-o "$HOME/.local/bin/bazel"
chmod +x "$HOME/.local/bin/bazel"
echo "$HOME/.local/bin" >> "$GITHUB_PATH"

- name: Install Bazelisk (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
$dir = Join-Path $HOME ".local\bin"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
Invoke-WebRequest `
-Uri "https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-windows-amd64.exe" `
-OutFile (Join-Path $dir "bazel.exe")
Add-Content $env:GITHUB_PATH "$dir"

# ----------------------------------------------------------------
# Cache layers
# The disk cache stores compiled action outputs; the repository cache
Expand All @@ -86,40 +117,31 @@ jobs:
# stabilises, subsequent runs where MODULE.bazel has not changed are fast
# because rules_jvm_external short-circuits on an identical artifact list.
- name: Pin Maven dependencies
shell: bash
run: REPIN=1 bazel run @maven//:pin

# ----------------------------------------------------------------
# Build all core modules
# ----------------------------------------------------------------
# Use folded YAML scalars (no shell line-continuation backslashes) so
# the generated script remains portable across Windows/Linux/macOS.
- name: Build
run: |
bazel build --config=ci \
//kubernetes:client-java-api \
//proto:client-java-proto \
//util:client-java \
//fluent:client-java-api-fluent \
//extended:client-java-extended

# Spring modules require Java 17+; skip them on the Java 11 matrix leg.
- name: Build Spring modules (Java 17+)
if: matrix.java != '11'
run: |
bazel build --config=ci \
//spring:client-java-spring-integration \
//spring-aot:client-java-spring-aot-integration
shell: bash
run: >-
bazel build --config=ci
//kubernetes:client-java-api
//proto:client-java-proto
//util:client-java
//fluent:client-java-api-fluent
//extended:client-java-extended

# ----------------------------------------------------------------
# Test — run per-module test suites
# ----------------------------------------------------------------
- name: Test core modules
run: |
bazel test --config=ci \
//kubernetes:tests \
//util:tests \
//extended:tests

- name: Test Spring modules (Java 17+)
if: matrix.java != '11'
run: |
bazel test --config=ci \
//spring:tests
shell: bash
run: >-
bazel test --config=ci
//kubernetes:tests
//util:tests
//extended:tests
16 changes: 9 additions & 7 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,18 @@ on:
branches: [ master ]
paths:
- '**/*.java'
- '**/pom.xml'
- '**/BUILD.bazel'
- 'MODULE.bazel'
- '.bazelrc'
- '.github/workflows/codeql-analysis.yml'
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
paths:
- '**/*.java'
- '**/pom.xml'
- '**/BUILD.bazel'
- 'MODULE.bazel'
- '.bazelrc'
- '.github/workflows/codeql-analysis.yml'
schedule:
- cron: '37 19 * * 0'
Expand All @@ -33,6 +37,8 @@ jobs:
fail-fast: false
matrix:
language: [ 'java' ]
env:
BAZELISK_SKIP_VERSION_CHECK: "1"

steps:
- name: Checkout repository
Expand All @@ -47,11 +53,7 @@ jobs:
uses: github/codeql-action/init@68bde559dea0fdcac2102bfdf6230c5f70eb485e # v4
with:
languages: ${{ matrix.language }}

# See https://github.com/github/codeql/issues/13541 for the origins of this command
# We can't use autobuild because it doesn't detect the right Java version
- name: Build project
run: ./mvnw clean package -f "pom.xml" -B -V -e -Dfindbugs.skip -Dcheckstyle.skip -Dpmd.skip=true -Dspotbugs.skip -Denforcer.skip -Dmaven.javadoc.skip -DskipTests -Dmaven.test.skip.exec -Dlicense.skip=true -Drat.skip=true -Dspotless.check.skip=true
build-mode: none

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@68bde559dea0fdcac2102bfdf6230c5f70eb485e # v4
2 changes: 1 addition & 1 deletion .github/workflows/generate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ jobs:
with:
distribution: 'temurin'
java-version: 17.0.x
cache: maven
- name: Checkout Gen
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
Expand Down Expand Up @@ -133,4 +134,3 @@ jobs:




30 changes: 1 addition & 29 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,7 @@
name: build

on:
push:
branches: [ "master", "master-java8", "release-**" ]
paths:
- '**/*.java'
- '**/pom.xml'
- '.mvn/**'
- 'mvnw'
- 'mvnw.cmd'
- '**/*.sh'
- 'client-java-contrib/Dockerfile'
- 'e2e/**/*.yaml'
- '.github/workflows/maven.yml'
- '!spring/**'
- '!spring-aot/**'
pull_request:
branches: [ "master", "master-java8", "release-**" ]
paths:
- '**/*.java'
- '**/pom.xml'
- '.mvn/**'
- 'mvnw'
- 'mvnw.cmd'
- '**/*.sh'
- 'client-java-contrib/Dockerfile'
- 'e2e/**/*.yaml'
- '.github/workflows/maven.yml'
- '!spring/**'
- '!spring-aot/**'
workflow_dispatch: {}

jobs:
verify-format:
Expand Down Expand Up @@ -185,4 +158,3 @@ jobs:
- name: Run Code-gen for Prometheus-Operator
working-directory: ${{ github.workspace }}/client-java-contrib/prometheus-operator
run: IMAGE_TAG=gh-action-tmp ./update.sh

26 changes: 26 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ on:
jobs:
release:
runs-on: ubuntu-latest
env:
BAZELISK_SKIP_VERSION_CHECK: "1"
steps:
- name: Validate Input
run: |
Expand All @@ -39,11 +41,34 @@ jobs:
with:
distribution: 'temurin'
java-version: 17.0.x
cache: maven
server-id: ossrh
server-username: OSSRH_USERNAME
server-password: OSSRH_TOKEN
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: GPG_PASSPHRASE
- name: Install Bazelisk
run: |
mkdir -p "$HOME/.local/bin"
curl -fsSL \
https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-amd64 \
-o "$HOME/.local/bin/bazel"
chmod +x "$HOME/.local/bin/bazel"
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- name: Restore Bazel caches
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
with:
path: |
~/.cache/bazel-disk-cache
~/.cache/bazel/cache/repos/v1
key: bazel-${{ runner.os }}-release-${{ hashFiles('MODULE.bazel', '.bazelversion', 'maven_install.json') }}
restore-keys: |
bazel-${{ runner.os }}-release-
bazel-${{ runner.os }}-
- name: Bazel Build
run: bazel build --config=ci //...
- name: Bazel Test
run: bazel test --config=ci //...
- name: Prepare
run: |
export GPG_TTY=$(tty)
Expand All @@ -69,6 +94,7 @@ jobs:
-DreleaseVersion=${{ github.event.inputs.releaseVersion }} \
-DdevelopmentVersion=${{ github.event.inputs.nextDevelopmentVersion }} \
-DpushChanges=false \
-Darguments=-DskipTests \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
- name: Release Perform
if: ${{ github.event.inputs.dry-run != 'true' }}
Expand Down
10 changes: 2 additions & 8 deletions .github/workflows/snapshot.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
name: Upload Snapshot

on:
push:
branches:
- master
paths:
- '**/*.java'
- '**/pom.xml'
- '.github/workflows/snapshot.yml'
workflow_dispatch: {}

permissions:
Expand All @@ -25,6 +18,7 @@ jobs:
with:
distribution: 'temurin'
java-version: 17.0.x
cache: maven
server-id: ossrh
server-username: OSSRH_USERNAME
server-password: OSSRH_TOKEN
Expand All @@ -43,4 +37,4 @@ jobs:
env:
OSSRH_USERNAME: ${{ secrets.SNAPSHOT_UPLOAD_USER }}
OSSRH_TOKEN: ${{ secrets.SNAPSHOT_UPLOAD_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSWORD }}
21 changes: 1 addition & 20 deletions .github/workflows/spring.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,7 @@
name: spring

on:
push:
branches: [ "master", "master-java8", "release-**" ]
paths:
- 'spring/**'
- 'spring-aot/**'
- '**/pom.xml'
- '.mvn/**'
- 'mvnw'
- 'mvnw.cmd'
- '.github/workflows/spring.yml'
pull_request:
branches: [ "master", "master-java8", "release-**" ]
paths:
- 'spring/**'
- 'spring-aot/**'
- '**/pom.xml'
- '.mvn/**'
- 'mvnw'
- 'mvnw.cmd'
- '.github/workflows/spring.yml'
workflow_dispatch: {}

jobs:
spring-tests:
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Kubernetes Java Client

[![build](https://github.com/kubernetes-client/java/workflows/build/badge.svg)](https://github.com/kubernetes-client/java/actions/workflows/maven.yml)
[![bazel](https://github.com/kubernetes-client/java/actions/workflows/bazel.yml/badge.svg)](https://github.com/kubernetes-client/java/actions/workflows/bazel.yml)
[![Client Capabilities](https://img.shields.io/badge/Kubernetes%20client-Silver-blue.svg?style=flat&colorB=C0C0C0&colorA=306CE8)](https://bit.ly/kubernetes-client-capabilities-badge)
[![Client Support Level](https://img.shields.io/badge/kubernetes%20client-beta-green.svg?style=flat&colorA=306CE8)](https://bit.ly/kubernetes-client-support-badge)
[![Maven Central](https://img.shields.io/maven-central/v/io.kubernetes/client-java.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22io.kubernetes%22%20AND%20a:%22client-java%22)
Expand Down Expand Up @@ -38,4 +38,3 @@ already covered.

You can also reach out to us via [#kubernetes-client](https://kubernetes.slack.com/messages/kubernetes-clients/) slack
channel.

Loading