-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathTaskfile.yml
More file actions
142 lines (123 loc) · 3.65 KB
/
Taskfile.yml
File metadata and controls
142 lines (123 loc) · 3.65 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
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
142
version: 3
vars:
OPERATOR_IMG:
sh: awk -F= '/ARG OPERATOR_IMAGE_DEFAULT=/ { print $2 ; exit }' olaris-op/Dockerfile
OPERATOR_TAG:
sh: git -C olaris-op rev-parse --short HEAD
OPERATOR_SRC: "{{.OPERATOR_IMG}}:{{.OPERATOR_TAG}}"
STREAMER_TAG: "{{.OPERATOR_TAG}}"
STREAMER_SRC: "registry.hub.docker.com/apache/openserverless-streamer:{{.STREAMER_TAG}}"
ADMIN_API_TAG: "{{.OPERATOR_TAG}}"
ADMIN_API_SRC: "registry.hub.docker.com/apache/openserverless-admin-api:{{.ADMIN_API_TAG}}"
RUNTIMES_TAG: "{{.OPERATOR_TAG}}"
tasks:
default: task -l
clean:
desc: clean the intermediate artifacts
cmds:
- rm -vf ./ops ~/.ops/{{OS}}-{{ARCH}}/images/kind/*
- rm -vf ./ops
image-save:
desc: save an a SRC image in the TGT file
requires: { vars: [SRC]}
env:
TGT:
sh: |
B64="$(echo {{.SRC}} | /usr/bin/base64 -w0 )"
echo ~/.ops/{{OS}}-{{ARCH}}/images/kind/$B64
cmds:
- echo Saving {{.SRC}} in "$TGT"
- mkdir -p "$(dirname $TGT)"
- docker save {{.SRC}} -o "$TGT"
status:
- ! test -e "$TGT"
cli:
desc: build the cli
dir: cli
cmds:
- go build -o ../ops cmd/ops/main.go
status:
- ! test -e ../ops
operator:
desc: build the operator
deps:
- cli
dir: olaris-op
cmds:
- echo Building {{.OPERATOR_SRC}}
- git tag -d $(git tag) && git tag {{.OPERATOR_TAG}}
- task b:build
- task: image-save
vars:
SRC: "{{.OPERATOR_SRC}}"
streamer:
desc: build the streamer
deps:
- cli
dir: streamer
cmds:
- echo Building {{.STREAMER_SRC}}
- git tag -d $(git tag) && git tag {{.STREAMER_TAG}}
- echo -e "NAMESPACE=apache\nREGISTRY=apache\n" >.env
- task buildx
- task: image-save
vars:
SRC: "{{.STREAMER_SRC}}"
admin-api:
desc: build the admin-api
deps:
- cli
dir: admin-api
cmds:
- echo Building {{.ADMIN_API_SRC}}
- git tag -d $(git tag) && git tag {{.STREAMER_TAG}}
- echo -e "NAMESPACE=apache\nREGISTRY=apache\n" >.env
- task buildx
- task: image-save
vars:
SRC: "{{.ADMIN_API_SRC}}"
opsroot:
desc: build current opsroot.json
dir: olaris
cmds:
- test -e opsroot.orig || jq . <opsroot.json >opsroot.orig
- >
jq <opsroot.orig >opsroot.json '
.config.images.operator = "{{.OPERATOR_SRC}}" |
.config.images.streamer = "{{.STREAMER_SRC}}" |
.config.images.systemapi = "{{.ADMIN_API_SRC}}"
'
- diff opsroot.orig opsroot.json || true
runtimes:
desc: build current runtimes.json
dir: runtimes
cmds:
- git tag -d $(git tag) && git tag {{.RUNTIMES_TAG}}
- task build-common
- task build
- task render-runtimes
- cp runtimes.json ../olaris/runtimes.json
- task: runtimes-save
runtimes-save:
desc: save runtimes images
dir: runtimes
vars:
IMAGES:
sh: jq -r '.runtimes[][] | select(.default == true) | "\(.image.prefix)/\(.image.name):\(.image.tag)"' runtimes.json
cmds:
- for: { var: IMAGES, split: "\n", as: IMG }
task: image-save
vars:
SRC: "registry.hub.docker.com/{{.IMG}}"
TGT:
sh: echo ~/.ops/{{OS}}-{{ARCH}}/images/kind/$(echo registry.hub.docker.com/{{.IMG}} | /usr/bin/base64 -w0)
build:
desc: build all
cmds:
- task: cli
- task: operator
- task: runtimes
- task: streamer
- task: admin-api
- task: opsroot
- task: runtimes