-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathwerf.inc.yaml
More file actions
128 lines (122 loc) · 3.48 KB
/
werf.inc.yaml
File metadata and controls
128 lines (122 loc) · 3.48 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
---
{{- $nameDeps := print $.ImageName "-dependencies" -}}
{{- define "$nameDeps" -}}
altPackages:
- libxml2-devel
packages:
- libnbd
{{- end -}}
{{ $builderDeps := include "$nameDeps" . | fromYaml }}
image: {{ .ModuleNamePrefix }}{{ .ImageName }}-builder
final: false
fromImage: {{ eq $.SVACE_ENABLED "false" | ternary "builder/golang-alt-1.24" "builder/golang-alt-svace-1.24" }}
git:
- add: {{ .ModuleDir }}/images/{{ .ImageName }}
to: /src
stageDependencies:
install:
- go.mod
- go.sum
setup:
- "**/*.go"
secrets:
- id: GOPROXY
value: {{ .GOPROXY }}
import:
{{- include "importPackageImages" (list . $builderDeps.packages "install") -}}
shell:
beforeInstall:
{{- include "alt packages proxy" . | nindent 2 }}
- |
apt-get -qq install -y \
{{ $builderDeps.altPackages | join " " }}
{{- include "alt packages clean" . | nindent 2 }}
install:
- |
# Install packages
PKGS="{{ $builderDeps.packages | join " " }}"
for pkg in $PKGS; do
cp -a /$pkg/. /
rm -rf /$pkg
done
- cd /src
- export GOPROXY=$(cat /run/secrets/GOPROXY)
- go mod download
setup:
- mkdir /out
- cd /src
- |
export GO111MODULE=on
export GOOS=linux
export CGO_ENABLED=1
export GOARCH=amd64
- |
{{- $_ := set $ "ProjectName" (list $.ImageName "dvcr-importer" | join "/") }}
{{- include "image-build.build" (set $ "BuildCommand" `go build -ldflags="-s -w" -o /out/dvcr-importer ./cmd/dvcr-importer`) | nindent 6 }}
{{- $_ := set $ "ProjectName" (list $.ImageName "dvcr-uploader" | join "/") }}
{{- include "image-build.build" (set $ "BuildCommand" `go build -ldflags="-s -w" -o /out/dvcr-uploader ./cmd/dvcr-uploader`) | nindent 6 }}
- |
export CGO_ENABLED=0
{{- $_ := set $ "ProjectName" (list $.ImageName "dvcr-cleaner" | join "/") }}
{{- include "image-build.build" (set $ "BuildCommand" `go build -ldflags="-s -w" -o /out/dvcr-cleaner ./cmd/dvcr-cleaner`) | nindent 6 }}
- chown -R 64535:64535 /out
---
{{- $name := print $.ImageName "-dependencies" -}}
{{- define "$name" -}}
altPackages:
- libxml2-devel
binaries:
- /usr/local/bin/dvcr-importer
- /usr/sbin/nbd*
- /usr/lib64/nbdkit/filters/*.so
- /usr/lib64/nbdkit/plugins/*.so
- /usr/bin/file
- /usr/share/misc/magic.mgc
- /usr/local/bin/dvcr-uploader
- /usr/local/bin/dvcr-cleaner
- /usr/bin/qemu-img
- /usr/bin/qemu-nbd
- /usr/lib64/libnbd.s*
packages:
- bzip2 file nbdkit libnbd
{{- end -}}
{{ $builderDependencies := include "$name" . | fromYaml }}
image: {{ .ModuleNamePrefix }}{{ .ImageName }}-bins
final: false
fromImage: {{ .ModuleNamePrefix }}base-alt-p11-binaries
import:
- image: tools/util-linux
add: /
to: /relocate/usr
after: setup
includePaths:
- bin/mount
- bin/umount
- image: {{ .ModuleNamePrefix }}{{ .ImageName }}-builder
add: /out
to: /usr/local/bin
before: setup
{{- include "importPackageImages" (list . $builderDependencies.packages "install") -}}
- image: {{ .ModuleNamePrefix }}qemu
add: /qemu-img
to: /qemu-img
before: install
shell:
beforeInstall:
{{- include "alt packages proxy" . | nindent 2 }}
- |
apt-get install -y \
{{ $builderDependencies.altPackages | join " " }}
{{- include "alt packages clean" . | nindent 2 }}
install:
- |
# Install packages
PKGS="{{ $builderDependencies.packages | join " " }}"
PKGS+=" qemu-img"
for pkg in $PKGS; do
cp -a /$pkg/. /
rm -rf /$pkg
done
setup:
- |
/relocate_binaries.sh -i "{{ $builderDependencies.binaries | join " " }}" -o /relocate