-
Notifications
You must be signed in to change notification settings - Fork 6
/
Taskfile.yml
97 lines (85 loc) · 2.17 KB
/
Taskfile.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
---
version: '3'
vars:
GIT_ROOT:
sh: git rev-parse --show-toplevel
tasks:
build:
desc: Build an app container image using Docker
cmds:
- task: _build
vars: {TAG: '{{ default "test" .TAG }}'}
deps:
- task: _check-app
- task: _check-dir
- task: _check-dockerfile
silent: true
load:
desc: Load an app container image using Docker
cmds:
- task: _load
vars: {TAG: '{{ default "test" .TAG }}'}
deps:
- task: _check-app
- task: _check-dir
- task: _check-dockerfile
silent: true
_build:
cmds:
- task: _check-platform
vars: {PLATFORM: "{{ .PLATFORM }}"}
- task: _check-version
vars: {VERSION: "{{ .VERSION }}"}
- >-
docker buildx build -t "{{ .APP }}:{{ .TAG }}"
--build-arg "VERSION={{ .VERSION }}"
--platform "{{ .PLATFORM }}"
-f ./apps/"{{ .APP }}"/Dockerfile .
vars:
PLATFORM:
sh: cat "{{ .GIT_ROOT }}/apps/{{ .APP }}/PLATFORM"
VERSION:
sh: cat "{{ .GIT_ROOT }}/apps/{{ .APP }}/VERSION"
silent: true
_load:
cmds:
- task: _check-version
vars: {VERSION: "{{ .VERSION }}"}
- >-
docker buildx build -t "{{ .APP }}:{{ .TAG }}"
--build-arg "VERSION={{ .VERSION }}"
-f ./apps/"{{ .APP }}"/Dockerfile . --load
vars:
VERSION:
sh: cat "{{ .GIT_ROOT }}/apps/{{ .APP }}/VERSION"
silent: true
_check-app:
cmds:
- test -n "{{ .APP }}" || (echo "Please define APP parameter"; exit 1)
silent: true
_check-dockerfile:
cmds:
- >-
test -f "./apps/{{ .APP }}/Dockerfile" ||
(echo "The Dockerfile does not exist"; exit 1)
silent: true
_check-dir:
cmds:
- >-
test -d "./apps/{{ .APP }}" ||
(echo "The app directory does not exist"; exit 1)
silent: true
_check-version:
cmds:
- test -n "{{ .VERSION }}" || (echo "The VERSION file is empty"; exit 1)
silent: true
_check-platform:
cmds:
- >-
test -n "{{ .PLATFORM }}" ||
(echo "The PLATFORM file is empty"; exit 1)
silent: true
default:
cmds:
- task -l
silent: true