-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
73 lines (60 loc) · 2.71 KB
/
Makefile
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
BINARY_NAME=cobbler
EXECUTOR?=docker
COBBLER_SERVER_URL=http://localhost:8081/cobbler_api
TEST?=$$(go list ./... |grep -v 'vendor')
VERSION=0.0.1
build:
@echo "building package"
go build -o ${BINARY_NAME} main.go
@echo "creating shell completions"
make shell_completions
build-docker:
@echo "building docker"
${EXECUTOR} build -t cobbler/cli:latest -f packaging/docker/production/Dockerfile .
build-rpm-docker:
@docker build -t localhost/cobbler-cli-pkg:opensuse-tumblewed -f packaging/docker/openSUSE_Tumbleweed/Dockerfile .
@docker run --rm -v $(CURDIR)/rpms/openSUSE_Tumbleweed:/root/rpmbuild/RPMS -v $(CURDIR):/workspace localhost/cobbler-cli-pkg:opensuse-tumblewed
build-deb-docker:
@docker build -t localhost/cobbler-cli-pkg:debian-12 -f packaging/docker/Debian_12/Dockerfile .
@docker run --rm -v $(CURDIR)/debs/Debian_12:/usr/src/cobbler-cli/deb-build -v $(CURDIR):/workspace localhost/cobbler-cli-pkg:debian-12
build-rpm:
@cp packaging/rpm/cobbler-cli.spec /root/rpmbuild/SPECS/cobbler-cli.spec
@cd ..; tar --exclude dist --exclude ".idea" --exclude ubuntu-20.04.1-legacy-server-amd64.iso --exclude extracted_iso_image --transform="s/workspace/cobbler-cli-${VERSION}/" -zcvf "cobbler-cli-${VERSION}.tar.gz" /workspace
@mv ../cobbler-cli-${VERSION}.tar.gz /root/rpmbuild/SOURCES
@go mod vendor; tar -zcvf "vendor.tar.gz" vendor; mv vendor.tar.gz /root/rpmbuild/SOURCES
@rpmbuild --define "_topdir /root/rpmbuild" \
--bb /root/rpmbuild/SPECS/cobbler-cli.spec
build-deb:
@mkdir debian; cp -r packaging/deb/* debian/
@cd debian; rename "s/debian\.//" *
@go mod vendor; tar -zcvf "vendor.tar.gz" vendor; mv vendor.tar.gz debian/; rm -r vendor
@cd debian; tar -xvzf vendor.tar.gz
@debuild -us -uc
@rm -r debian
@cp ../cobbler-cli_* /usr/src/cobbler-cli/deb-build
clean:
go clean
rm -f ${BINARY_NAME}
rm -rf config/completions/*
cleandoc: ## Cleans the docs directory.
@echo "cleaning documentation"
@cd docs; make clean > /dev/null 2>&1
doc:
@echo "creating: documentation"
@cd docs; make html
run:
go build -o ${BINARY_NAME} main.go
./${BINARY_NAME}
test:
@./testing/start.sh ${COBBLER_SERVER_URL}
go test -v -coverprofile="coverage.out" -covermode="atomic" $(TEST)
shell_completions:
@mkdir -p config/completions/bash
@mkdir -p config/completions/fish
@mkdir -p config/completions/powershell
@mkdir -p config/completions/zsh
./${BINARY_NAME} completion bash > config/completions/bash/cobbler
./${BINARY_NAME} completion fish > config/completions/fish/cobbler
./${BINARY_NAME} completion powershell > config/completions/powershell/cobbler
./${BINARY_NAME} completion zsh > config/completions/zsh/cobbler
.PHONY: build build-docker build-rpm-docker build-rpm clean cleandoc doc run test shell_completions