-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpiper.cue
96 lines (82 loc) · 1.44 KB
/
piper.cue
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
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 & {
}
}
ver: client.#RevInfo & {
}
actions: go: golang.#ContainerBuild & {
source: {
cwd: hosts.local.dir
include: [
"cmd/",
"go.mod",
"go.sum",
]
}
module: _
main: "./cmd/webappserve"
version: ver.version
goos: [
"linux",
]
goarch: [
"amd64",
"arm64",
]
ldflags: [
"-s", "-w",
"-X", "\(module)/cmd/webappserve.version=\(version)",
]
env: {
GOEXPERIMENT: "rangefunc"
}
}
actions: ship: containerutil.#Ship & {
name: "\(strings.Replace(actions.go.module, "github.com/", "ghcr.io/", -1))/webappserve"
tag: "\(ver.version)"
from: "gcr.io/distroless/static-debian12:debug"
steps: [
{
input: _
_bin: container.#SourceFile & {
file: actions.go.dump[input.platform].file
}
_copy: container.#Copy & {
"input": input
"contents": _bin.output
"dest": "/"
}
output: _copy.output
},
container.#Set & {
config: {
workdir: "/"
entrypoint: [
"/\(actions.go.bin)",
]
cmd: ["serve"]
}
},
]
}
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
}
}
}