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
35 changes: 17 additions & 18 deletions .github/workflows/java.yml → .github/workflows/java-glue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,38 @@
# See the License for the specific language governing permissions and
# limitations under the License.

name: Java
name: Java Glue

on:
push:
branches:
- main
paths:
- java/lance-namespace-glue/**
- java/pom.xml
- .github/workflows/java-glue.yml
pull_request:
types:
- opened
- synchronize
- ready_for_review
- reopened
paths:
- java/**
- .github/workflows/java.yml
- java/lance-namespace-glue/**
- java/pom.xml
- .github/workflows/java-glue.yml

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
linux-build:
test:
runs-on: ubuntu-24.04
timeout-minutes: 60
timeout-minutes: 30
strategy:
matrix:
java-version: [ 11, 17 ]
java-version: [11, 17]
steps:
- name: Checkout repo
uses: actions/checkout@v4
Expand All @@ -46,18 +51,12 @@ jobs:
distribution: temurin
java-version: ${{ matrix.java-version }}
cache: "maven"
- name: Check code style
working-directory: java
run: ./mvnw spotless:check
- name: Build with Java ${{ matrix.java-version }}
- name: Lint
working-directory: java
run: ./mvnw install -DskipTests
- name: Run unit tests
run: make lint-glue
- name: Build
working-directory: java
run: |
./mvnw test -pl lance-namespace-glue
./mvnw test -pl lance-namespace-polaris
- name: Build all modules with make (Java 17 only)
if: matrix.java-version == 17
run: make build-glue
- name: Test
working-directory: java
run: make build
run: make test-glue
62 changes: 62 additions & 0 deletions .github/workflows/java-hive2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# 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: Java Hive2

on:
push:
branches:
- main
paths:
- java/lance-namespace-hive2/**
- java/pom.xml
- .github/workflows/java-hive2.yml
pull_request:
types:
- opened
- synchronize
- ready_for_review
- reopened
paths:
- java/lance-namespace-hive2/**
- java/pom.xml
- .github/workflows/java-hive2.yml

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
test:
runs-on: ubuntu-24.04
timeout-minutes: 30
strategy:
matrix:
java-version: [11, 17]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ matrix.java-version }}
cache: "maven"
- name: Lint
working-directory: java
run: make lint-hive2
- name: Build
working-directory: java
run: make build-hive2
- name: Test
working-directory: java
run: make test-hive2
62 changes: 62 additions & 0 deletions .github/workflows/java-hive3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# 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: Java Hive3

on:
push:
branches:
- main
paths:
- java/lance-namespace-hive3/**
- java/pom.xml
- .github/workflows/java-hive3.yml
pull_request:
types:
- opened
- synchronize
- ready_for_review
- reopened
paths:
- java/lance-namespace-hive3/**
- java/pom.xml
- .github/workflows/java-hive3.yml

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
test:
runs-on: ubuntu-24.04
timeout-minutes: 30
strategy:
matrix:
java-version: [11, 17]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ matrix.java-version }}
cache: "maven"
- name: Lint
working-directory: java
run: make lint-hive3
- name: Build
working-directory: java
run: make build-hive3
- name: Test
working-directory: java
run: make test-hive3
62 changes: 62 additions & 0 deletions .github/workflows/java-iceberg.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# 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: Java Iceberg

on:
push:
branches:
- main
paths:
- java/lance-namespace-iceberg/**
- java/pom.xml
- .github/workflows/java-iceberg.yml
pull_request:
types:
- opened
- synchronize
- ready_for_review
- reopened
paths:
- java/lance-namespace-iceberg/**
- java/pom.xml
- .github/workflows/java-iceberg.yml

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
test:
runs-on: ubuntu-24.04
timeout-minutes: 30
strategy:
matrix:
java-version: [11, 17]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ matrix.java-version }}
cache: "maven"
- name: Lint
working-directory: java
run: make lint-iceberg
- name: Build
working-directory: java
run: make build-iceberg
- name: Test
working-directory: java
run: make test-iceberg
60 changes: 60 additions & 0 deletions .github/workflows/java-integ-glue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# 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: Java Glue Integration

on:
push:
branches:
- main
paths:
- java/lance-namespace-glue/**
- .github/workflows/java-integ-glue.yml
pull_request_target:
types:
- opened
- synchronize
- ready_for_review
- reopened
paths:
- java/lance-namespace-glue/**
- .github/workflows/java-integ-glue.yml
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
integration-test:
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: "maven"
- name: Build
run: make build-java
- name: Run integration tests
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.AWS_REGION }}
AWS_S3_BUCKET_NAME: ${{ secrets.AWS_S3_BUCKET_NAME }}
run: make java-integ-test-glue
Loading