Skip to content

CI: Add Support for Valkey 6.2, 7.0 and 7.2 #2829

CI: Add Support for Valkey 6.2, 7.0 and 7.2

CI: Add Support for Valkey 6.2, 7.0 and 7.2 #2829

Workflow file for this run

name: Java CI
on:
push:
branches: ["main"]
paths:
- glide-core/src/**
- submodules/**
- java/**
- .github/workflows/java.yml
- .github/workflows/install-shared-dependencies/action.yml
- .github/workflows/install-redis/action.yml
- .github/workflows/test-benchmark/action.yml
- .github/workflows/lint-rust/action.yml
pull_request:
paths:
- glide-core/src/**
- submodules/**
- java/**
- .github/workflows/java.yml
- .github/workflows/install-shared-dependencies/action.yml
- .github/workflows/install-redis/action.yml
- .github/workflows/test-benchmark/action.yml
- .github/workflows/lint-rust/action.yml
concurrency:
group: java-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
load-engine-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.load-engine-matrix.outputs.matrix }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Load the engine matrix
id: load-engine-matrix
shell: bash
run: echo "matrix=$(jq -c . < .github/json_matrices/engine-matrix.json)" >> $GITHUB_OUTPUT
build-and-test-java-client:
needs: load-engine-matrix
timeout-minutes: 35
strategy:
# Run all jobs
fail-fast: false
matrix:
java:
- 11
- 17
engine: ${{ fromJson(needs.load-engine-matrix.outputs.matrix) }}
host:
- {
OS: ubuntu,
RUNNER: ubuntu-latest,
TARGET: x86_64-unknown-linux-gnu
}
- {
OS: macos,
RUNNER: macos-latest,
TARGET: aarch64-apple-darwin
}
runs-on: ${{ matrix.host.RUNNER }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: ${{ matrix.java }}
- name: Install redis
if: ${{ matrix.engine.type == 'redis' && matrix.host.OS == 'ubuntu' }}
# TODO: make this step macos compatible: https://github.com/aws/glide-for-redis/issues/781
uses: ./.github/workflows/install-redis
with:
redis-version: ${{ matrix.engine.version }}
- name: Install Valkey
if: ${{ matrix.engine.type == 'valkey' }}
uses: ./.github/workflows/install-valkey
with:
engine-version: ${{ matrix.engine.version }}
target: ${{ matrix.host.TARGET }}
- name: Install shared software dependencies
uses: ./.github/workflows/install-shared-dependencies
with:
os: ${{ matrix.host.OS }}
target: ${{ matrix.host.TARGET }}
github-token: ${{ secrets.GITHUB_TOKEN }}
# install-redis: ${{ ((matrix.engine.type == 'valkey' || matrix.host.OS == 'ubuntu') && 'false') || 'true' }}
- name: Install protoc (protobuf)
uses: arduino/setup-protoc@v3
with:
version: "26.1"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build java client
working-directory: java
run: ./gradlew --continue build
- name: Ensure no skipped files by linter
working-directory: java
run: ./gradlew spotlessDiagnose | grep 'All formatters are well behaved for all files'
- uses: ./.github/workflows/test-benchmark
with:
language-flag: -java
- name: Upload test reports
if: always()
continue-on-error: true
uses: actions/upload-artifact@v4
with:
name: test-reports-java-${{ matrix.java }}-redis-${{ matrix.redis }}-${{ matrix.host.RUNNER }}
path: |
java/client/build/reports/**
java/integTest/build/reports/**
utils/clusters/**
benchmarks/results/**
build-amazonlinux-latest:
if: github.repository_owner == 'aws'
strategy:
# Run all jobs
fail-fast: false
matrix:
java:
- 11
- 17
runs-on: ubuntu-latest
container: amazonlinux:latest
timeout-minutes: 15
steps:
- name: Install git
run: |
yum -y remove git
yum -y remove git-*
yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
yum update
yum install -y git
git --version
- uses: actions/checkout@v4
- name: Checkout submodules
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git submodule update --init --recursive
- name: Install shared software dependencies
uses: ./.github/workflows/install-shared-dependencies
with:
os: "amazon-linux"
target: "x86_64-unknown-linux-gnu"
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install protoc (protobuf)
uses: arduino/setup-protoc@v3
with:
version: "26.1"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Java
run: |
yum install -y java-${{ matrix.java }}
- name: Install Valkey
uses: ./.github/workflows/install-valkey
with:
engine-version: "7.2.5"
target: "x86_64-unknown-linux-gnu"
- name: Build rust part
working-directory: java
run: cargo build --release
- name: Build java part
working-directory: java
run: ./gradlew --continue build
- name: Upload test reports
if: always()
continue-on-error: true
uses: actions/upload-artifact@v4
with:
name: test-reports-${{ matrix.java }}
path: |
java/client/build/reports/**
java/integTest/build/reports/**
lint-rust:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: ./.github/workflows/lint-rust
with:
cargo-toml-folder: ./java
name: lint java rust