mirror of
https://github.com/anchore/syft.git
synced 2026-05-20 04:05:24 +02:00
* port to go-make Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * refresh fixtures on running unit tests Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * address refresh cache issues with old now-gitignored files Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> --------- Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
53 lines
1.7 KiB
Makefile
53 lines
1.7 KiB
Makefile
BIN=./bin
|
|
TOOL_IMAGE=localhost/syft-bin-build-tools:latest
|
|
VERIFY_FILE=actual_verify
|
|
FINGERPRINT_FILE=$(BIN).fingerprint
|
|
|
|
ifndef BIN
|
|
$(error BIN is not set)
|
|
endif
|
|
|
|
.DEFAULT_GOAL := fixtures
|
|
|
|
# requirement 1: 'fixtures' goal to generate any and all test fixtures
|
|
fixtures: build verify
|
|
|
|
# requirement 2: 'fingerprint' goal to determine if the fixture input that indicates any existing cache should be busted
|
|
fingerprint: $(FINGERPRINT_FILE)
|
|
|
|
# for selfrando...
|
|
# docker buildx build --platform linux/amd64 -t $(TOOL_IMAGE) .
|
|
|
|
tools:
|
|
@if docker image inspect $(TOOL_IMAGE) > /dev/null 2>&1 \
|
|
&& test -f Dockerfile.sha256 \
|
|
&& sha256sum --quiet -c Dockerfile.sha256 2>/dev/null; then \
|
|
: ; \
|
|
else \
|
|
docker build -t $(TOOL_IMAGE) . \
|
|
&& sha256sum Dockerfile > Dockerfile.sha256; \
|
|
fi
|
|
|
|
build: tools
|
|
mkdir -p $(BIN)
|
|
docker run -i -v $(shell pwd):/mount -w /mount/project $(TOOL_IMAGE) make
|
|
|
|
verify: tools
|
|
@rm -f $(VERIFY_FILE)
|
|
docker run -i -v $(shell pwd):/mount -w /mount/project $(TOOL_IMAGE) make verify > $(VERIFY_FILE)
|
|
@python3 ./differ expected_verify $(VERIFY_FILE)
|
|
|
|
debug:
|
|
docker run -i --rm -v $(shell pwd):/mount -w /mount/project $(TOOL_IMAGE) bash
|
|
|
|
# requirement 3: we always need to recalculate the fingerprint based on source regardless of any existing fingerprint
|
|
.PHONY: $(FINGERPRINT_FILE)
|
|
$(FINGERPRINT_FILE):
|
|
@find project Dockerfile Makefile -type f -exec sha256sum {} \; | sort -k2 > $(FINGERPRINT_FILE)
|
|
@#cat $(FINGERPRINT_FILE) | sha256sum | awk '{print $$1}'
|
|
|
|
# requirement 4: 'clean' goal to remove all generated test fixtures
|
|
clean:
|
|
rm -rf $(BIN) Dockerfile.sha256 $(VERIFY_FILE) $(FINGERPRINT_FILE)
|
|
|
|
.PHONY: tools build verify debug clean |