Build server tags in Makefile & air config #3

The build system is changed, now it build 2 different binary by using
go `-tags`. The local output binary also changed based on build tags.
This commit is contained in:
ditatompel 2024-05-18 18:05:53 +07:00
parent 7dea8380b8
commit 279b142e76
No known key found for this signature in database
GPG key ID: 31D3D06D77950979
3 changed files with 12 additions and 10 deletions

View file

@ -5,7 +5,7 @@ tmp_dir = "tmp"
[build] [build]
args_bin = [] args_bin = []
bin = "./tmp/main" bin = "./tmp/main"
cmd = "go build -o ./tmp/main ." cmd = "go build -tags server -o ./tmp/main ."
delay = 0 delay = 0
exclude_dir = ["assets", "tmp", "testdata", "frontend/node_modules", "data", "bin", "tools"] exclude_dir = ["assets", "tmp", "testdata", "frontend/node_modules", "data", "bin", "tools"]
exclude_file = [] exclude_file = []

View file

@ -1,17 +1,19 @@
.PHONY: deploy-prober deploy-server ui build linux-amd64 linux-arm64 .PHONY: deploy-prober deploy-server ui client server build
BINARY_NAME = xmr-nodes BINARY_NAME = xmr-nodes
build: ui linux-amd64 linux-arm64 build: client server
ui: ui:
go generate ./... go generate ./...
linux-amd64: client:
CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -o bin/${BINARY_NAME}-static-linux-amd64 CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -ldflags="-s -w" -o bin/${BINARY_NAME}-client-linux-amd64
CGO_ENABLED=0 GOARCH=arm64 GOOS=linux go build -ldflags="-s -w" -o bin/${BINARY_NAME}-client-linux-arm64
linux-arm64: server: ui
CGO_ENABLED=0 GOARCH=arm64 GOOS=linux go build -o bin/${BINARY_NAME}-static-linux-arm64 CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -ldflags="-s -w" -tags server -o bin/${BINARY_NAME}-server-linux-amd64
CGO_ENABLED=0 GOARCH=arm64 GOOS=linux go build -ldflags="-s -w" -tags server -o bin/${BINARY_NAME}-server-linux-arm64
clean: clean:
go clean go clean

View file

@ -21,9 +21,9 @@ Source code of [https://xmr.ditatompel.com](https://xmr.ditatompel.com), a websi
1. Download [GeoIP Database](https://dev.maxmind.com/geoip/geoip2/geolite2/) and place it to `./assets/geoip`. (see [./internal/repo/geoip.go](./internal/repo/geoip.go)). 1. Download [GeoIP Database](https://dev.maxmind.com/geoip/geoip2/geolite2/) and place it to `./assets/geoip`. (see [./internal/repo/geoip.go](./internal/repo/geoip.go)).
2. Copy `.env.example` to `.env` and edit it to match with server environment. 2. Copy `.env.example` to `.env` and edit it to match with server environment.
3. Build the binary with `make build`. 3. Build the binary with `make build`.
4. Run the service with `./bin/xmr-nodes-static-linux-<YOUR_CPU_ARCH> serve`. 4. Run the service with `./bin/xmr-nodes-server-linux-<YOUR_CPU_ARCH> serve`.
To create admin user (for creating prober API key from Web-UI, execute `./bin/xmr-nodes-static-linux-<YOUR_CPU_ARCH> admin create`). To create admin user (for creating prober API key from Web-UI, execute `./bin/xmr-nodes-server-linux-<YOUR_CPU_ARCH> admin create`).
Systemd example: [./tools/resources/init/xmr-nodes-server.service](./tools/resources/init/xmr-nodes-server.service). Systemd example: [./tools/resources/init/xmr-nodes-server.service](./tools/resources/init/xmr-nodes-server.service).
@ -32,7 +32,7 @@ Systemd example: [./tools/resources/init/xmr-nodes-server.service](./tools/resou
1. Create API key for prober 1. Create API key for prober
2. Copy `.env.example` to `.env` and edit it to match with prober environment. 2. Copy `.env.example` to `.env` and edit it to match with prober environment.
3. Build the binary with `make build`. 3. Build the binary with `make build`.
4. Run the service with `./bin/xmr-nodes-static-linux-<YOUR_CPU_ARCH> prober`. 4. Run the service with `./bin/xmr-nodes-client-linux-<YOUR_CPU_ARCH> probe`.
Systemd example: [xmr-nodes-prober.service](./tools/resources/init/xmr-nodes-prober.service) and [xmr-nodes-prober.timer](./tools/resources/init/xmr-nodes-prober.timer). Systemd example: [xmr-nodes-prober.service](./tools/resources/init/xmr-nodes-prober.service) and [xmr-nodes-prober.timer](./tools/resources/init/xmr-nodes-prober.timer).