-
Notifications
You must be signed in to change notification settings - Fork 298
Expand file tree
/
Copy pathMakefile
More file actions
68 lines (56 loc) · 1.87 KB
/
Makefile
File metadata and controls
68 lines (56 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
OS := $(shell uname)
ifeq ($(OS), Darwin)
SED = gsed
BATS_LIB_PATH ?= /opt/homebrew/lib
else
SED = sed
BATS_LIB_PATH ?= /usr/local/lib/
endif
LOCAL_BIN := $(CURDIR)/.bin
LOCAL_TRIVY := $(LOCAL_BIN)/trivy
ifeq ($(shell [ -f $(LOCAL_TRIVY) ] && [ -z "$(CI)" ] && echo yes),yes)
TRIVY_CMD := $(LOCAL_TRIVY)
else
TRIVY_CMD ?= trivy
endif
CACHE_DIR := '.cache'
TRIVY_VERSION_FILE := .github/workflows/test.yaml
CURRENT_TRIVY_VERSION := $(shell awk '/TRIVY_VERSION:/ {print $$2}' $(TRIVY_VERSION_FILE))
BATS_ENV := BATS_LIB_PATH=$(BATS_LIB_PATH) \
GITHUB_REPOSITORY_OWNER=aquasecurity \
TRIVY_CACHE_DIR=$(CACHE_DIR) \
TRIVY_DEBUG=true
BATS_FLAGS := --timing --verbose-run test/test.bats
.PHONY: test
test:
TRIVY_CMD=$(TRIVY_CMD) $(BATS_ENV) bats $(BATS_FLAGS)
.PHONY: update-golden
update-golden:
UPDATE_GOLDEN=1 TRIVY_CMD=$(TRIVY_CMD) $(BATS_ENV) bats $(BATS_FLAGS)
.PHONY: clean-cache
clean-cache:
$(TRIVY_CMD) clean --scan-cache --cache-dir $(CACHE_DIR)
bump-trivy:
@[ $$NEW_VERSION ] || ( echo "env 'NEW_VERSION' is not set"; exit 1 )
@echo Current version: $(CURRENT_TRIVY_VERSION) ;\
echo New version: $$NEW_VERSION ;\
$(SED) -i -e "s/$(CURRENT_TRIVY_VERSION)/$$NEW_VERSION/g" \
README.md action.yaml $(TRIVY_VERSION_FILE)
.PHONY: ensure-trivy
ensure-trivy:
@set -e; \
mkdir -p $(LOCAL_BIN); \
if [ -x $(LOCAL_TRIVY) ]; then \
CURRENT_VERSION="$$( $(LOCAL_TRIVY) version -f json | jq -r '.Version' )"; \
else \
CURRENT_VERSION=none; \
fi; \
echo "Required: $(CURRENT_TRIVY_VERSION)"; \
echo "Current: $$CURRENT_VERSION"; \
if [ "$$CURRENT_VERSION" != "$(CURRENT_TRIVY_VERSION)" ]; then \
echo "Installing Trivy $(CURRENT_TRIVY_VERSION) locally..."; \
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | \
sh -s -- -b $(LOCAL_BIN) v$(CURRENT_TRIVY_VERSION); \
else \
echo "Trivy $(CURRENT_TRIVY_VERSION) already present."; \
fi