GitRoot
craft your forge, build your project, grow your community freely
1# SPDX-FileCopyrightText: 2025 Romain Maneschi <romain@gitroot.dev>
2#
3# SPDX-License-Identifier: EUPL-1.2
4
5VERSION=`git describe --exact-match --tags HEAD 2> /dev/null`
6COMMIT=`git rev-parse HEAD`
7PLUGINS_DIR=$(shell find app/plugins/ -maxdepth 1 -mindepth 1 -type d)
8MAKEFLAGS += --no-print-directory
9
10build:
11 cd app/server/ && GOOS=linux GOARCH=amd64 go build -ldflags "-X main.version=${VERSION} -X main.commit=${COMMIT}" -o ../../releases/gitroot-linux-amd64
12 cd app/server/ && GOOS=linux GOARCH=arm64 go build -ldflags "-X main.version=${VERSION} -X main.commit=${COMMIT}" -o ../../releases/gitroot-linux-arm64
13 cd app/server/ && GOOS=darwin GOARCH=amd64 go build -ldflags "-X main.version=${VERSION} -X main.commit=${COMMIT}" -o ../../releases/gitroot-darwin-amd64
14 cd app/server/ && GOOS=darwin GOARCH=arm64 go build -ldflags "-X main.version=${VERSION} -X main.commit=${COMMIT}" -o ../../releases/gitroot-darwin-arm64
15
16build-plugins:
17 for dir in $(PLUGINS_DIR) ; do \
18 make -C $$dir build; \
19 done
20
21test:
22 cd app/libs/golang/glob && go test -race ./...
23 cd app/libs/golang/plugin && go test -race ./...
24 for dir in $(PLUGINS_DIR) ; do \
25 make -C $$dir test; \
26 done
27 cd app/server/ && go test -race ./...
28
29testsuite: build-plugins
30 cd app/testsuite && ./runtest.sh && ./proxy.sh
31
32testasc: build-plugins
33 cd app/testsuite && ./assemblescript.sh
34
35testall: test testsuite
36
37force-build-plugins: clean-plugins build-plugins
38
39clean-plugins:
40 for dir in $(PLUGINS_DIR) ; do \
41 make -C $$dir clean; \
42 done
43
44clean: clean-plugins
45 cd app/server/ && go clean
46 rm -rf gitroot