@@ -143,9 +143,9 @@ build: $(build-targets)
143143build-proto : # # Compiles and generates all required protobufs
144144build-proto : cron/internal/data/request.pb.go cron/internal/data/metadata.pb.go
145145cron/internal/data/request.pb.go : cron/internal/data/request.proto | $(PROTOC ) $(PROTOC_GEN_GO )
146- $(PROTOC ) --plugin=$(PROTOC_GEN_GO ) --go_out=../../../ cron/internal/data/request.proto
146+ $(PROTOC ) --plugin=$(PROTOC_GEN_GO ) --go_out=. --go_opt=paths=source_relative cron/internal/data/request.proto
147147cron/internal/data/metadata.pb.go : cron/internal/data/metadata.proto | $(PROTOC ) $(PROTOC_GEN_GO )
148- $(PROTOC ) --plugin=$(PROTOC_GEN_GO ) --go_out=../../../ cron/internal/data/metadata.proto
148+ $(PROTOC ) --plugin=$(PROTOC_GEN_GO ) --go_out=. --go_out=paths=source_relative cron/internal/data/metadata.proto
149149
150150generate-mocks : # # Compiles and generates all mocks using mockgen.
151151generate-mocks : clients/mockclients/repo_client.go \
@@ -179,45 +179,107 @@ validate-docs: docs/checks/internal/generate/main.go
179179 # Validating checks.yaml
180180 go run ./docs/checks/internal/validate/main.go
181181
182- build-scorecard : # # Runs go build on repo
182+ SCORECARD_DEPS = $(shell find . -iname "* .go" | grep -v tools/ | grep -v attestor/)
183+ build-scorecard : # # Build Scorecard CLI
184+ build-scorecard : scorecard
185+ scorecard : $(SCORECARD_DEPS )
183186 # Run go build and generate scorecard executable
184187 CGO_ENABLED=0 go build -trimpath -a -tags netgo -ldflags ' $(LDFLAGS)'
185-
186- build-releaser : # # Runs goreleaser on the repo
188+ scorecard-docker : # # Build Scorecard CLI Docker image
189+ scorecard-docker : scorecard.docker
190+ scorecard.docker : Dockerfile $(SCORECARD_DEPS )
191+ DOCKER_BUILDKIT=1 docker build . --file Dockerfile \
192+ --tag $(IMAGE_NAME ) && \
193+ touch scorecard.docker
194+
195+ build-releaser : # # Build goreleaser for the Scorecard CLI
196+ build-releaser : scorecard.releaser
197+ scorecard.releaser : .goreleaser.yml $(SCORECARD_DEPS ) | $(GORELEASER )
187198 # Run go releaser on the Scorecard repo
188- $(GORELEASER ) check
189- VERSION_LDFLAGS=" $( LDFLAGS) " $(GORELEASER ) release --snapshot --rm-dist --skip-publish --skip-sign
190-
191- build-controller : # # Runs go build on the cron PubSub controller
199+ $(GORELEASER ) check && \
200+ VERSION_LDFLAGS=" $( LDFLAGS) " $(GORELEASER ) release \
201+ --snapshot --rm-dist --skip-publish --skip-sign && \
202+ touch scorecard.releaser
203+
204+ CRON_CONTROLLER_DEPS = $(shell find cron/internal/ -iname "* .go")
205+ build-controller : # # Build cron controller
206+ build-controller : cron/internal/controller/controller
207+ cron/internal/controller/controller : $(CRON_CONTROLLER_DEPS )
192208 # Run go build on the cron PubSub controller
193209 cd cron/internal/controller && CGO_ENABLED=0 go build -trimpath -a -ldflags ' $(LDFLAGS)' -o controller
210+ cron-controller-docker : # # Build cron controller Docker image
211+ cron-controller-docker : cron/internal/controller/controller.docker
212+ cron/internal/controller/controller.docker : cron/internal/controller/Dockerfile $(CRON_CONTROLLER_DEPS )
213+ DOCKER_BUILDKIT=1 docker build . --file cron/internal/controller/Dockerfile \
214+ --tag $(IMAGE_NAME ) -batch-controller \
215+ && touch cron/internal/controller/controller.docker
194216
195217build-worker : # # Runs go build on the cron PubSub worker
196218 # Run go build on the cron PubSub worker
197219 cd cron/internal/worker && CGO_ENABLED=0 go build -trimpath -a -ldflags ' $(LDFLAGS)' -o worker
198220
199- build-cii-worker : # # Runs go build on the CII worker
221+ CRON_CII_DEPS = $(shell find cron/internal/ clients/ -iname "* .go")
222+ build-cii-worker : # # Build cron CII worker
223+ build-cii-worker : cron/internal/cii/cii-worker
224+ cron/internal/cii/cii-worker : $(CRON_CII_DEPS )
200225 # Run go build on the CII worker
201226 cd cron/internal/cii && CGO_ENABLED=0 go build -trimpath -a -ldflags ' $(LDFLAGS)' -o cii-worker
202-
203- build-shuffler : # # Runs go build on the cron shuffle script
227+ cron-cii-worker-docker : # Build cron CII worker Docker image
228+ cron-cii-worker-docker : cron/internal/cii/cii-worker.docker
229+ cron/internal/cii/cii-worker.docker : cron/internal/cii/Dockerfile $(CRON_CII_DEPS )
230+ DOCKER_BUILDKIT=1 docker build . --file cron/internal/cii/Dockerfile \
231+ --tag $(IMAGE_NAME ) -cii-worker && \
232+ touch cron/internal/cii/cii-worker.docker
233+
234+ CRON_SHUFFLER_DEPS = $(shell find cron/internal/data/ cron/internal/shuffle/ -iname "* .go")
235+ build-shuffler : # # Build cron shuffle script
236+ build-shuffler : cron/internal/shuffle/shuffle
237+ cron/internal/shuffle/shuffle : $(CRON_SHUFFLER_DEPS )
204238 # Run go build on the cron shuffle script
205239 cd cron/internal/shuffle && CGO_ENABLED=0 go build -trimpath -a -ldflags ' $(LDFLAGS)' -o shuffle
206240
207- build-bq-transfer : # # Runs go build on the BQ transfer cron job
208- build-bq-transfer : ./cron/internal/bq/* .go
241+ CRON_TRANSFER_DEPS = $(shell find cron/internal/data/ cron/internal/config/ cron/internal/bq/ -iname "* .go")
242+ build-bq-transfer : # # Build cron BQ transfer worker
243+ build-bq-transfer : cron/internal/bq/data-transfer
244+ cron/internal/bq/data-transfer : $(CRON_TRANSFER_DEPS )
209245 # Run go build on the Copier cron job
210246 cd cron/internal/bq && CGO_ENABLED=0 go build -trimpath -a -ldflags ' $(LDFLAGS)' -o data-transfer
211-
212- build-github-server : # # Runs go build on the GitHub auth server
213- build-github-server : ./clients/githubrepo/roundtripper/tokens/*
247+ cron-bq-transfer-docker : # # Build cron BQ transfer worker Docker image
248+ cron-bq-transfer-docker : cron/internal/bq/data-transfer.docker
249+ cron/internal/bq/data-transfer.docker : cron/internal/bq/Dockerfile $(CRON_TRANSFER_DEPS )
250+ DOCKER_BUILDKIT=1 docker build . --file cron/internal/bq/Dockerfile \
251+ --tag $(IMAGE_NAME ) -bq-transfer && \
252+ touch cron/internal/bq/data-transfer.docker
253+
254+ TOKEN_SERVER_DEPS = $(shell find clients/githubrepo/roundtripper/tokens/ -iname "* .go")
255+ build-github-server : # # Build GitHub token server
256+ build-github-server : clients/githubrepo/roundtripper/tokens/server/github-auth-server
257+ clients/githubrepo/roundtripper/tokens/server/github-auth-server : $(TOKEN_SERVER_DEPS )
214258 # Run go build on the GitHub auth server
215259 cd clients/githubrepo/roundtripper/tokens/server && \
216260 CGO_ENABLED=0 go build -trimpath -a -ldflags ' $(LDFLAGS)' -o github-auth-server
217-
218- build-webhook : # # Runs go build on the cron webhook
261+ cron-github-server-docker : # # Build GitHub token server Docker image
262+ cron-github-server-docker : clients/githubrepo/roundtripper/tokens/server/github-auth-server.docker
263+ clients/githubrepo/roundtripper/tokens/server/github-auth-server.docker : \
264+ clients/githubrepo/roundtripper/tokens/server/Dockerfile $(TOKEN_SERVER_DEPS )
265+ DOCKER_BUILDKIT=1 docker build . \
266+ --file clients/githubrepo/roundtripper/tokens/server/Dockerfile \
267+ --tag ${IMAGE_NAME} -github-server && \
268+ touch clients/githubrepo/roundtripper/tokens/server/github-auth-server.docker
269+
270+ CRON_WEBHOOK_DEPS = $(shell find cron/internal/webhook/ cron/internal/data/ -iname "* .go")
271+ build-webhook : # # Build cron webhook server
272+ build-webhook : cron/internal/webhook/webhook
273+ cron/internal/webhook/webhook : $(CRON_WEBHOOK_DEPS )
219274 # Run go build on the cron webhook
220275 cd cron/internal/webhook && CGO_ENABLED=0 go build -trimpath -a -ldflags ' $(LDFLAGS)' -o webhook
276+ cron-webhook-docker : # # Build cron webhook server Docker image
277+ cron-webhook-docker : cron/internal/webhook/webhook.docker
278+ cron/internal/webhook/webhook.docker : cron/internal/webhook/Dockerfile $(CRON_WEBHOOK_DEPS )
279+ DOCKER_BUILDKIT=1 docker build . --file cron/internal/webhook/Dockerfile \
280+ --tag ${IMAGE_NAME} -webhook && \
281+ touch cron/internal/webhook/webhook.docker
282+
221283
222284build-add-script : # # Runs go build on the add script
223285build-add-script : cron/internal/data/add/add
@@ -241,20 +303,8 @@ docker-targets = scorecard-docker cron-controller-docker cron-worker-docker cron
241303.PHONY : dockerbuild $(docker-targets )
242304dockerbuild : $(docker-targets )
243305
244- scorecard-docker :
245- DOCKER_BUILDKIT=1 docker build . --file Dockerfile --tag $(IMAGE_NAME )
246- cron-controller-docker :
247- DOCKER_BUILDKIT=1 docker build . --file cron/internal/controller/Dockerfile --tag $(IMAGE_NAME ) -batch-controller
248306cron-worker-docker :
249307 DOCKER_BUILDKIT=1 docker build . --file cron/internal/worker/Dockerfile --tag $(IMAGE_NAME ) -batch-worker
250- cron-cii-worker-docker :
251- DOCKER_BUILDKIT=1 docker build . --file cron/internal/cii/Dockerfile --tag $(IMAGE_NAME ) -cii-worker
252- cron-bq-transfer-docker :
253- DOCKER_BUILDKIT=1 docker build . --file cron/internal/bq/Dockerfile --tag $(IMAGE_NAME ) -bq-transfer
254- cron-webhook-docker :
255- DOCKER_BUILDKIT=1 docker build . --file cron/internal/webhook/Dockerfile --tag ${IMAGE_NAME} -webhook
256- cron-github-server-docker :
257- DOCKER_BUILDKIT=1 docker build . --file clients/githubrepo/roundtripper/tokens/server/Dockerfile --tag ${IMAGE_NAME} -github-server
258308# ##############################################################################
259309
260310# #@ Tests
0 commit comments