-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
68 lines (62 loc) · 2.9 KB
/
Copy pathMakefile
File metadata and controls
68 lines (62 loc) · 2.9 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
.PHONY: rerelease release dev-install dev-install-local dev-restore sync-schemas
# Build and install locally for development
dev-install:
@echo "Building CLI with prod config..."
go build -ldflags "-X 'github.com/major-technology/cli/cmd.configFile=configs/prod.json'" -o major .
@echo "Backing up current CLI..."
@cp ~/.major/bin/major ~/.major/bin/major.backup 2>/dev/null || true
@echo "Installing development build..."
@cp major ~/.major/bin/major
@rm major
@codesign --force --sign - ~/.major/bin/major 2>/dev/null || true
@mkdir -p ~/.major
@printf "configs/prod.json" > ~/.major/env
@echo "Done! Run 'major --version' to verify."
# Build and install locally with local.json config (for testing against local API)
dev-install-local:
@echo "Building CLI with LOCAL config..."
go build -ldflags "-X 'github.com/major-technology/cli/cmd.configFile=configs/local.json'" -o major .
@echo "Backing up current CLI..."
@cp ~/.major/bin/major ~/.major/bin/major.backup 2>/dev/null || true
@echo "Installing development build..."
@cp major ~/.major/bin/major
@rm major
@codesign --force --sign - ~/.major/bin/major 2>/dev/null || true
@mkdir -p ~/.major
@printf "configs/local.json" > ~/.major/env
@echo "Done! major CLI now uses configs/local.json"
# Restore original CLI from backup
dev-restore:
@echo "Restoring original CLI..."
@cp ~/.major/bin/major.backup ~/.major/bin/major
@echo "Done!"
rerelease:
@echo "Releasing version v$(VERSION)..."
git tag -d v$(VERSION)
git push origin :refs/tags/v$(VERSION)
git tag -a v$(VERSION) -m "v$(VERSION)"
git push origin v$(VERSION)
@echo "Successfully released v$(VERSION)"
release:
@echo "Releasing version v$(VERSION)..."
git tag -a v$(VERSION) -m "v$(VERSION)"
git push origin v$(VERSION)
@echo "Successfully released v$(VERSION)"
# Vendor-sync projects/schemas/*.schema.json from the platform API. mono-builder
# is the source of truth: it generates these schemas from zod and serves them at
# GET <base>/schemas/{project,agent,bindings}.json. Refresh the
# vendored copy and its SCHEMAS.sha256 manifest after an upstream schema change.
# Override the source with MAJOR_SCHEMAS_BASE_URL, e.g. against a local dev API:
# MAJOR_SCHEMAS_BASE_URL=http://localhost:3301 make sync-schemas
sync-schemas:
@base="$${MAJOR_SCHEMAS_BASE_URL:-https://api.major.tech}"; \
echo "Syncing schemas from $$base..."; \
curl -fsSL "$$base/schemas/project.json" -o projects/schemas/project.schema.json; \
curl -fsSL "$$base/schemas/agent.json" -o projects/schemas/agent.schema.json; \
curl -fsSL "$$base/schemas/bindings.json" -o projects/schemas/bindings.schema.json; \
{ \
echo "source: $$base"; \
echo "fetched: $$(date -u +%Y-%m-%dT%H:%M:%SZ)"; \
shasum -a 256 projects/schemas/project.schema.json projects/schemas/agent.schema.json projects/schemas/bindings.schema.json; \
} > projects/schemas/SCHEMAS.sha256; \
echo "Done. Vendored schemas + projects/schemas/SCHEMAS.sha256 written."