Skip to content

Update CcmBridge.java #23

Update CcmBridge.java

Update CcmBridge.java #23

Workflow file for this run

name: Run Tests
on:
push:
pull_request:
workflow_dispatch: # allow manual trigger from Actions page
permissions:
contents: read
checks: write
pull-requests: write
jobs:
build-and-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java: ['8', '11', '17'] # JDK used for TEST phase
SERVER_VERSION: ['3.11', '4.0', '4.1', '5.0'] # Cassandra minor versions
steps:
- name: Checkout
uses: actions/checkout@v4
# ---- Python for ccm ----
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: '3.9'
- name: Install ccm
run: |
python -m pip install --upgrade pip
git clone --depth 1 --single-branch -b cassandra-test https://github.com/apache/cassandra-ccm.git
pip install -e ./cassandra-ccm
# ---- Maven ----
- name: Set up Maven 3.8.8
uses: stCarolas/setup-maven@v5
with:
maven-version: '3.8.8'
# ---- Install required Zulu JDKs (8/11/17) and capture their homes ----
- name: Install Zulu 8
id: z8
uses: actions/setup-java@v5
with:
distribution: zulu
java-version: '8'
cache: maven
- name: Install Zulu 11
id: z11
uses: actions/setup-java@v5
with:
distribution: zulu
java-version: '11'
- name: Install Zulu 17
id: z17
uses: actions/setup-java@v5
with:
distribution: zulu
java-version: '17'
- name: Export JAVA*_HOME variables
run: |
echo "JAVA8_HOME=${{ steps.z8.outputs.path }}" >> "$GITHUB_ENV"
echo "JAVA11_HOME=${{ steps.z11.outputs.path }}" >> "$GITHUB_ENV"
echo "JAVA17_HOME=${{ steps.z17.outputs.path }}" >> "$GITHUB_ENV"
echo "JAVA_HOME=${{ steps.z8.outputs.path }}" >> "$GITHUB_ENV"
# ---- Print env vars before build ----
- name: Print environment
run: printenv | sort
# ---- Build once with Java 8 (skip tests) ----
- name: Switch to Zulu 8 for build
uses: actions/setup-java@v5
with:
distribution: zulu
java-version: '8'
cache: maven
- name: Build (Java 8, skip tests)
run: mvn -B -V install -DskipTests -Dmaven.javadoc.skip=true
# ---- Test using matrix JDK and resolved latest patch for selected minor ----
- name: Switch to Zulu ${{ matrix.java }} for tests
uses: actions/setup-java@v5
with:
distribution: zulu
java-version: ${{ matrix.java }}
cache: maven
- name: Resolve Cassandra latest patch version
id: cassandra
env:
SERVER_VERSION: ${{ matrix.SERVER_VERSION }}
run: |
PATCH_SERVER_VERSION=$(
curl -s https://downloads.apache.org/cassandra/ \
| grep -oP '(?<=href=")[0-9]+\.[0-9]+\.[0-9]+(?=)' \
| sort -rV \
| uniq -w 3 \
| grep "^${SERVER_VERSION}\."
)
echo "Resolved Cassandra ${SERVER_VERSION}.x -> ${PATCH_SERVER_VERSION}"
echo "PATCH_SERVER_VERSION=$PATCH_SERVER_VERSION" >> "$GITHUB_ENV"
- name: Run tests
env:
TEST_JAVA_MAJOR_VERSION: ${{ matrix.java }}
run: |
echo "JAVA8_HOME=$JAVA8_HOME"
echo "JAVA11_HOME=$JAVA11_HOME"
echo "JAVA17_HOME=$JAVA17_HOME"
echo "Active JAVA_HOME=$JAVA_HOME"
echo "Resolved PATCH_SERVER_VERSION=$PATCH_SERVER_VERSION"
mvn -B -V verify -T 1 \
-Ptest-jdk-${TEST_JAVA_MAJOR_VERSION} \
-DtestJavaHome="$JAVA_HOME" \
-Dccm.version="${PATCH_SERVER_VERSION}" \
-Dccm.dse=false \
-Dmaven.javadoc.skip=true \
-Dsurefire.reportFormat=xml \
-Dsurefire.useFile=true
# Publish results (skip on forked PRs to avoid 403 on check-runs)
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
if: ${{ !cancelled() }}
with:
files: |
**/target/surefire-reports/TEST-*.xml
**/target/failsafe-reports/TEST-*.xml
check_name: "Test Results (Cassandra ${{ matrix.SERVER_VERSION }}, JDK ${{ matrix.java }})"
# ----- Upload ALL startup* logs from ~/.ccm on failure -----
# Upload ALL startup* logs from either ~/.ccm or /tmp/ccm* (on failure; switch to always() if you want them every run)
- name: Upload CCM startup logs artifact
if: failure()
uses: actions/upload-artifact@v4
with:
name: ccm-startup-logs-${{ matrix.SERVER_VERSION }}-jdk${{ matrix.java }}
path: |
/tmp/ccm*/**/*.log
if-no-files-found: warn