-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathEarthfile
198 lines (169 loc) · 6.18 KB
/
Earthfile
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
VERSION 0.8
IMPORT --allow-privileged github.com/cardano-foundation/cf-gha-workflows/./earthfiles/functions:main AS functions
ARG --global DOCKER_IMAGES_TARGETS="idw-keria idw-witness cred-issuance cred-issuance-ui cip45-sample-dapp"
ARG --global DOCKER_IMAGES_PREFIX="cf"
ARG --global DOCKER_IMAGES_EXTRA_TAGS=""
ARG --global DOCKER_IMAGES_LABELS=""
ARG --global DOCKER_REGISTRIES=""
ARG --global RELEASE_TAG=""
ARG --global TARGET_PLATFORM=""
ARG --global PUSH=false
ARG --global KERIA_DOCKER_IMAGE_REPO=weboftrust/keria
ARG --global KERIA_DOCKER_IMAGE_TAG=0.2.0-rc1
ARG --global KERIA_GIT_REPO_URL="https://github.com/WebOfTrust/keria.git"
ARG --global KERIA_GIT_REF=""
ARG --global KERI_DOCKER_IMAGE_REPO=weboftrust/keri
ARG --global KERI_DOCKER_IMAGE_TAG=1.1.26
all:
LOCALLY
FOR image_target IN $DOCKER_IMAGES_TARGETS
BUILD +$image_target --PUSH=$PUSH
END
docker-publish:
BUILD +all --PUSH=$PUSH
docker-manifests-merge:
ARG PLATFORMS
LOCALLY
FOR image_target IN $DOCKER_IMAGES_TARGETS
IF [ "${image_target}" = "cip45-sample-dapp" ]
LET PLATFORMS="linux/amd64"
LET DOCKER_REGISTRIES="$(echo ${DOCKER_REGISTRIES} | sed 's|hub.docker.com||g')"
END
DO functions+DOCKER_MANIFESTS_MERGE \
--PLATFORMS="${PLATFORMS}" \
--DOCKER_REGISTRIES="${DOCKER_REGISTRIES}" \
--DOCKER_IMAGE_NAME="${DOCKER_IMAGES_PREFIX}-${image_target}" \
--DOCKER_IMAGES_EXTRA_TAGS="${DOCKER_IMAGES_EXTRA_TAGS}" \
--PUSH=$PUSH
END
keria-src:
FROM alpine/git
RUN git clone $KERIA_GIT_REPO_URL /keria && \
cd /keria && \
git checkout $KERIA_GIT_REF
SAVE ARTIFACT /keria
idw-keria:
ARG EARTHLY_TARGET_NAME
ARG DOCKER_IMAGES_EXTRA_TAGS
ARG FORCE_BUILD=false
LET DOCKER_IMAGE_NAME=${DOCKER_IMAGES_PREFIX}-${EARTHLY_TARGET_NAME}
LET KERIA_UPSTREAM_TAG=""
LOCALLY
IF [ "${KERIA_GIT_REF}" != "" ]
SET KERIA_UPSTREAM_TAG=${KERIA_GIT_REF}
ELSE
SET KERIA_UPSTREAM_TAG=${KERIA_DOCKER_IMAGE_TAG}
END
IF [ "${FORCE_BUILD}" = "false" ]
ARG REGISTRY_IMAGE_EXISTS=$( ( docker manifest inspect ${HUB_DOCKER_COM_USER}/${DOCKER_IMAGE_NAME}:keria-${KERIA_UPSTREAM_TAG} 2>/dev/null | grep -q layers ) || echo false)
ELSE
ARG REGISTRY_IMAGE_EXISTS=false
END
IF [ "${REGISTRY_IMAGE_EXISTS}" = "false" ]
WAIT
IF [ "${KERIA_GIT_REF}" != "" ]
FROM DOCKERFILE -f +keria-src/keria/images/keria.dockerfile +keria-src/keria/*
ELSE
FROM ${KERIA_DOCKER_IMAGE_REPO}:${KERIA_DOCKER_IMAGE_TAG}
END
RUN apk add --no-cache jq envsubst
ENTRYPOINT keria start --config-file backer-oobis --config-dir ./scripts
END
WAIT
DO functions+DOCKER_LABELS --LABELS="${DOCKER_IMAGES_LABELS}"
SAVE IMAGE ${DOCKER_IMAGE_NAME}:${KERIA_UPSTREAM_TAG}
SAVE IMAGE ${DOCKER_IMAGE_NAME}:latest
END
DO functions+DOCKER_TAG_N_PUSH \
--PUSH=$PUSH \
--TARGET_PLATFORM=${TARGET_PLATFORM} \
--DOCKER_REGISTRIES="${DOCKER_REGISTRIES}" \
--DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME} \
--DOCKER_IMAGES_EXTRA_TAGS="${DOCKER_IMAGES_EXTRA_TAGS} keria-${KERIA_UPSTREAM_TAG}"
END
idw-witness:
ARG EARTHLY_TARGET_NAME
ARG DOCKER_IMAGES_EXTRA_TAGS
ARG FORCE_BUILD=false
LET DOCKER_IMAGE_NAME=${DOCKER_IMAGES_PREFIX}-${EARTHLY_TARGET_NAME}
LOCALLY
RUN echo $TARGETPLATFORM
IF [ "${FORCE_BUILD}" = "false" ]
ARG REGISTRY_IMAGE_EXISTS=$( (docker manifest inspect ${HUB_DOCKER_COM_USER}/${DOCKER_IMAGE_NAME}:keri-${KERI_DOCKER_IMAGE_TAG} 2> /dev/null | grep -q layers) || echo false)
ELSE
ARG REGISTRY_IMAGE_EXISTS=false
END
IF [ "${REGISTRY_IMAGE_EXISTS}" = "false" ]
WAIT
FROM ${KERI_DOCKER_IMAGE_REPO}:${KERI_DOCKER_IMAGE_TAG}
ENV PYTHONUNBUFFERED=1
ENV PYTHONIOENCODING=UTF-8
RUN apk add --no-cache jq envsubst
ENTRYPOINT kli witness demo
END
WAIT
DO functions+DOCKER_LABELS --LABELS="${DOCKER_IMAGES_LABELS}"
SAVE IMAGE ${DOCKER_IMAGE_NAME}:keri-${KERI_DOCKER_IMAGE_TAG}
SAVE IMAGE ${DOCKER_IMAGE_NAME}:latest
END
DO functions+DOCKER_TAG_N_PUSH \
--PUSH=$PUSH \
--TARGET_PLATFORM=${TARGET_PLATFORM} \
--DOCKER_REGISTRIES="${DOCKER_REGISTRIES}" \
--DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME} \
--DOCKER_IMAGES_EXTRA_TAGS="${DOCKER_IMAGES_EXTRA_TAGS} keri-${KERI_DOCKER_IMAGE_TAG}"
END
cred-issuance:
ARG EARTHLY_TARGET_NAME
LET DOCKER_IMAGE_NAME=${DOCKER_IMAGES_PREFIX}-${EARTHLY_TARGET_NAME}
WAIT
FROM DOCKERFILE ./services/credential-server
END
WAIT
DO functions+DOCKER_LABELS --LABELS="${DOCKER_IMAGES_LABELS}"
SAVE IMAGE ${DOCKER_IMAGE_NAME}
END
DO functions+DOCKER_TAG_N_PUSH \
--PUSH=$PUSH \
--TARGET_PLATFORM=${TARGET_PLATFORM} \
--DOCKER_REGISTRIES="${DOCKER_REGISTRIES}" \
--DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME} \
--DOCKER_IMAGES_EXTRA_TAGS="${DOCKER_IMAGES_EXTRA_TAGS}"
cred-issuance-ui:
ARG EARTHLY_TARGET_NAME
LET DOCKER_IMAGE_NAME=${DOCKER_IMAGES_PREFIX}-${EARTHLY_TARGET_NAME}
WAIT
FROM DOCKERFILE ./services/credential-server-ui
END
WAIT
DO functions+DOCKER_LABELS --LABELS="${DOCKER_IMAGES_LABELS}"
SAVE IMAGE ${DOCKER_IMAGE_NAME}
END
DO functions+DOCKER_TAG_N_PUSH \
--PUSH=$PUSH \
--TARGET_PLATFORM=${TARGET_PLATFORM} \
--DOCKER_REGISTRIES="${DOCKER_REGISTRIES}" \
--DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME} \
--DOCKER_IMAGES_EXTRA_TAGS="${DOCKER_IMAGES_EXTRA_TAGS}"
cip45-sample-dapp:
ARG EARTHLY_TARGET_NAME
LET DOCKER_IMAGE_NAME=${DOCKER_IMAGES_PREFIX}-${EARTHLY_TARGET_NAME}
LOCALLY
# skip this for arm as it takes forever
IF [ "${TARGET_PLATFORM}" != "linux/arm64" ]
# do not push this image to the public docker hub
LET DOCKER_REGISTRIES="$(echo ${DOCKER_REGISTRIES} | sed 's|hub.docker.com||g')"
WAIT
FROM DOCKERFILE ./services/cip45-sample-dapp
END
WAIT
DO functions+DOCKER_LABELS --LABELS="${DOCKER_IMAGES_LABELS}"
SAVE IMAGE ${DOCKER_IMAGE_NAME}
END
DO functions+DOCKER_TAG_N_PUSH \
--PUSH=$PUSH \
--TARGET_PLATFORM=${TARGET_PLATFORM} \
--DOCKER_REGISTRIES="${DOCKER_REGISTRIES}" \
--DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME} \
--DOCKER_IMAGES_EXTRA_TAGS="${DOCKER_IMAGES_EXTRA_TAGS}"
END