-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathTaskfile.dist.yaml
More file actions
75 lines (66 loc) · 1.99 KB
/
Copy pathTaskfile.dist.yaml
File metadata and controls
75 lines (66 loc) · 1.99 KB
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
version: '3'
includes:
container:
taskfile: taskfiles/container.yaml
vars:
CONTAINER_CLI:
sh: |
if command -v docker >/dev/null 2>&1; then echo docker;
elif command -v podman >/dev/null 2>&1; then echo podman;
else echo docker; fi
MODULES:
sh: find ./gbif/ingestion -name "Dockerfile" -not -path "*/target/*" | xargs -I{} dirname {} | xargs -I{} dirname {} | xargs -I{} basename {}
tasks:
modules:
silent: true
desc: List available modules
cmds:
- echo "{{.MODULES}}" | tr ' ' '\n'
_validate:module:
internal: true
requires:
vars: [MODULE]
cmds:
- cmd: |
if ! echo "{{.MODULES}}" | tr ' ' '\n' | grep -qx "{{.MODULE}}"; then
echo "Unknown MODULE '{{.MODULE}}'. Available modules:"
echo "{{.MODULES}}" | tr ' ' '\n' | sed 's/^/ - /'
exit 1
fi
clean:
desc: Run Maven clean
cmds:
- mvn clean
package:
desc: Build shaded jar
cmds:
- mvn package
verify:
desc: Run full Maven verify lifecycle including tests
cmds:
- mvn verify
docker:push:dist:
desc: Build and push multi-arch image (MODULE=name, REGISTRY=registry)
requires:
vars: [MODULE, REGISTRY]
vars:
POM_VERSION:
sh: mvn help:evaluate -Dexpression=project.version -q -DforceStdout -pl gbif/ingestion/{{.MODULE}}
cmds:
- task: _validate:module
- task: container:push:dist
vars:
REGISTRY: '{{.REGISTRY}}'
IMAGE_NAME: 'ingest-{{.MODULE}}'
POM_VERSION: '{{.POM_VERSION}}'
JAR_FILE: '{{.MODULE}}-{{.POM_VERSION}}-shaded.jar'
DOCKERFILE: './gbif/ingestion/{{.MODULE}}/docker/Dockerfile'
CONTEXT: './gbif/ingestion/{{.MODULE}}'
IS_RELEASE: '{{.IS_RELEASE | default "false"}}'
dist:
desc: Build jar and push multi-arch image (MODULE=name, REGISTRY=registry)
requires:
vars: [MODULE, REGISTRY]
cmds:
- task: package
- task: docker:push:dist