update code to use java 21 #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |