build with make & inject version on build
This commit is contained in:
parent
0b5646cf68
commit
fcbbd3191e
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
spry
|
||||
spry.*.*
|
@ -25,10 +25,10 @@ build-job: # This job runs in the build stage, which runs first.
|
||||
image: golang:1.21
|
||||
script:
|
||||
- echo "Compiling..."
|
||||
- GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-extldflags=-static" -o spry.linux.amd64
|
||||
- GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -ldflags="-extldflags=-static" -o spry.linux.arm64
|
||||
- GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-extldflags=-static" -o spry.darwin.amd64
|
||||
- GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -ldflags="-extldflags=-static" -o spry.darwin.arm64
|
||||
- GOOS=linux GOARCH=amd64 CGO_ENABLED=0 make build
|
||||
- GOOS=linux GOARCH=arm64 CGO_ENABLED=0 make build
|
||||
- GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 make build
|
||||
- GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 make build
|
||||
- echo "Compile complete."
|
||||
artifacts:
|
||||
untracked: false
|
||||
|
34
Makefile
Normal file
34
Makefile
Normal file
@ -0,0 +1,34 @@
|
||||
.DEFAULT_GOAL := all
|
||||
|
||||
#############
|
||||
# Variables #
|
||||
#############
|
||||
|
||||
EXECUTABLE := spry
|
||||
|
||||
ifdef GOOS
|
||||
EXECUTABLE := $(EXECUTABLE).$(GOOS)
|
||||
endif
|
||||
|
||||
ifdef GOARCH
|
||||
EXECUTABLE := $(EXECUTABLE).$(GOARCH)
|
||||
endif
|
||||
|
||||
VERSION ?= $(shell ./.version/calculate-version.sh)
|
||||
|
||||
###########
|
||||
# TARGETS #
|
||||
###########
|
||||
|
||||
$(EXECUTABLE):
|
||||
go build -ldflags="-extldflags=-static -X main.Version=$(VERSION)" -o $(EXECUTABLE) .
|
||||
|
||||
.PHONY: clean-build
|
||||
clean-build:
|
||||
rm -f $(EXECUTABLE)
|
||||
|
||||
.PHONY: build
|
||||
build: clean-build $(EXECUTABLE)
|
||||
|
||||
.PHONY: all
|
||||
all: build
|
1
go.mod
1
go.mod
@ -6,6 +6,7 @@ require (
|
||||
github.com/Masterminds/sprig/v3 v3.2.3
|
||||
github.com/peterbourgon/mergemap v0.0.1
|
||||
gitlab.com/CRThaze/helm-tmpl-lang v0.0.0-20231023121015-db8999e64395
|
||||
gitlab.com/CRThaze/sugar v0.0.2
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
|
||||
|
2
go.sum
2
go.sum
@ -126,6 +126,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
gitlab.com/CRThaze/helm-tmpl-lang v0.0.0-20231023121015-db8999e64395 h1:gRGvQGJhtG5dHV7F2C+amtdhyT5eE195lsdpz9ew37o=
|
||||
gitlab.com/CRThaze/helm-tmpl-lang v0.0.0-20231023121015-db8999e64395/go.mod h1:AJdDOAsr2yJZ5j4k5KGeBb/gcXbwpRzGmELX4fZWFQY=
|
||||
gitlab.com/CRThaze/sugar v0.0.2 h1:kJvrruckSF15kj9v8HtHFusCmFmOCdHbcHZGgwyw6G8=
|
||||
gitlab.com/CRThaze/sugar v0.0.2/go.mod h1:iEbJlix4YEoPONzHzzXMptItMeLeItVMvp0TdEmAzBE=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
|
43
main.go
43
main.go
@ -18,28 +18,10 @@ import (
|
||||
yaml "gopkg.in/yaml.v3"
|
||||
|
||||
htl "gitlab.com/CRThaze/helm-tmpl-lang"
|
||||
s "gitlab.com/CRThaze/sugar"
|
||||
)
|
||||
|
||||
type StrSet map[string]struct{}
|
||||
|
||||
func (s *StrSet) Add(str string) {
|
||||
(*s)[str] = struct{}{}
|
||||
}
|
||||
|
||||
func (s *StrSet) Has(str string) bool {
|
||||
if _, ok := (*s)[str]; ok {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (s *StrSet) AddHas(str string) bool {
|
||||
if ok := s.Has(str); ok {
|
||||
return ok
|
||||
}
|
||||
s.Add(str)
|
||||
return false
|
||||
}
|
||||
var Version string = "0.0.0"
|
||||
|
||||
type valFileSlice []string
|
||||
|
||||
@ -137,7 +119,14 @@ func init() {
|
||||
"filenameErr", true,
|
||||
"Whether to print filename to STDERR.",
|
||||
)
|
||||
flag.Parse()
|
||||
shortVersion := flag.Bool(
|
||||
"v", false,
|
||||
"Print the version and exit.",
|
||||
)
|
||||
longVersion := flag.Bool(
|
||||
"version", false,
|
||||
"Print the version and exit.",
|
||||
)
|
||||
|
||||
flag.Usage = func() {
|
||||
fmt.Fprintf(flag.CommandLine.Output(), "Usage of %s [Options] [Template Files]:\n", os.Args[0])
|
||||
@ -169,6 +158,16 @@ func init() {
|
||||
)
|
||||
fmt.Fprintf(flag.CommandLine.Output(), "\n")
|
||||
}
|
||||
|
||||
flag.Parse()
|
||||
|
||||
if *shortVersion || *longVersion {
|
||||
fmt.Fprintf(
|
||||
flag.CommandLine.Output(),
|
||||
"%s - Version %s\n\n", os.Args[0], Version,
|
||||
)
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
||||
|
||||
func checkErr(err error) {
|
||||
@ -180,7 +179,7 @@ func checkErr(err error) {
|
||||
|
||||
func expandFiles(files []string) (expFiles []string) {
|
||||
expFiles = []string{}
|
||||
fileSet := StrSet{}
|
||||
fileSet := s.StrSet{}
|
||||
directories := []string{}
|
||||
|
||||
// Ensure we don't process any provided values files as templates.
|
||||
|
Loading…
Reference in New Issue
Block a user