Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -223,3 +223,6 @@ pkg/**/**/*.cover
pkg/**/**/*.cov
*.cov
kdeps
local/
*.kdeps
*.pkl
101 changes: 98 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ CURRENT_DIR=$(pwd)
TELEMETRY_KEY=""
FILES := $(wildcard *.yml *.txt *.py)

.PHONY: all clean test build tools format pre-commit tools-update dev-build
.PHONY: all clean test build tools format pre-commit tools-update dev-build local-dev local-update
all: clean deps test build

deps: tools
Expand All @@ -20,11 +20,13 @@ deps: tools

build: deps
@echo "$(OK_COLOR)==> Building the application...$(NO_COLOR)"
@CGO_ENABLED=1 go build -v -ldflags="-s -w -X main.Version=$(or $(tag),dev-$(shell git describe --tags --abbrev=0))" -o "$(BUILD_DIR)/$(NAME)" "$(BUILD_SRC)"
@CGO_ENABLED=1 go build -v -ldflags="-s -w -X main.Version=$(or $(tag),dev-$(shell git describe --tags --abbrev=0 2>/dev/null || echo 'unknown')) -X main.localMode=0" -o "$(BUILD_DIR)/$(NAME)" "$(BUILD_SRC)"

dev-build: deps
@echo "$(OK_COLOR)==> Building the application for Linux...$(NO_COLOR)"
@GOOS=linux GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-linux-musl-gcc go build -v -ldflags="-s -w -X main.Version=$(or $(tag),dev-$(shell git describe --tags --abbrev=0))" -o "$(BUILD_DIR)/$(NAME)" "$(BUILD_SRC)"
@GOOS=linux GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-linux-musl-gcc go build -v -ldflags="-s -w -X main.Version=$(or $(tag),dev-$(shell git describe --tags --abbrev=0 2>/dev/null || echo 'unknown')) -X main.localMode=0" -o "$(BUILD_DIR)/$(NAME)" "$(BUILD_SRC)"



clean:
@rm -rf ./bin
Expand Down Expand Up @@ -86,3 +88,96 @@ tools-update:
go install github.com/daixiang0/gci@latest; \
go install mvdan.cc/gofumpt@latest; \
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest;

# Local development setup - docker mode only
local-dev:
@echo "$(OK_COLOR)==> Setting up Docker development environment...$(NO_COLOR)"
@make build
@mkdir -p local/pkl local/project local/localproject ~/.kdeps/cache
@echo "$(OK_COLOR)==> Downloading PKL schema files...$(NO_COLOR)"
@if [ ! -d "local/pkl" ] || [ -z "$$(ls -A local/pkl 2>/dev/null)" ]; then \
echo "Downloading PKL files from schema repository..."; \
curl -s https://api.github.com/repos/kdeps/schema/contents/deps/pkl | \
jq -r '.[] | select(.type == "file") | .download_url' | \
while read url; do \
filename=$$(basename "$$url"); \
echo "Downloading $$filename..."; \
curl -s "$$url" -o "local/pkl/$$filename"; \
done; \
else \
echo "PKL files already exist in local/pkl/"; \
fi
@echo "$(OK_COLOR)==> Creating local project...$(NO_COLOR)"
@echo "Creating new local project..."; \
rm -rf localproject; \
~/.local/bin/kdeps new localproject; \
mv localproject local;
@echo "$(OK_COLOR)==> Packaging local project...$(NO_COLOR)"
./bin/kdeps package local/localproject
@echo "$(OK_COLOR)==> Extracting project to local/project...$(NO_COLOR)"
@rm -rf local/project
@mkdir -p local/project
@tar xzf localproject-1.0.0.kdeps -C local/project
@echo "$(OK_COLOR)==> Setting up Docker container...$(NO_COLOR)"
@echo "$(OK_COLOR)==> Adjusting PKL paths for Docker mode...$(NO_COLOR)"
@find local/project -name "*.pkl" -type f -exec sed -i '' 's|package://schema\.kdeps\.com/core@[^#]*#/|/local/pkl/|g' {} \;
@make dev-build
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
if [ -z "$$CONTAINER" ]; then \
echo "$(ERROR_COLOR)==> No running kdeps-* container found$(NO_COLOR)"; \
exit 1; \
fi; \
echo "$(OK_COLOR)==> Found container: $$CONTAINER$(NO_COLOR)"; \
docker cp bin/kdeps $$CONTAINER:/bin/kdeps; \
docker exec $$CONTAINER mkdir -p /local; \
docker cp local/pkl $$CONTAINER:/local/; \
docker exec $$CONTAINER rm -rf /agent/project || true; \
docker exec $$CONTAINER mkdir -p /agent/project; \
docker cp local/project/. $$CONTAINER:/agent/project/; \
if [ -f "local/project/workflow.pkl" ]; then \
docker cp local/project/workflow.pkl $$CONTAINER:/agent/project/workflow.pkl; \
fi; \
if [ -d "local/project/resources" ]; then \
docker exec $$CONTAINER mkdir -p /agent/project/resources; \
docker cp local/project/resources/ $$CONTAINER:/agent/project/; \
fi; \
docker restart $$CONTAINER; \
echo "$(OK_COLOR)==> Docker development environment ready at http://localhost:3000$(NO_COLOR)"

# Helper task to update Docker environment
local-update:
@echo "$(OK_COLOR)==> Updating Docker development environment...$(NO_COLOR)"
@echo "$(OK_COLOR)==> Building kdeps...$(NO_COLOR)"
@make build
@echo "$(OK_COLOR)==> Updating Docker container...$(NO_COLOR)"
@echo "$(OK_COLOR)==> Adjusting PKL paths for Docker mode...$(NO_COLOR)"
@if [ -d "local/project" ]; then \
find local/project -name "*.pkl" -type f -exec sed -i '' 's|package://schema\.kdeps\.com/core@[^#]*#/|/local/pkl/|g' {} \;; \
fi
@make dev-build
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
if [ -z "$$CONTAINER" ]; then \
echo "$(ERROR_COLOR)==> No running kdeps-* container found$(NO_COLOR)"; \
exit 1; \
fi; \
echo "$(OK_COLOR)==> Found container: $$CONTAINER$(NO_COLOR)"; \
docker cp bin/kdeps $$CONTAINER:/bin/kdeps; \
if [ -d "local/pkl" ] && [ -n "$$(ls -A local/pkl 2>/dev/null)" ]; then \
docker exec $$CONTAINER mkdir -p /local; \
docker cp local/pkl $$CONTAINER:/local/; \
fi; \
if [ -d "local/project" ]; then \
docker exec $$CONTAINER rm -rf /agent/project || true; \
docker exec $$CONTAINER mkdir -p /agent/project; \
docker cp local/project/. $$CONTAINER:/agent/project/; \
if [ -f "local/project/workflow.pkl" ]; then \
docker cp local/project/workflow.pkl $$CONTAINER:/agent/project/workflow.pkl; \
fi; \
if [ -d "local/project/resources" ]; then \
docker exec $$CONTAINER mkdir -p /agent/project/resources; \
docker cp local/project/resources/ $$CONTAINER:/agent/project/; \
fi; \
fi; \
docker restart $$CONTAINER; \
echo "$(OK_COLOR)==> Docker environment updated! Available at http://localhost:3000$(NO_COLOR)"

Loading
Loading