-
Notifications
You must be signed in to change notification settings - Fork 70
141 lines (134 loc) · 5.15 KB
/
maven.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# 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 this PR planetiler-openmaptiles repo
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v3
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 ]
runs-on: ${{ matrix.os }}
timeout-minutes: 15
steps:
- name: Checkout this PR planetiler-openmaptiles repo
uses: actions/checkout@v4
- 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') }}
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') }}
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 this PR planetiler-openmaptiles repo
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: 21
distribution: 'temurin'
cache: 'maven'
- run: ./scripts/regenerate-openmaptiles.sh
# Skip spotless since that gets checked in a separate task
- run: ./mvnw -Dspotless.check.skip --batch-mode -no-transfer-progress clean verify
run:
name: Build / Run
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout this PR planetiler-openmaptiles repo
uses: actions/checkout@v4
- name: Cache data/sources
uses: ./.github/cache-sources-action
- name: Set up JDK
uses: actions/setup-java@v3
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@v3
with:
name: planetiler-build
path: target/*with-deps.jar
- name: 'Download data (java)'
run: java -jar target/*with-deps.jar --only-download --area=monaco
- name: 'Download wikidata (java)'
run: java -jar target/*with-deps.jar --only-fetch-wikidata --area=monaco
- name: 'Verify build'
run: ./scripts/test-release.sh CI_ONLY
submodule:
name: Planetiler submodule
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout parent Planetiler repo
uses: actions/checkout@v4
with:
repository: onthegomap/planetiler
ref: main
path: planetiler
- name: Checkout this PR planetiler-openmaptiles repo
uses: actions/checkout@v4
with:
path: planetiler-openmaptiles
- name: Move planetiler-openmaptiles into planetiler
run: mv planetiler-openmaptiles planetiler
- name: Cache data/sources
uses: ./planetiler/planetiler-openmaptiles/.github/cache-sources-action
- name: Set up JDK
uses: actions/setup-java@v3
with:
java-version: 21
distribution: 'temurin'
cache: 'maven'
- name: Build and test this branch
working-directory: planetiler
run: ./mvnw -Dimage.version=CI_ONLY --batch-mode -no-transfer-progress verify package jib:dockerBuild --file pom.xml
- 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