Skip to content

Support geospatial statistics and bounding box metadata #330

Support geospatial statistics and bounding box metadata

Support geospatial statistics and bounding box metadata #330

Workflow file for this run

#
# Copyright 2021 The original authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: Build
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 'Check out repository'
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 — https://github.com/actions/checkout/releases/tag/v6
with:
submodules: 'true'
- name: 'Set up Java'
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 — https://github.com/actions/setup-java/releases/tag/v5
with:
java-version: '25'
distribution: 'temurin'
cache: 'maven'
- name: 'Check for legacy JavaDoc comments'
run: |
if grep -rn '^\s*/\*\*' --include='*.java' .; then
echo "::error::Found legacy /** */ JavaDoc comments. Use /// Markdown syntax (JEP 467) instead."
exit 1
fi
- name: 'Build and install modules'
run: ./mvnw -B clean install
- name: 'Upload built artifacts'
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 — https://github.com/actions/upload-artifact/releases/tag/v7
with:
name: maven-repo
path: ~/.m2/repository/dev/hardwood/
retention-days: 1
javadoc:
needs: build
runs-on: ubuntu-latest
steps:
- name: 'Check out repository'
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 — https://github.com/actions/checkout/releases/tag/v6
with:
submodules: 'true'
- name: 'Set up Java'
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 — https://github.com/actions/setup-java/releases/tag/v5
with:
java-version: '25'
distribution: 'temurin'
cache: 'maven'
- name: 'Download built artifacts'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 — https://github.com/actions/download-artifact/releases/tag/v8
with:
name: maven-repo
path: ~/.m2/repository/dev/hardwood/
- name: 'Generate Javadoc'
run: ./mvnw -B javadoc:javadoc
integration-tests:
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
include:
- java: '21'
install_libdeflate: false
enable_incubating: false
name: 'Java 21'
- java: '25'
install_libdeflate: true
enable_incubating: false
name: 'Java 25'
- java: '25'
install_libdeflate: true
enable_incubating: true
name: 'Java 25 (incubating)'
name: Integration Tests - ${{ matrix.name }}
steps:
- name: 'Check out repository'
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 — https://github.com/actions/checkout/releases/tag/v6
with:
submodules: 'true'
- name: 'Set up Java'
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 — https://github.com/actions/setup-java/releases/tag/v5
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: 'maven'
- name: 'Install libdeflate'
if: ${{ matrix.install_libdeflate }}
run: sudo apt-get update && sudo apt-get install -y libdeflate-dev
- name: 'Download built artifacts'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 — https://github.com/actions/download-artifact/releases/tag/v8
with:
name: maven-repo
path: ~/.m2/repository/dev/hardwood/
- name: 'Run integration tests (Java 21)'
if: ${{ !matrix.install_libdeflate && !matrix.enable_incubating }}
run: ./mvnw -B verify -pl :hardwood-integration-test
- name: 'Run integration tests (with libdeflate)'
if: ${{ matrix.install_libdeflate && !matrix.enable_incubating }}
run: ./mvnw -B verify -pl :hardwood-integration-test -Dlibdeflate.required=true -DargLine="--enable-native-access=ALL-UNNAMED"
- name: 'Run integration tests (with incubating APIs)'
if: ${{ matrix.install_libdeflate && matrix.enable_incubating }}
run: ./mvnw -B verify -pl :hardwood-integration-test -Dlibdeflate.required=true -DargLine="--enable-native-access=ALL-UNNAMED --add-modules jdk.incubator.vector"
api-change-report:
if: github.event_name == 'push'
needs: build
runs-on: ubuntu-latest
steps:
- name: 'Check out repository'
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 — https://github.com/actions/checkout/releases/tag/v6
with:
submodules: 'true'
- name: 'Set up Java'
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 — https://github.com/actions/setup-java/releases/tag/v5
with:
java-version: '25'
distribution: 'temurin'
cache: 'maven'
- name: 'Download built artifacts'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 — https://github.com/actions/download-artifact/releases/tag/v8
with:
name: maven-repo
path: ~/.m2/repository/dev/hardwood/
- name: 'Generate API change report'
run: |
JAPICMP_OLD_VERSION="$(sed -n 's/^Latest version: \([^,]*\),.*/\1/p' README.md)"
echo "Comparing against ${JAPICMP_OLD_VERSION}"
./mvnw -ntp -B package japicmp:cmp -pl :hardwood-core -DskipTests -Djapicmp.oldVersion="${JAPICMP_OLD_VERSION}"
- name: 'Upload API change report'
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 — https://github.com/actions/upload-artifact/releases/tag/v7
with:
name: japicmp-report
path: core/target/japicmp/
performance-tests:
needs: build
runs-on: ubuntu-latest
steps:
- name: 'Check out repository'
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 — https://github.com/actions/checkout/releases/tag/v6
with:
submodules: 'true'
- name: 'Set up Java'
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 — https://github.com/actions/setup-java/releases/tag/v5
with:
java-version: '25'
distribution: 'temurin'
cache: 'maven'
- name: 'Download built artifacts'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 — https://github.com/actions/download-artifact/releases/tag/v8
with:
name: maven-repo
path: ~/.m2/repository/dev/hardwood/
- name: 'Cache taxi data'
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 — https://github.com/actions/cache/releases/tag/v5
with:
path: performance-testing/test-data-setup/target/tlc-trip-record-data/
key: taxi-data-2023-01-to-2025-12
- name: 'Run performance tests (with SIMD)'
run: ./mvnw -B verify -Pperformance-test -pl :hardwood-performance-testing -amd -Dperf.start=2023-01 -Dperf.end=2025-12
env:
MAVEN_OPTS: '--add-modules jdk.incubator.vector'
# Verify the native CLI build on PRs (Linux only, no release)
native-build-check:
if: github.event_name == 'pull_request'
needs: build
name: 'Verify native CLI build'
runs-on: ubuntu-latest
steps:
- name: 'Check out repository'
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 — https://github.com/actions/checkout/releases/tag/v6
with:
submodules: 'true'
- name: 'Set up Graal'
uses: graalvm/setup-graalvm@03e8abf916fd0e281b2efe7b2da3378bb0a1d085 # v1 — https://github.com/graalvm/setup-graalvm/releases/tag/v1
with:
java-version: '25'
distribution: 'graalvm-community'
github-token: ${{ secrets.GITHUB_TOKEN }}
cache: maven
- name: 'Download built artifacts'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 — https://github.com/actions/download-artifact/releases/tag/v8
with:
name: maven-repo
path: ~/.m2/repository/dev/hardwood/
- name: 'Build Native Image'
run: ./mvnw -ntp -B -Dnative package -pl cli -DskipTests