Changeset: 6d3c9fa27dee for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/6d3c9fa27dee
Modified Files:
        Makefile
        src/main/resources/META-INF/release.txt
        src/test/java/JDBC_API_Tester.java
        src/test/java/org/monetdb/mcl/net/ControlTester.java
        src/test/resources/org/monetdb/mcl/net/javaspecific.md
        src/test/resources/org/monetdb/mcl/net/tests.md
Branch: default
Log Message:

Merge 'mvn' into 'default'


diffs (truncated from 9213 to 300 lines):

diff --git a/.github/workflows/jdkversions.yml 
b/.github/workflows/jdkversions.yml
deleted file mode 100644
--- a/.github/workflows/jdkversions.yml
+++ /dev/null
@@ -1,64 +0,0 @@
-# This workflow will build a Java project with Maven
-# For more information see: 
https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
-# or https://github.com/actions/checkout  and  
https://github.com/actions/setup-java
-
-# Note: JDK 8, 11, 17, 21 and 25 are Long-Term Support (LTS) releases and 
should always be tested against
-# Note: Oracle JDK is not supported on GitHub actions for JDK 8 and 11, so 
they are excluded
-
-name: Test with various JDK versions
-
-on: [push]
-
-jobs:
-  test:
-    runs-on: ubuntu-latest
-
-    strategy:
-      fail-fast: false
-      matrix:
-        distribution:
-          - liberica
-          - oracle
-        java_version:
-          - 8
-          - 11
-          - 17
-          - 21
-          - 25
-          - 26
-        exclude:
-          - distribution: oracle
-            java_version: 8
-          - distribution: oracle
-            java_version: 11
-
-    services:
-      monetdb_container:
-        image: monetdb/monetdb:latest
-        env:
-          MDB_DAEMON_PASS: monetdb
-          MDB_DB_ADMIN_PASS: monetdb
-        ports:
-          - 50000:50000
-
-    steps:
-    - uses: actions/checkout@v6
-
-    - name: Set up JDK
-      uses: actions/setup-java@v5
-      with:
-        java-version: ${{ matrix.java_version }}
-        distribution: ${{ matrix.distribution }}
-
-    - name: Build
-      run: make
-
-    - name: Create jar symlink
-      run: ln -s monetdb-jdbc*.jar monetdb-jdbc.jar
-      working-directory: jars
-
-    - name: Run JDBC_API_Tester
-      run: java -cp jars/monetdb-jdbc.jar:jars/jdbctests.jar JDBC_API_Tester 
'jdbc:monetdb://localhost:50000/monetdb?user=monetdb&password=monetdb'
-
-    - name: Run OnClientTester
-      run: java -cp jars/monetdb-jdbc.jar:jars/jdbctests.jar OnClientTester 
'jdbc:monetdb://localhost:50000/monetdb?user=monetdb&password=monetdb' -v
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
deleted file mode 100644
--- a/.github/workflows/macos.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-# This workflow will build a Java project with Maven
-# For more information see: 
https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
-# or https://github.com/actions/checkout  and  
https://github.com/actions/setup-java
-
-name: MacOS
-
-on: [push]
-
-jobs:
-  build:
-
-    runs-on: macos-latest
-
-#    services:
-#      monetdb_container:
-#        image: monetdb/monetdb:latest
-#        env:
-#          MDB_DAEMON_PASS: monetdb
-#          MDB_DB_ADMIN_PASS: monetdb
-#        ports:
-#          - 50000:50000
-# Error: docker: command not found
-
-    steps:
-    - uses: actions/checkout@v6
-
-    - name: Set up JDK
-      uses: actions/setup-java@v5
-      with:
-        java-version: 11
-        distribution: liberica
-
-    - name: Build
-      run: make
-
-    - name: Create jar symlink
-      run: ln -s monetdb-jdbc*.jar monetdb-jdbc.jar
-      working-directory: jars
-
-# running java test programs fails, due to failed connection. Probably the 
server was not started. Assistance needed.
-#    - name: Run JDBC_API_Tester
-#      run: java -cp jars/monetdb-jdbc.jar:jars/jdbctests.jar JDBC_API_Tester 
'jdbc:monetdb://localhost:50000/monetdb?user=monetdb&password=monetdb'
-
-#    - name: Run OnClientTester
-#      run: java -cp jars/monetdb-jdbc.jar:jars/jdbctests.jar OnClientTester 
'jdbc:monetdb://localhost:50000/monetdb?user=monetdb&password=monetdb' -v
diff --git a/.github/workflows/monetdbversions.yml 
b/.github/workflows/monetdbversions.yml
deleted file mode 100644
--- a/.github/workflows/monetdbversions.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-# This workflow will build a Java project with Maven
-# For more information see: 
https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
-# or https://github.com/actions/checkout  and  
https://github.com/actions/setup-java
-
-# See https://hub.docker.com/r/monetdb/monetdb/tags for docker image names of 
official MonetDB releases
-# See https://hub.docker.com/r/monetdb/dev-builds/tags for docker image name 
of default branch
-
-name: Test with various MonetDB versions
-
-on: [push]
-
-jobs:
-  test:
-    runs-on: ubuntu-latest
-
-    strategy:
-      fail-fast: false
-      matrix:
-        monetdbversion:
-          - "monetdb/dev-builds:default"
-          - "monetdb/monetdb:latest"
-          - "monetdb/monetdb:Dec2025-SP2"
-          - "monetdb/monetdb:Dec2025-SP1"
-          - "monetdb/monetdb:Mar2025-SP3"
-          - "monetdb/monetdb:Aug2024-SP2"
-          - "monetdb/monetdb:Dec2023-SP4"
-          - "monetdb/monetdb:Jun2023-SP3"
-          - "monetdb/monetdb:Sep2022-SP3"
-#          - "monetdb/monetdb:Jan2022-SP4"
-#          - "monetdb/monetdb:Jul2021-SP2"
-
-    services:
-      monetdb_container:
-        image: ${{ matrix.monetdbversion }}
-        env:
-          MDB_DAEMON_PASS: monetdb
-          MDB_DB_ADMIN_PASS: monetdb
-        ports:
-          - 50000:50000
-
-    steps:
-    - uses: actions/checkout@v6
-
-    - name: Set up JDK
-      uses: actions/setup-java@v5
-      with:
-        java-version: 11
-        distribution: liberica
-
-    - name: Build
-      run: make
-
-    - name: Create jar symlinks
-      run: |
-        ln -sv monetdb-jdbc-*.jre*.jar monetdb-jdbc.jar
-        ln -sv merocontrol.*.jar merocontrol.jar
-      working-directory: jars
-
-    - name: Run JDBC_API_Tester
-      run: java -cp jars/monetdb-jdbc.jar:jars/jdbctests.jar JDBC_API_Tester 
'jdbc:monetdb://localhost:50000/monetdb?user=monetdb&password=monetdb'
-
-    - name: Run OnClientTester
-      run: java -cp jars/monetdb-jdbc.jar:jars/jdbctests.jar OnClientTester 
'jdbc:monetdb://localhost:50000/monetdb?user=monetdb&password=monetdb' -v
-
-    - name: Run ControlTester
-      run: java -cp 
jars/monetdb-jdbc.jar:jars/merocontrol.jar:jars/jdbctests.jar ControlTester 
localhost monetdb
diff --git a/.github/workflows/testjars.yml b/.github/workflows/testjars.yml
new file mode 100644
--- /dev/null
+++ b/.github/workflows/testjars.yml
@@ -0,0 +1,213 @@
+# GitHub Actions workflow for testing monetdb-jdbc
+#
+# This workflow contains three jobs: 'build_jar', 'platforms' and
+# 'monets'. The latter two expand into a number of variants
+# for different operating systems, JVM versions and MonetDB versions.
+#
+# The 'build_jar' job builds the jdbc jar and the tests jar on Linux.
+# All other jobs depend on the result.
+
+name: test jars
+
+on:
+  push:
+
+jobs:
+
+  # This job builds the jars for use by the other jobs.
+  # It runs a subset of the test suite so we can fail the run early if there
+  # are obvious failures.
+  build_jar:
+    runs-on: ubuntu-latest
+    env:
+      MONETDB_TLSTESTER: localhost:4300
+    steps:
+
+      - uses: actions/checkout@v6
+
+      # Skip all other steps if pom.xml and src/ haven't changed.
+      # This is useful while we tweak the test jobs that follow later.
+      #
+      # If necessary you can increment the xyz component of the cache
+      # key below to invalidate any existing cache and force a rebuild.
+      - name: Cache the whole job
+        uses: actions/cache@v5
+        id: cache-all
+        with:
+          path: jars
+          key: xyz6-${{ runner.os }}-${{ hashFiles('src', 'pom.xml') }}
+
+      # We start the containers manually rather than using GitHub's Service
+      # Container feature because we don't want to spend time starting the
+      # containers if step 'cache-all' above already has everything cached.
+      - name: Start containers
+        if: (!steps.cache-all.outputs.cache-hit)
+        run: |
+          docker run -d -e MDB_DB_ADMIN_PASS=monetdb -e 
MDB_CREATE_DBS=testjdbc -p 50000:50000 docker.io/monetdb/dev-builds:Dec2025
+          docker run -d -e TLSTEST_DOMAIN=localhost -p 4300-4350:4300-4350 
docker.io/monetdb/tlstester:0.3.1
+
+      # Separately cache everything Maven needs to download while building and
+      # testing, because that usually doesn't change between runs.
+      #
+      # The 'restore-keys' setting allows this step to restore the cache for a
+      # different version pom.xml if no exact match is available. This may 
still
+      # reduce the amount of items that Maven needs to download.
+      - name: Cache Maven downloads
+        if: (!steps.cache-all.outputs.cache-hit)
+        uses: actions/cache@v5
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: |
+            ${{ runner.os }}-maven-
+
+      - uses: actions/setup-java@v5
+        if: (!steps.cache-all.outputs.cache-hit)
+        with:
+          java-version: 24
+          distribution: oracle
+
+      - name: Build and test
+        if: (!steps.cache-all.outputs.cache-hit)
+        run: ./mvnw --no-transfer-progress package -Dgroups='!slow'
+
+      # Store the jars we built so the other jobs can pick them up.
+      - uses: actions/upload-artifact@v7
+        with:
+          name: jars
+          path: jars
+          retention-days: 1
+
+
+
+
+  # This job tests the jars on various combinations of OS and JDK version.
+  #
+  # We use the latest MonetDB version because the MonetDB/install-monetdb 
Action
+  # can only install fairly recent versions on MacOS (this is due to Homebrew).
+  platforms:
+    needs: build_jar
+    strategy:
+      fail-fast: false
+      matrix:
+        os:
+          - ubuntu-latest
+          - macos-latest
+          - windows-latest
+        java:    # do we really need to test all these versions?
+          - 8
+          - 11
+          - 17
+          - 21
+          - 25
+          - 26
+        monetdbversion:    # need this to force Dec2025-SP2 as Latest == 
Dec2025-SP3 is not available on macOS
+          - Dec2025-SP2
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to