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
154 changes: 43 additions & 111 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,127 +18,56 @@ permissions: read-all

jobs:
tests:
# Each job runs on JDK ${{ matrix.java }} and compiles to the matching
# bytecode target (-Djava.version=${{ matrix.java }}). Runtime and target are
# paired, so we test exactly: JDK 17 -> target 17 and JDK 21 -> target 21.
name: "${{ matrix.suite.name }} - Java ${{ matrix.java }}"
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
include:
# Java 17 tests
- name: "Unit tests - Java 17"
java_version: 17
test_suite: 'test -Djava.version=17 jacoco:report'
- name: "Style check - Java 17"
java_version: 17
test_suite: 'test-compile -Djava.version=17 com.mycila:license-maven-plugin:check pmd:pmd pmd:cpd pmd:check pmd:cpd-check javadoc:jar'
- name: "Standalone integration 4.1 - Java 17"
java_version: 17
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=4.1 -Djava.version=17 -DskipUTs'
java: [17, 21]
suite:
- name: "Unit tests"
goals: 'test jacoco:report'
- name: "Style check"
goals: 'test-compile com.mycila:license-maven-plugin:check pmd:pmd pmd:cpd pmd:check pmd:cpd-check javadoc:jar'
- name: "Standalone integration 4.1"
goals: 'verify -P standalone-integration-tests -Dit.cassandra.version=4.1 -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Standalone integration 5.0 - Java 17"
java_version: 17
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -DskipUTs'
- name: "Standalone integration 5.0"
goals: 'verify -P standalone-integration-tests -Dit.cassandra.version=5.0 -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Python integration - Java 17"
java_version: 17
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -DskipUTs'
- name: "Python integration"
goals: 'verify -P python-integration-tests -Dit.cassandra.version=5.0 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Topology integration - Java 17"
java_version: 17
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -DskipUTs'
- name: "Topology integration"
goals: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "DatacenterAware Multi-Agent integration tests - Java 17"
java_version: 17
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -DskipUTs'
- name: "DatacenterAware Multi-Agent integration tests"
goals: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"

# Java 21 tests
- name: "Unit tests - Java 21"
java_version: 21
test_suite: 'test -Dnet.bytebuddy.experimental=true -Djava.version=21 jacoco:report'
- name: "Style check - Java 21"
java_version: 21
test_suite: 'test-compile -Djava.version=21 com.mycila:license-maven-plugin:check pmd:pmd pmd:cpd pmd:check pmd:cpd-check javadoc:jar'
- name: "Standalone integration 4.1 - Java 21"
java_version: 21
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=4.1 -Djava.version=21 -DskipUTs'
- name: "Jolokia Standalone integration 5.0"
goals: 'verify -P standalone-integration-tests -Dit.cassandra.version=5.0 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Standalone integration 5.0 - Java 21"
java_version: 21
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Python integration - Java 21"
java_version: 21
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Topology integration - Java 21"
java_version: 21
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "DatacenterAware Multi-Agent integration tests - Java 21"
java_version: 21
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -DskipUTs'
artifacts_dir: "ecchronos-binary/target"

# Java 17 Jolokia tests
- name: "Jolokia Standalone integration 5.0 - Java 17"
java_version: 17
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Jolokia Python integration - Java 17"
java_version: 17
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Python integration - Java 17 - PEM"
java_version: 17
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Topology integration - Java 17"
java_version: 17
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Topology integration - Java 17 - PEM"
java_version: 17
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia DatacenterAware Multi-Agent integration tests - Java 17"
java_version: 17
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia DatacenterAware Multi-Agent integration tests - Java 17 - PEM"
java_version: 17
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0 -Djava.version=17 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"


# Java 21 Jolokia tests
- name: "Jolokia Standalone integration 5.0 - Java 21"
java_version: 21
test_suite: 'verify -P standalone-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "standalone-integration/target"
- name: "Jolokia Python integration - Java 21"
java_version: 21
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -Dit.jolokia.enabled=true -DskipUTs'
- name: "Jolokia Python integration"
goals: 'verify -P python-integration-tests -Dit.cassandra.version=5.0 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Python integration - Java 21 - PEM"
java_version: 21
test_suite: 'verify -P python-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
- name: "Jolokia Python integration - PEM"
goals: 'verify -P python-integration-tests -Dit.cassandra.version=5.0 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Topology integration - Java 21"
java_version: 21
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -Dit.jolokia.enabled=true -DskipUTs'
- name: "Jolokia Topology integration"
goals: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia Topology integration - Java 21 - PEM"
java_version: 21
test_suite: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
- name: "Jolokia Topology integration - PEM"
goals: 'verify -P topology-integration-tests -Dit.cassandra.version=5.0 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia DatacenterAware Multi-Agent integration tests - Java 21"
java_version: 21
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -Dit.jolokia.enabled=true -DskipUTs'
- name: "Jolokia DatacenterAware Multi-Agent integration tests"
goals: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0 -Dit.jolokia.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"
- name: "Jolokia DatacenterAware Multi-Agent integration tests - Java 21 - PEM"
java_version: 21
test_suite: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0 -Djava.version=21 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
- name: "Jolokia DatacenterAware Multi-Agent integration tests - PEM"
goals: 'verify -P multi-agent-datacenter-aware-integration-tests -Dit.cassandra.version=5.0 -Dit.jolokia.enabled=true -Dit.jmx.pem.enabled=true -DskipUTs'
artifacts_dir: "ecchronos-binary/target"

steps:
Expand All @@ -151,10 +80,10 @@ jobs:
restore-keys: |
build-${{ runner.os }}-maven-

- name: Set up JDK ${{ matrix.java_version }}
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
java-version: ${{ matrix.java_version }}
java-version: ${{ matrix.java }}
distribution: 'temurin'

- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand All @@ -174,7 +103,7 @@ jobs:
run: mvn install -Pbuild-cassandra-test-jar -DskipTests=true

- name: Set Cassandra memory limits for topology tests
if: contains(matrix.name, 'Topology')
if: contains(matrix.suite.name, 'Topology')
run: |
echo "MAX_HEAP_SIZE=1536M" >> $GITHUB_ENV
echo "HEAP_NEWSIZE=200M" >> $GITHUB_ENV
Expand All @@ -184,16 +113,19 @@ jobs:
with:
version: '2.31.0'

- run: mvn $TEST_SUITE -B
# Runs on JDK ${{ matrix.java }}; -Djava.version sets the matching bytecode
# target. net.bytebuddy.experimental=true lets Mockito/ByteBuddy run on JDK 21.
- run: mvn $MAVEN_GOALS -Djava.version=$JAVA_VERSION -Dnet.bytebuddy.experimental=true -B
id: tests
env:
TEST_SUITE: ${{ matrix.test_suite }}
MAVEN_GOALS: ${{ matrix.suite.goals }}
JAVA_VERSION: ${{ matrix.java }}

- name: Upload artifacts
if: ${{ failure() && steps.tests.conclusion == 'failure' }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: ${{ matrix.name }}-ecchronos-logs
name: ${{ matrix.suite.name }} - Java ${{ matrix.java }}-ecchronos-logs
path: ./ecchronos-binary/target/test/ecchronos-binary-agent-*/logs/
if-no-files-found: 'ignore'

Expand Down
3 changes: 1 addition & 2 deletions connection/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,7 @@
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<release>${maven.compiler.release}</release>
</configuration>
</plugin>
</plugins>
Expand Down
3 changes: 1 addition & 2 deletions ecchronos-binary/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@
<description>Packaging of ecChronos as a standalone application</description>
<name>EcChronos Binary</name>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.release>${java.version}</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Expand Down
6 changes: 2 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,7 @@
<properties>
<!-- Java -->
<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.release>${java.version}</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<!-- Spring boot -->
Expand Down Expand Up @@ -717,8 +716,7 @@
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
<source>${java.version}</source>
<target>${java.version}</target>
<release>${java.version}</release>
</configuration>
</plugin>

Expand Down
3 changes: 1 addition & 2 deletions standalone-integration/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,7 @@
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<release>${java.version}</release>
<generatedSourcesDirectory>${project.build.directory}/generated-sources/</generatedSourcesDirectory>
</configuration>
</plugin>
Expand Down
Loading