- Added new targets for building and testing the WASM verifier. - Updated the 'all' target to include 'build-wasm'. - Modified 'build-frontend' to depend on 'build-wasm'. - Introduced 'test-wasm' for running tests on the WASM verifier. - Clean target now removes WASM output directory.
71 lines
1.7 KiB
Makefile
71 lines
1.7 KiB
Makefile
.PHONY: all build-frontend build-go build-wasm clean release run lint scan check format test test-wasm dev docker-build
|
|
|
|
BINARY_NAME=software-station
|
|
FRONTEND_DIR=frontend
|
|
BUILD_DIR=build
|
|
VERIFIER_DIR=software-verifier
|
|
WASM_OUT=frontend/static/verifier
|
|
|
|
VERSION=$(shell grep '"version":' $(FRONTEND_DIR)/package.json | cut -d'"' -f4)
|
|
BUILD_DATE=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ')
|
|
VCS_REF=$(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
|
|
|
|
all: build-wasm build-frontend build-go
|
|
|
|
dev:
|
|
@echo "Starting development environment..."
|
|
@pnpm --prefix $(FRONTEND_DIR) dev & go run main.go
|
|
|
|
build-wasm:
|
|
@echo "Building WASM verifier..."
|
|
mkdir -p $(WASM_OUT)
|
|
cp "$(shell go env GOROOT)/lib/wasm/wasm_exec.js" $(WASM_OUT)/wasm_exec.js
|
|
cd $(VERIFIER_DIR) && GOOS=js GOARCH=wasm go build -o ../$(WASM_OUT)/verifier.wasm .
|
|
|
|
build-frontend: build-wasm
|
|
cd $(FRONTEND_DIR) && pnpm install && pnpm build
|
|
|
|
build-go:
|
|
go build -o $(BINARY_NAME) main.go
|
|
|
|
release: build-frontend
|
|
CGO_ENABLED=0 go build -ldflags="-s -w" -o $(BINARY_NAME) main.go
|
|
@echo "Release build complete: $(BINARY_NAME)"
|
|
|
|
run: all
|
|
./$(BINARY_NAME)
|
|
|
|
format:
|
|
go fmt ./...
|
|
cd $(FRONTEND_DIR) && pnpm run format
|
|
|
|
lint:
|
|
go vet ./...
|
|
cd $(FRONTEND_DIR) && pnpm run lint
|
|
|
|
scan:
|
|
gosec ./...
|
|
|
|
check:
|
|
cd $(FRONTEND_DIR) && pnpm run check
|
|
|
|
test: test-wasm
|
|
go test -v -coverpkg=./... ./...
|
|
|
|
test-wasm:
|
|
cd $(VERIFIER_DIR) && go test -v ./...
|
|
|
|
clean:
|
|
rm -rf $(FRONTEND_DIR)/build
|
|
rm -rf $(WASM_OUT)
|
|
rm -f $(BINARY_NAME)
|
|
rm -f coverage.out
|
|
|
|
docker-build:
|
|
docker build \
|
|
--build-arg VERSION=$(VERSION) \
|
|
--build-arg BUILD_DATE=$(BUILD_DATE) \
|
|
--build-arg VCS_REF=$(VCS_REF) \
|
|
-t $(BINARY_NAME):latest \
|
|
-t $(BINARY_NAME):$(VERSION) .
|