-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
167 lines (141 loc) Β· 6.83 KB
/
Makefile
File metadata and controls
167 lines (141 loc) Β· 6.83 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# RT Container Runtime - Makefile for macOS/WSL Development
# Requires Docker dan Docker Compose untuk Linux environment
.PHONY: help setup dev test test-unit test-integration clean
# Default target
help:
@echo "RT Container Runtime - Development Commands"
@echo ""
@echo "ποΈ SETUP COMMANDS:"
@echo " make setup - Setup development environment"
@echo " make dev - Start interactive development container"
@echo " make clean - Cleanup containers dan volumes"
@echo ""
@echo "π§ͺ TESTING COMMANDS:"
@echo " make test - Run all tests dalam Linux container"
@echo " make test-unit - Run unit tests only"
@echo " make test-integration - Run integration tests only"
@echo " make test-components - Run component tests (busybox, namespace, cgroup, network)"
@echo " make test-stress - Run stress tests"
@echo " make test-resources - Run resource validation tests"
@echo " make test-cleanup - Run cleanup verification tests"
@echo ""
@echo "π§ SPECIFIC COMPONENT TESTS:"
@echo " make test-busybox - Run busybox management tests"
@echo " make test-namespace - Run namespace management tests"
@echo " make test-cgroup - Run cgroup management tests"
@echo " make test-network - Run network management tests"
@echo ""
@echo "π¬ DEMO SCENARIOS:"
@echo " make demo - Show available demo scenarios"
@echo " make demo-basic - Basic container lifecycle demo"
@echo " make demo-namespace - Namespace isolation demo"
@echo " make demo-resources - Resource management demo"
@echo " make demo-network - Container networking demo"
@echo " make demo-multi - Multi application demo"
@echo " make demo-tour - Complete educational tour"
@echo " make demo-all - Run all demo scenarios"
@echo ""
@echo "βΉοΈ OTHER COMMANDS:"
@echo " make help - Show this help message"
@echo ""
@echo "π Requirements:"
@echo " - Docker Desktop untuk macOS"
@echo " - Docker Compose"
@echo ""
@echo "π Seperti RT yang menyediakan berbagai perintah untuk mengelola kompleks"
# Check if Docker is available
check-docker:
@which docker > /dev/null || (echo "Error: Docker tidak ditemukan. Install Docker Desktop untuk macOS dari https://docker.com/products/docker-desktop" && exit 1)
@which docker-compose > /dev/null || (echo "Error: Docker Compose tidak ditemukan. Install Docker Compose atau gunakan Docker Desktop" && exit 1)
@docker info > /dev/null 2>&1 || (echo "Error: Docker daemon tidak running. Start Docker Desktop" && exit 1)
# Setup development environment
setup: check-docker
@echo "ποΈ Setting up RT development environment..."
@docker-compose build rt-dev
@echo "β
Development environment ready!"
@echo "Run 'make dev' untuk start development container"
# Start interactive development container
dev: check-docker
@echo "π Starting RT development container..."
@echo "π Code directory mounted ke /workspace"
@echo "π§ Privileged mode enabled untuk namespace operations"
@docker-compose run --rm rt-dev
# Run all tests inside Linux container
test: check-docker
@echo "π§ͺ Running all tests dalam Linux environment..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/run-all-tests.sh"
# Run unit tests only
test-unit: check-docker
@echo "π¬ Running unit tests..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/unit-tests.sh"
# Run integration tests only
test-integration: check-docker
@echo "π Running integration tests..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/integration-tests.sh"
# Run stress tests
test-stress: check-docker
@echo "πͺ Running stress tests..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/stress-tests.sh"
# Run resource validation tests
test-resources: check-docker
@echo "π Running resource validation tests..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/resource-validation-tests.sh"
# Run cleanup verification tests
test-cleanup: check-docker
@echo "π§Ή Running cleanup verification tests..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/cleanup-verification-tests.sh"
# Run network tests
test-network: check-docker
@echo "π Running network tests..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/network-tests.sh"
# Run cgroup tests
test-cgroup: check-docker
@echo "β‘ Running cgroup tests..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/cgroup-tests.sh"
# Run namespace tests
test-namespace: check-docker
@echo "π Running namespace tests..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/namespace-tests.sh"
# Run busybox tests
test-busybox: check-docker
@echo "π¦ Running busybox tests..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/busybox-tests.sh"
# Run component tests
test-components: check-docker
@echo "π§ Running component tests..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./tests/busybox-tests.sh && ./tests/namespace-tests.sh && ./tests/cgroup-tests.sh && ./tests/network-tests.sh"
# Cleanup containers and volumes
clean: check-docker
@echo "π§Ή Cleaning up development environment..."
@docker-compose down -v --remove-orphans
@docker system prune -f
@echo "β
Cleanup complete!"
# Demo scenarios for educational purposes
demo: check-docker
@echo "π¬ Starting RT Container Runtime demo scenarios..."
@echo "π Available demos: basic-lifecycle, namespace-isolation, resource-management, container-networking, multi-container, educational-tour, all-demos"
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./demo-scenarios.sh"
demo-basic: check-docker
@echo "π¬ Running basic lifecycle demo..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./demo-scenarios.sh basic-lifecycle"
demo-namespace: check-docker
@echo "π¬ Running namespace isolation demo..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./demo-scenarios.sh namespace-isolation"
demo-resources: check-docker
@echo "π¬ Running resource management demo..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./demo-scenarios.sh resource-management"
demo-network: check-docker
@echo "π¬ Running container networking demo..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./demo-scenarios.sh container-networking"
demo-multi: check-docker
@echo "π¬ Running multi demo..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./demo-scenarios.sh multi-container"
demo-tour: check-docker
@echo "π¬ Running complete educational tour..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./demo-scenarios.sh educational-tour"
demo-all: check-docker
@echo "π¬ Running all demo scenarios..."
@docker-compose run --rm rt-dev bash -c "cd /workspace && ./demo-scenarios.sh all-demos"
# Development shortcuts
shell: dev
build: setup