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]
