Skip to content

update code to use java 21 #1

update code to use java 21

update code to use java 21 #1

Workflow file for this run

name: Java CI
on:
push:
branches:
- main
- 2.x
pull_request:
permissions:
contents: read
concurrency:
group: java-ci-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
env:
REDIS_RUNNING: "true"
USER_NAME: rqueue
TERM: dumb
JVM_OPTS: -Xmx8g
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: gradle
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Resolve dependencies
run: ./gradlew dependencies
- name: Compile main sources
run: ./gradlew compileJava
- name: Compile test sources
run: ./gradlew compileTestJava
unit_test:
needs: build
runs-on: ubuntu-latest
env:
REDIS_RUNNING: "true"
USER_NAME: rqueue
TERM: dumb
JVM_OPTS: -Xmx8g
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: gradle
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Run unit tests
run: ./gradlew codeCoverageReport -DincludeTags=unit
- name: Collect logs
if: always()
run: |
mkdir -p log
test -f rqueue-core/log/monitor.log && cp rqueue-core/log/monitor.log log/core-monitor.log
test -f rqueue-core/log/test.log && cp rqueue-core/log/test.log log/core-test.log
test -f rqueue-spring-boot-starter/log/monitor.log && cp rqueue-spring-boot-starter/log/monitor.log log/boot-monitor.log
test -f rqueue-spring-boot-starter/log/test.log && cp rqueue-spring-boot-starter/log/test.log log/boot-test.log
test -f rqueue-spring/log/monitor.log && cp rqueue-spring/log/monitor.log log/spring-monitor.log
test -f rqueue-spring/log/test.log && cp rqueue-spring/log/test.log log/spring-test.log
- name: Upload logs
if: always()
uses: actions/upload-artifact@v4
with:
name: unit-test-logs
path: log/
if-no-files-found: ignore
- name: Upload JUnit reports
if: always()
uses: actions/upload-artifact@v4
with:
name: unit-test-results
path: |
rqueue-spring-boot-starter/build/reports/junit/xml
rqueue-spring/build/reports/junit/xml
rqueue-core/build/reports/junit/xml
if-no-files-found: ignore
producer_only_test:
needs: unit_test
runs-on: ubuntu-latest
env:
REDIS_RUNNING: "true"
USER_NAME: rqueue
TERM: dumb
JVM_OPTS: -Xmx8g
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: gradle
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Install Redis
run: |
sudo apt-get update
sudo apt-get install -y redis-server
redis-cli --version
- name: Run producer-only tests
run: ./gradlew codeCoverageReport -DincludeTags=producerOnly
- name: Collect logs
if: always()
run: |
mkdir -p log
test -f rqueue-core/log/monitor.log && cp rqueue-core/log/monitor.log log/core-monitor.log
test -f rqueue-core/log/test.log && cp rqueue-core/log/test.log log/core-test.log
test -f rqueue-spring-boot-starter/log/monitor.log && cp rqueue-spring-boot-starter/log/monitor.log log/boot-monitor.log
test -f rqueue-spring-boot-starter/log/test.log && cp rqueue-spring-boot-starter/log/test.log log/boot-test.log
test -f rqueue-spring/log/monitor.log && cp rqueue-spring/log/monitor.log log/spring-monitor.log
test -f rqueue-spring/log/test.log && cp rqueue-spring/log/test.log log/spring-test.log
- name: Upload logs
if: always()
uses: actions/upload-artifact@v4
with:
name: producer-test-logs
path: log/
if-no-files-found: ignore
- name: Upload JUnit reports
if: always()
uses: actions/upload-artifact@v4
with:
name: producer-test-results
path: |
rqueue-spring-boot-starter/build/reports/junit/xml
rqueue-spring/build/reports/junit/xml
rqueue-core/build/reports/junit/xml
if-no-files-found: ignore
integration_test:
needs: producer_only_test
runs-on: ubuntu-latest
env:
REDIS_RUNNING: "true"
USER_NAME: rqueue
TERM: dumb
JVM_OPTS: -Xmx8g
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: gradle
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Install Redis
run: |
sudo apt-get update
sudo apt-get install -y redis-server
redis-cli --version
- name: Run integration tests
run: ./gradlew codeCoverageReport -DincludeTags=integration -DexcludeTags=redisCluster,producerOnly,local
- name: Collect logs
if: always()
run: |
mkdir -p log
test -f rqueue-core/log/monitor.log && cp rqueue-core/log/monitor.log log/core-monitor.log
test -f rqueue-core/log/test.log && cp rqueue-core/log/test.log log/core-test.log
test -f rqueue-spring-boot-starter/log/monitor.log && cp rqueue-spring-boot-starter/log/monitor.log log/boot-monitor.log
test -f rqueue-spring-boot-starter/log/test.log && cp rqueue-spring-boot-starter/log/test.log log/boot-test.log
test -f rqueue-spring/log/monitor.log && cp rqueue-spring/log/monitor.log log/spring-monitor.log
test -f rqueue-spring/log/test.log && cp rqueue-spring/log/test.log log/spring-test.log
- name: Upload logs
if: always()
uses: actions/upload-artifact@v4
with:
name: integration-test-logs
path: log/
if-no-files-found: ignore
- name: Upload JUnit reports
if: always()
uses: actions/upload-artifact@v4
with:
name: integration-test-results
path: |
rqueue-spring-boot-starter/build/reports/junit/xml
rqueue-spring/build/reports/junit/xml
rqueue-core/build/reports/junit/xml
if-no-files-found: ignore
redis_cluster_test:
needs: integration_test
runs-on: ubuntu-latest
env:
REDIS_RUNNING: "true"
USER_NAME: rqueue
TERM: dumb
JVM_OPTS: -Xmx8g
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: gradle
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Install Redis
run: |
sudo apt-get update
sudo apt-get install -y redis-server
redis-cli --version
- name: Setup Redis Cluster
run: |
mkdir 9000 9001 9002 9003 9004 9005
printf "port 9000 \ncluster-enabled yes \ncluster-config-file nodes.conf \ncluster-node-timeout 5000 \nappendonly yes" >> 9000/redis.conf
printf "port 9001 \ncluster-enabled yes \ncluster-config-file nodes.conf \ncluster-node-timeout 5000 \nappendonly yes" >> 9001/redis.conf
printf "port 9002 \ncluster-enabled yes \ncluster-config-file nodes.conf \ncluster-node-timeout 5000 \nappendonly yes" >> 9002/redis.conf
printf "port 9003 \ncluster-enabled yes \ncluster-config-file nodes.conf \ncluster-node-timeout 5000 \nappendonly yes" >> 9003/redis.conf
printf "port 9004 \ncluster-enabled yes \ncluster-config-file nodes.conf \ncluster-node-timeout 5000 \nappendonly yes" >> 9004/redis.conf
printf "port 9005 \ncluster-enabled yes \ncluster-config-file nodes.conf \ncluster-node-timeout 5000 \nappendonly yes" >> 9005/redis.conf
(cd 9000 && redis-server ./redis.conf) &
(cd 9001 && redis-server ./redis.conf) &
(cd 9002 && redis-server ./redis.conf) &
(cd 9003 && redis-server ./redis.conf) &
(cd 9004 && redis-server ./redis.conf) &
(cd 9005 && redis-server ./redis.conf) &
sleep 30
yes yes | redis-cli --cluster create 127.0.0.1:9000 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005 --cluster-replicas 1
- name: Run Redis cluster tests
run: ./gradlew codeCoverageReport -DincludeTags=redisCluster
- name: Collect logs
if: always()
run: |
mkdir -p log
test -f rqueue-core/log/monitor.log && cp rqueue-core/log/monitor.log log/core-monitor.log
test -f rqueue-core/log/test.log && cp rqueue-core/log/test.log log/core-test.log
test -f rqueue-spring-boot-starter/log/monitor.log && cp rqueue-spring-boot-starter/log/monitor.log log/boot-monitor.log
test -f rqueue-spring-boot-starter/log/test.log && cp rqueue-spring-boot-starter/log/test.log log/boot-test.log
test -f rqueue-spring/log/monitor.log && cp rqueue-spring/log/monitor.log log/spring-monitor.log
test -f rqueue-spring/log/test.log && cp rqueue-spring/log/test.log log/spring-test.log
- name: Upload logs
if: always()
uses: actions/upload-artifact@v4
with:
name: redis-cluster-test-logs
path: log/
if-no-files-found: ignore
- name: Upload JUnit reports
if: always()
uses: actions/upload-artifact@v4
with:
name: redis-cluster-test-results
path: |
rqueue-spring-boot-starter/build/reports/junit/xml
rqueue-spring/build/reports/junit/xml
rqueue-core/build/reports/junit/xml
if-no-files-found: ignore
reactive_integration_test:
needs: redis_cluster_test
runs-on: ubuntu-latest
env:
REDIS_RUNNING: "true"
USER_NAME: rqueue
TERM: dumb
JVM_OPTS: -Xmx8g
RQUEUE_REACTIVE_ENABLED: "true"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: gradle
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Install Redis
run: |
sudo apt-get update
sudo apt-get install -y redis-server
redis-cli --version
- name: Run reactive integration tests
run: ./gradlew codeCoverageReport -DincludeTags=integration -DexcludeTags=redisCluster,producerOnly,local
- name: Collect logs
if: always()
run: |
mkdir -p log
test -f rqueue-core/log/monitor.log && cp rqueue-core/log/monitor.log log/core-monitor.log
test -f rqueue-core/log/test.log && cp rqueue-core/log/test.log log/core-test.log
test -f rqueue-spring-boot-starter/log/monitor.log && cp rqueue-spring-boot-starter/log/monitor.log log/boot-monitor.log
test -f rqueue-spring-boot-starter/log/test.log && cp rqueue-spring-boot-starter/log/test.log log/boot-test.log
test -f rqueue-spring/log/monitor.log && cp rqueue-spring/log/monitor.log log/spring-monitor.log
test -f rqueue-spring/log/test.log && cp rqueue-spring/log/test.log log/spring-test.log
- name: Upload logs
if: always()
uses: actions/upload-artifact@v4
with:
name: reactive-integration-test-logs
path: log/
if-no-files-found: ignore
- name: Upload JUnit reports
if: always()
uses: actions/upload-artifact@v4
with:
name: reactive-integration-test-results
path: |
rqueue-spring-boot-starter/build/reports/junit/xml
rqueue-spring/build/reports/junit/xml
rqueue-core/build/reports/junit/xml
if-no-files-found: ignore
report_code_coverage:
needs: reactive_integration_test
if: github.event_name == 'push'
runs-on: ubuntu-latest
env:
REDIS_RUNNING: "true"
USER_NAME: rqueue
TERM: dumb
JVM_OPTS: -Xmx8g
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: gradle
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Generate coverage report
run: ./gradlew coverallsJacoco