1414BINARY_NAME := terraform-provider-orynetwork
1515INSTALL_DIR := ~/.terraform.d/plugins/registry.terraform.io/ory/orynetwork/0.0.1/$(shell go env GOOS) _$(shell go env GOARCH)
1616
17+ # Platform detection for tool downloads
18+ OS := $(shell uname -s | tr '[:upper:]' '[:lower:]')
19+ ARCH := $(shell uname -m)
20+ ifeq ($(ARCH ) ,x86_64)
21+ ARCH := amd64
22+ endif
23+ ifeq ($(ARCH ) ,aarch64)
24+ ARCH := arm64
25+ endif
26+
1727.PHONY : help
1828help : # # Show this help
1929 @grep -E ' ^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST ) | sort | awk ' BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
@@ -34,6 +44,12 @@ deps-ci: ## Install dependencies for CI environment
3444 @echo " Installing jq..."
3545 @if command -v apt-get > /dev/null 2>&1 ; then sudo apt-get update && sudo apt-get install -y jq; fi
3646
47+ # Ory CLI for dependency management
48+ .bin/ory :
49+ @mkdir -p .bin
50+ @bash <( curl --retry 7 --retry-connrefused https://raw.githubusercontent.com/ory/meta/master/install.sh) -d -b .bin ory v0.3.4
51+ @touch -a -m .bin/ory
52+
3753# ==============================================================================
3854# BUILD
3955# ==============================================================================
@@ -113,25 +129,48 @@ test-acc-all: env-check ## Run all acceptance tests including optional ones
113129.PHONY : sec
114130sec : sec-vuln sec-gosec sec-gitleaks # # Run all security scans
115131
132+ # Security tool binaries
133+ .bin/govulncheck : .deps/govulncheck.yaml .bin/ory
134+ @VERSION=$$(.bin/ory dev ci deps url -o $(OS ) -a $(ARCH ) -c .deps/govulncheck.yaml ) ; \
135+ echo " Installing govulncheck $$ {VERSION}..." ; \
136+ GOBIN=$(PWD ) /.bin go install golang.org/x/vuln/cmd/govulncheck@$$ {VERSION}
137+
138+ .bin/gosec : .deps/gosec.yaml .bin/ory
139+ @mkdir -p .bin
140+ @URL=$$(.bin/ory dev ci deps url -o $(OS ) -a $(ARCH ) -c .deps/gosec.yaml ) ; \
141+ echo " Downloading gosec from $$ {URL}..." ; \
142+ curl -sSfL " $$ {URL}" | tar -xz -C .bin gosec; \
143+ chmod +x .bin/gosec
144+
145+ .bin/gitleaks : .deps/gitleaks.yaml .bin/ory
146+ @mkdir -p .bin
147+ @URL=$$(.bin/ory dev ci deps url -o $(OS ) -a $(ARCH ) -c .deps/gitleaks.yaml ) ; \
148+ echo " Downloading gitleaks from $$ {URL}..." ; \
149+ curl -sSfL " $$ {URL}" | tar -xz -C .bin gitleaks; \
150+ chmod +x .bin/gitleaks
151+
152+ .bin/trivy : .deps/trivy.yaml .bin/ory
153+ @mkdir -p .bin
154+ @URL=$$(.bin/ory dev ci deps url -o $(OS ) -a $(ARCH ) -c .deps/trivy.yaml ) ; \
155+ echo " Downloading trivy from $$ {URL}..." ; \
156+ curl -sSfL " $$ {URL}" | tar -xz -C .bin trivy; \
157+ chmod +x .bin/trivy
158+
116159.PHONY : sec-vuln
117- sec-vuln : # # Run govulncheck for Go vulnerability scanning
118- @command -v govulncheck > /dev/null 2>&1 || { echo " Installing govulncheck..." ; go install golang.org/x/vuln/cmd/govulncheck@latest; }
119- govulncheck ./...
160+ sec-vuln : .bin/govulncheck # # Run govulncheck for Go vulnerability scanning
161+ .bin/govulncheck ./...
120162
121163.PHONY : sec-gosec
122- sec-gosec : # # Run gosec for Go security analysis
123- @command -v gosec > /dev/null 2>&1 || { echo " Installing gosec..." ; go install github.com/securego/gosec/v2/cmd/gosec@latest; }
124- gosec ./...
164+ sec-gosec : .bin/gosec # # Run gosec for Go security analysis
165+ .bin/gosec ./...
125166
126167.PHONY : sec-gitleaks
127- sec-gitleaks : # # Run gitleaks for secret detection
128- @command -v gitleaks > /dev/null 2>&1 || { echo " gitleaks not found. Install: brew install gitleaks (macOS) or download from https://github.com/gitleaks/gitleaks/releases" ; exit 1; }
129- gitleaks detect --source . --verbose
168+ sec-gitleaks : .bin/gitleaks # # Run gitleaks for secret detection
169+ .bin/gitleaks detect --source . --verbose
130170
131171.PHONY : sec-trivy
132- sec-trivy : build # # Run trivy vulnerability scan on built binary
133- @command -v trivy > /dev/null 2>&1 || { echo " trivy not found. Install: brew install trivy (macOS) or see https://aquasecurity.github.io/trivy/" ; exit 1; }
134- trivy fs --scanners vuln,secret,misconfig --severity CRITICAL,HIGH .
172+ sec-trivy : .bin/trivy build # # Run trivy vulnerability scan on built binary
173+ .bin/trivy fs --scanners vuln,secret,misconfig --severity CRITICAL,HIGH .
135174
136175# ==============================================================================
137176# ENVIRONMENT HELPERS
0 commit comments