GeometryPipeline #1947
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 | |
name: CI | |
on: | |
pull_request: | |
branches: [ main ] | |
jobs: | |
# When spotless:apply fails, the error message is a bit cryptic, so try to make it obvious that | |
# is the problem by putting the check into a standalone job | |
lint: | |
name: Check formatting | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: 21 | |
distribution: 'temurin' | |
cache: 'maven' | |
- name: Ensure code formatted with mvn spotless:apply | |
run: ./mvnw -DskipTests --batch-mode -no-transfer-progress spotless:check | |
build: | |
name: Java ${{ matrix.jdk }} / ${{ matrix.os }} ${{ matrix.args }} | |
# Wait until after we check that you ran mvn spotless:apply, otherwise will fail with a cryptic error message | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
jdk: [ 21 ] | |
include: | |
- os: ubuntu-latest | |
jdk: 21 | |
args: "-DargLine='-Duser.language=fr -Duser.country=FR'" | |
- os: ubuntu-latest | |
jdk: 21 | |
args: "" | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up JDK ${{ matrix.jdk }} | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ matrix.jdk }} | |
distribution: 'temurin' | |
cache: 'maven' | |
# Skip spotless since that gets checked in a separate task | |
- name: Build with mvnw (linux/mac) | |
if: ${{ !contains(matrix.os, 'windows') }} | |
run: ./mvnw ${{matrix.args}} -Dspotless.check.skip --batch-mode -no-transfer-progress verify jib:buildTar --file pom.xml | |
- name: Build with mvnw.cmd (windows) | |
if: ${{ contains(matrix.os, 'windows') }} | |
run: mvnw.cmd ${{matrix.args}} -Dspotless.check.skip --batch-mode -no-transfer-progress verify jib:buildTar --file pom.xml | |
shell: cmd | |
examples: | |
name: Example project | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: 21 | |
distribution: 'temurin' | |
- name: Build and test | |
run: mvn --batch-mode -no-transfer-progress package --file standalone.pom.xml | |
working-directory: planetiler-examples | |
- name: Find jar | |
run: mv target/*with-deps.jar ./run.jar | |
working-directory: planetiler-examples | |
- name: Run | |
run: java -jar run.jar --osm-path=../planetiler-core/src/test/resources/monaco-latest.osm.pbf --output=data/out.mbtiles | |
working-directory: planetiler-examples | |
- name: Verify | |
run: java -cp run.jar com.onthegomap.planetiler.mbtiles.Verify data/out.mbtiles | |
working-directory: planetiler-examples | |
run: | |
name: Build / Run | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Cache data/sources | |
uses: ./.github/cache-sources-action | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
java-version: 21 | |
distribution: 'temurin' | |
cache: 'maven' | |
- name: Build this branch | |
run: ./mvnw -DskipTests -Dimage.version=CI_ONLY --batch-mode -no-transfer-progress package jib:dockerBuild --file pom.xml | |
- name: 'Upload artifact' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: planetiler-build | |
path: planetiler-dist/target/*with-deps.jar | |
- name: Download data (java) | |
run: java -jar planetiler-dist/target/*with-deps.jar --only-download --area=monaco | |
- name: Download wikidata (java) | |
run: java -jar planetiler-dist/target/*with-deps.jar --only-fetch-wikidata --area=monaco | |
- name: Verify build | |
run: ./scripts/test-release.sh CI_ONLY | |
env: | |
SKIP_EXAMPLE_PROJECT: true | |
quickstart: | |
name: Quickstart script | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Cache data/sources | |
uses: ./.github/cache-sources-action | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
java-version: 21 | |
distribution: 'temurin' | |
cache: 'maven' | |
- name: quickstart.sh --build | |
run: rm -rf data/output.mbtiles data/tmp && ./quickstart.sh monaco --build && ./scripts/check-monaco.sh data/output.mbtiles | |
- name: quickstart.sh --jar | |
run: rm -rf data/output.mbtiles data/tmp && ./quickstart.sh monaco --jar && ./scripts/check-monaco.sh data/output.mbtiles | |
# run docker last since it creates temp dirs with root user | |
- name: quickstart.sh --docker | |
run: rm -rf data/output.mbtiles data/tmp && ./quickstart.sh monaco --docker && ./scripts/check-monaco.sh data/output.mbtiles |