-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
64 lines (52 loc) · 2.8 KB
/
Copy pathMakefile
File metadata and controls
64 lines (52 loc) · 2.8 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
.PHONY: run-host run-telemetry run-telemetry-live build test test-no-build pack publish publish-symbols release help
SOLUTION=Modus.slnx
HOST_PROJECT=src/Modus.Host/Modus.Host.csproj
CORE_PROJECT=src/Modus.Core/Modus.Core.csproj
TELEMETRY_PLUGIN_PROJECT=plugins/Plugin.Host.Telemetry.csproj
MACHINE_TELEMETRY_PLUGIN_PROJECT=plugins/Plugin.Machine.Telemetry.csproj
PLUGINS_PATH=$(CURDIR)/plugins
ARTIFACTS_DIR=$(CURDIR)/artifacts/nuget
ARTIFACTS_DIR_WIN=$(subst /,\,$(ARTIFACTS_DIR))
NUGET_SOURCE=https://api.nuget.org/v3/index.json
VERSION=
help:
@echo "Available targets:"
@echo " make run-host # Run host with plugin directory"
@echo " make run-telemetry # Build telemetry plugin and run host"
@echo " make run-telemetry-live # Build telemetry plugins and run host continuously"
@echo " make build # Build full solution"
@echo " make test # Run full solution tests"
@echo " make test-no-build # Run tests without rebuilding"
@echo " make pack # Pack Modus.Core + Modus.Host into artifacts/nuget"
@echo " make publish # Push .nupkg to NuGet (requires NUGET_API_KEY)"
@echo " make publish-symbols # Push .snupkg to NuGet (requires NUGET_API_KEY)"
@echo " make release # Pack + publish + publish-symbols"
@echo " Optional: VERSION=1.2.3 to override PackageVersion when packing"
pack:
dotnet pack $(CORE_PROJECT) -c Release -o $(ARTIFACTS_DIR) $(if $(VERSION),/p:PackageVersion=$(VERSION),)
dotnet pack $(HOST_PROJECT) -c Release -o $(ARTIFACTS_DIR) $(if $(VERSION),/p:PackageVersion=$(VERSION),)
publish:
@if "$(NUGET_API_KEY)"=="" (echo NUGET_API_KEY is required && exit /b 1)
@dir /b "$(ARTIFACTS_DIR_WIN)\*.nupkg" >nul 2>nul || (echo No .nupkg files found in $(ARTIFACTS_DIR_WIN) && exit /b 1)
@for %%F in ("$(ARTIFACTS_DIR_WIN)\*.nupkg") do dotnet nuget push "%%~fF" --source $(NUGET_SOURCE) --api-key $(NUGET_API_KEY) --skip-duplicate --no-symbols
publish-symbols:
@if "$(NUGET_API_KEY)"=="" (echo NUGET_API_KEY is required && exit /b 1)
@dir /b "$(ARTIFACTS_DIR_WIN)\*.snupkg" >nul 2>nul || (echo No .snupkg files found in $(ARTIFACTS_DIR_WIN) && exit /b 1)
@for %%F in ("$(ARTIFACTS_DIR_WIN)\*.snupkg") do dotnet nuget push "%%~fF" --source $(NUGET_SOURCE) --api-key $(NUGET_API_KEY) --skip-duplicate
release: pack publish publish-symbols
run-host:
dotnet run --project $(HOST_PROJECT) -- $(PLUGINS_PATH)
run-telemetry:
dotnet build $(TELEMETRY_PLUGIN_PROJECT)
dotnet build $(MACHINE_TELEMETRY_PLUGIN_PROJECT)
dotnet run --project $(HOST_PROJECT) -- --run-once $(PLUGINS_PATH)
run-telemetry-live:
dotnet build $(TELEMETRY_PLUGIN_PROJECT)
dotnet build $(MACHINE_TELEMETRY_PLUGIN_PROJECT)
dotnet run --project $(HOST_PROJECT) -- $(PLUGINS_PATH)
build:
dotnet build $(SOLUTION)
test:
dotnet test $(SOLUTION)
test-no-build:
dotnet test $(SOLUTION) --no-build