# 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: - name: Checkout parent Planetiler repo uses: actions/checkout@v3 with: repository: lazaa32/planetiler ref: omt_submodule path: planetiler - name: Checkout this PR planetiler-openmaptiles repo uses: actions/checkout@v3 with: path: planetiler-openmaptiles - name: Move planetiler-openmaptiles into planetiler run: mv planetiler-openmaptiles planetiler - name: Set up JDK 17 uses: actions/setup-java@v3 with: java-version: 17 distribution: 'temurin' cache: 'maven' - name: Ensure code formatted with mvn spotless:apply working-directory: planetiler 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: [ 17 ] include: - os: ubuntu-latest jdk: 16 - os: ubuntu-latest jdk: 18 - os: ubuntu-latest jdk: 17 args: "-DargLine='-Duser.language=fr -Duser.country=FR'" runs-on: ${{ matrix.os }} timeout-minutes: 15 steps: - name: Checkout parent Planetiler repo uses: actions/checkout@v3 with: repository: lazaa32/planetiler ref: omt_submodule path: planetiler - name: Checkout this PR planetiler-openmaptiles repo uses: actions/checkout@v3 with: path: planetiler-openmaptiles - name: Move planetiler-openmaptiles into planetiler (linux/mac) if: ${{ !contains(matrix.os, 'windows') }} run: mv planetiler-openmaptiles planetiler - name: Move planetiler-openmaptiles into planetiler (windows) if: ${{ contains(matrix.os, 'windows') }} run: mv -Force planetiler-openmaptiles planetiler - name: Set up JDK ${{ matrix.jdk }} uses: actions/setup-java@v3 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') }} working-directory: planetiler run: ./mvnw ${{matrix.args}} -Dspotless.check.skip --batch-mode -no-transfer-progress package verify jib:buildTar --file pom.xml - name: Build with mvnw.cmd (windows) if: ${{ contains(matrix.os, 'windows') }} working-directory: planetiler run: mvnw.cmd ${{matrix.args}} -Dspotless.check.skip --batch-mode -no-transfer-progress package verify jib:buildTar --file pom.xml shell: cmd regenerate: name: Regenerate runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout parent Planetiler repo uses: actions/checkout@v3 with: repository: lazaa32/planetiler ref: omt_submodule path: planetiler - name: Checkout this PR planetiler-openmaptiles repo uses: actions/checkout@v3 with: path: planetiler-openmaptiles - name: Move planetiler-openmaptiles into planetiler run: mv planetiler-openmaptiles planetiler - name: Set up JDK 17 uses: actions/setup-java@v3 with: java-version: 17 distribution: 'temurin' cache: 'maven' - run: ./scripts/regenerate-openmaptiles.sh working-directory: planetiler # Skip spotless since that gets checked in a separate task - run: ./mvnw -Dspotless.check.skip -DskipTests --batch-mode -no-transfer-progress clean install -pl planetiler-openmaptiles -am working-directory: planetiler - run: ./mvnw -Dspotless.check.skip --batch-mode -no-transfer-progress verify -pl planetiler-openmaptiles working-directory: planetiler examples: name: Example project runs-on: ubuntu-latest timeout-minutes: 15 continue-on-error: true steps: - name: Checkout parent Planetiler repo uses: actions/checkout@v3 with: repository: lazaa32/planetiler ref: omt_submodule path: planetiler - name: Checkout this PR planetiler-openmaptiles repo uses: actions/checkout@v3 with: path: planetiler-openmaptiles - name: Move planetiler-openmaptiles into planetiler run: mv planetiler-openmaptiles planetiler - name: Set up JDK 17 uses: actions/setup-java@v3 with: java-version: 17 distribution: 'temurin' - name: Build and test run: mvn --batch-mode -no-transfer-progress package --file standalone.pom.xml working-directory: planetiler/planetiler-examples - name: Find jar run: mv target/*with-deps.jar ./run.jar working-directory: planetiler/planetiler-examples - name: Run run: java -jar run.jar --osm-path=../planetiler-core/src/test/resources/monaco-latest.osm.pbf --mbtiles=data/out.mbtiles working-directory: planetiler/planetiler-examples - name: Verify run: java -cp run.jar com.onthegomap.planetiler.mbtiles.Verify data/out.mbtiles working-directory: planetiler/planetiler-examples run: name: Build / Run runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout parent Planetiler repo uses: actions/checkout@v3 with: repository: lazaa32/planetiler ref: omt_submodule path: planetiler - name: Checkout this PR planetiler-openmaptiles repo uses: actions/checkout@v3 with: path: planetiler-openmaptiles - name: Move planetiler-openmaptiles into planetiler run: mv planetiler-openmaptiles planetiler - name: Cache data/sources uses: ./planetiler/.github/cache-sources-action - name: Set up JDK uses: actions/setup-java@v3 with: java-version: 17 distribution: 'temurin' cache: 'maven' - name: Build this branch working-directory: planetiler 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@v3 with: name: planetiler-build path: planetiler/planetiler-dist/target/*with-deps.jar - name: 'Download data (java)' working-directory: planetiler run: java -jar planetiler-dist/target/*with-deps.jar --only-download --area=monaco - name: 'Download wikidata (java)' working-directory: planetiler run: java -jar planetiler-dist/target/*with-deps.jar --only-fetch-wikidata --area=monaco - name: 'Verify build' working-directory: planetiler run: ./scripts/test-release.sh CI_ONLY env: SKIP_EXAMPLE_PROJECT: true