-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpiper.cue
More file actions
93 lines (75 loc) · 1.58 KB
/
piper.cue
File metadata and controls
93 lines (75 loc) · 1.58 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
package main
import (
"strings"
"piper.octohelm.tech/wd"
"piper.octohelm.tech/client"
"piper.octohelm.tech/container"
"github.com/octohelm/piper/cuepkg/golang"
"github.com/octohelm/piper/cuepkg/containerutil"
)
hosts: {
local: wd.#Local & {}
}
pkg: {
_ver: client.#RevInfo & {}
version: _ver.version
}
actions: go: golang.#Project & {
cwd: hosts.local.dir
version: pkg.version
goos: ["linux", "darwin"]
goarch: ["amd64", "arm64"]
main: "./internal/cmd/crkit"
module: _
ldflags: [
"-s -w",
"-X \(module)/internal/version.version=\(version)",
]
env: {
GOEXPERIMENT: "jsonv2,greenteagc"
}
}
actions: ship: containerutil.#Ship & {
name: "\(strings.Replace(actions.go.module, "github.com/", "ghcr.io/", -1))"
tag: "\(pkg.version)"
from: "gcr.io/distroless/static-debian12:debug"
steps: [
{
input: _
_bin: container.#SourceFile & {
file: actions.go.build[input.platform].file
}
_copy: container.#Copy & {
"input": input
"contents": _bin.output
"source": "/"
"include": ["crkit"]
"dest": "/usr/local/bin"
}
output: _copy.output
},
container.#Set & {
config: {
label: "org.opencontainers.image.source": "https://github.com/octohelm/crkit"
env: {
KUBEPKG_STORAGE_ROOT: "/etc/registry"
}
workdir: "/"
entrypoint: ["/usr/local/bin/crkit"]
cmd: ["serve", "registry"]
}
},
]
}
settings: {
_env: client.#Env & {
GH_USERNAME!: string
GH_PASSWORD!: client.#Secret
}
registry: container.#Config & {
auths: "ghcr.io": {
username: _env.GH_USERNAME
secret: _env.GH_PASSWORD
}
}
}