@@ -10,10 +10,11 @@ PLATFORM ?=
1010PLATFORM_STR := $(if $(PLATFORM ) ,--platform=$(PLATFORM ) ,)
1111
1212VERSION := $(shell cat splitio/version.go | grep 'const Version' | sed 's/const Version = //' | tr -d '"')
13- COMMIT_SHA := $(shell bash -c '[ ! -z $${GITHUB_SHA} ] && echo $${GITHUB_SHA:0:7} || git rev-parse --short=7 HEAD')
13+ COMMIT_SHA := $(shell bash -c '[[ ! -z $${GITHUB_SHA} ] ] && echo $${GITHUB_SHA:0:7} || git rev-parse --short=7 HEAD')
1414COMMIT_SHA_FILE := splitio/commitsha.go
1515
1616GO_FILES := $(shell find . -name "* .go" -not -name "$(COMMIT_SHA_FILE ) ") go.sum
17+ ENFORCE_FIPS := -tags enforce_fips
1718
1819CONFIG_TEMPLATE ?= splitd.yaml.tpl
1920COVERAGE_FILE ?= coverage.out
3233 splitd-linux-amd64-$(VERSION ) .bin \
3334 splitd-darwin-amd64-$(VERSION ) .bin \
3435 splitd-linux-arm-$(VERSION ) .bin \
35- splitd-darwin-arm-$(VERSION ) .bin
36+ splitd-darwin-arm-$(VERSION ) .bin \
37+ splitd-linux-amd64-fips-$(VERSION ) .bin
3638
3739# # build binaries for this platform
3840build : splitd splitcli sdhelper
@@ -58,9 +60,13 @@ entrypoint-test: splitd # requires splitd binary to generate a config and valida
5860 bash infra/test/test_entrypoint.sh
5961
6062# # build splitd for local machine
61- splitd : $(GO_FILES )
63+ splitd : $(GO_FILES ) $( COMMIT_SHA_FILE )
6264 go build -o splitd cmd/splitd/main.go
6365
66+ # # build splitd for local machine
67+ splitd-fips : $(GO_FILES ) $(COMMIT_SHA_FILE )
68+ GOEXPERIMENT=boringcrypto go build -o $@ $(ENFORCE_FIPS ) cmd/splitd/main.go
69+
6470# # build splitcli for local machine
6571splitcli : $(GO_FILES )
6672 go build -o splitcli cmd/splitcli/main.go
@@ -74,13 +80,25 @@ sdhelper: $(GO_FILES)
7480
7581# # build docker images for sidecar
7682images_release : # entrypoints
77- $(DOCKER ) build $(PLATFORM_STR ) -t splitsoftware/splitd-sidecar:latest -t splitsoftware/splitd-sidecar:$(VERSION ) -f infra/sidecar.Dockerfile .
83+ $(DOCKER ) build $(PLATFORM_STR ) \
84+ -t splitsoftware/splitd-sidecar:latest -t splitsoftware/splitd-sidecar:$(VERSION ) \
85+ --build-arg COMMIT_SHA=$(COMMIT_SHA ) \
86+ -f infra/sidecar.Dockerfile .
87+ $(DOCKER ) build $(PLATFORM_STR ) -t splitsoftware/splitd-sidecar-fips:latest -t splitsoftware/splitd-sidecar-fips:$(VERSION ) \
88+ --build-arg FIPS_MODE=1 --build-arg COMMIT_SHA=$(COMMIT_SHA ) \
89+ -f infra/sidecar.Dockerfile .
7890 @echo " Image created. Make sure everything works ok, and then run the following commands to push them."
7991 @echo " $( DOCKER) push splitsoftware/splitd-sidecar:latest"
8092 @echo " $( DOCKER) push splitsoftware/splitd-sidecar:$( VERSION) "
93+ @echo " $( DOCKER) push splitsoftware/splitd-sidecar-fips:latest"
94+ @echo " $( DOCKER) push splitsoftware/splitd-sidecar-fips:$( VERSION) "
8195
8296# # build release for binaires
83- binaries_release : splitd-linux-amd64-$(VERSION ) .bin splitd-darwin-amd64-$(VERSION ) .bin splitd-linux-arm-$(VERSION ) .bin splitd-darwin-arm-$(VERSION ) .bin
97+ binaries_release : splitd-linux-amd64-$(VERSION ) .bin \
98+ splitd-darwin-amd64-$(VERSION ) .bin \
99+ splitd-linux-arm-$(VERSION ) .bin \
100+ splitd-darwin-arm-$(VERSION ) .bin \
101+ splitd-linux-amd64-fips-$(VERSION ) .bin
84102
85103$(COVERAGE_FILE ) : unit-tests
86104
@@ -92,6 +110,9 @@ $(COMMIT_SHA_FILE):
92110splitd-linux-amd64-$(VERSION ) .bin : $(GO_FILES )
93111 GOARCH=amd64 GOOS=linux $(GO ) build -o $@ cmd/splitd/main.go
94112
113+ splitd-linux-amd64-fips-$(VERSION ) .bin : $(GO_FILES )
114+ GOEXPERIMENT=boringcrypto GOARCH=amd64 GOOS=linux $(GO ) build -o $@ $(ENFORCE_FIPS ) cmd/splitd/main.go
115+
95116splitd-darwin-amd64-$(VERSION ) .bin : $(GO_FILES )
96117 GOARCH=amd64 GOOS=darwin $(GO ) build -o $@ cmd/splitd/main.go
97118
0 commit comments