Skip to content

Commit d51baf2

Browse files
authored
Dockerfile: Add version build argument (#487)
1 parent 0a44cd1 commit d51baf2

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ WORKDIR /workspace
66

77
ARG github_ref
88
ARG github_sha
9+
ARG version
910
ENV GITHUB_REF=$github_ref
1011
ENV GITHUB_SHA=$github_sha
12+
ENV VERSION=$version
1113
RUN go run scripts/release.go -docker
1214

1315
# STEP 2: Build a tiny image

scripts/release.go

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,24 @@ func main() {
1414
docker := flag.Bool("docker", false, "create a docker release")
1515
flag.Parse()
1616

17+
version := os.Getenv("VERSION")
1718
sha := os.Getenv("GITHUB_SHA")
1819
ref := os.Getenv("GITHUB_REF")
19-
cmd := exec.Command("git", "show", "--no-patch", "--no-notes", "--pretty=%ci", sha)
20-
out, err := cmd.CombinedOutput()
21-
if err != nil {
22-
log.Println(strings.TrimSpace(string(out)))
23-
log.Fatal(err)
24-
}
2520

26-
var date string
27-
parts := strings.Split(string(out), " ")
28-
date = strings.Replace(parts[0]+parts[1], "-", "", -1)
29-
date = strings.Replace(date, ":", "", -1)
30-
version := fmt.Sprintf("v0.0.0-%s-%s", date, sha[:12])
21+
if version == "" {
22+
cmd := exec.Command("git", "show", "--no-patch", "--no-notes", "--pretty=%ci", sha)
23+
out, err := cmd.CombinedOutput()
24+
if err != nil {
25+
log.Println(strings.TrimSpace(string(out)))
26+
log.Fatal(err)
27+
}
28+
29+
var date string
30+
parts := strings.Split(string(out), " ")
31+
date = strings.Replace(parts[0]+parts[1], "-", "", -1)
32+
date = strings.Replace(date, ":", "", -1)
33+
version = fmt.Sprintf("v0.0.0-%s-%s", date, sha[:12])
34+
}
3135

3236
if *docker {
3337
x := "-extldflags \"-static\" -X github.com/kyleconroy/sqlc/internal/cmd.version=" + version
@@ -38,9 +42,9 @@ func main() {
3842
"-o", "/workspace/sqlc",
3943
"./cmd/sqlc",
4044
}
41-
cmd = exec.Command("go", args...)
45+
cmd := exec.Command("go", args...)
4246
cmd.Env = os.Environ()
43-
out, err = cmd.CombinedOutput()
47+
out, err := cmd.CombinedOutput()
4448
if err != nil {
4549
log.Println(strings.TrimSpace(string(out)))
4650
log.Fatal(err)
@@ -83,9 +87,9 @@ func main() {
8387
}...)
8488

8589
log.Printf("Releasing %s on channel %s", flag.Arg(0), channel)
86-
cmd = exec.Command(xname, args...)
90+
cmd := exec.Command(xname, args...)
8791
cmd.Env = os.Environ()
88-
out, err = cmd.CombinedOutput()
92+
out, err := cmd.CombinedOutput()
8993
if err != nil {
9094
log.Println(strings.TrimSpace(string(out)))
9195
log.Fatal(err)

0 commit comments

Comments
 (0)