mirror of
https://github.com/psviderski/uncloud.git
synced 2026-08-26 11:03:34 +00:00
chore: add dev:install and dev:reset mise commands to manually test daemon changes on dev machines
This commit is contained in:
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
#MISE description="Build and install uncloud binaries on dev machines, restart daemon if running"
|
||||
#MISE depends=["build:uncloudd-amd64", "build:uncloudd-arm64"]
|
||||
#MISE raw=true
|
||||
#USAGE arg "<hosts>" var=#true var_min=1 help="Hosts in [user@]host[/arch] format, arch defaults to amd64"
|
||||
|
||||
for arg in ${usage_hosts}; do
|
||||
if [[ "$arg" == */* ]]; then
|
||||
host="${arg%/*}"
|
||||
arch="${arg##*/}"
|
||||
else
|
||||
host="$arg"
|
||||
arch="amd64"
|
||||
fi
|
||||
|
||||
binary="uncloudd-linux-${arch}"
|
||||
echo "==> Installing uncloudd on ${host} (${arch})..."
|
||||
scp "$binary" "${host}:/tmp/"
|
||||
ssh "$host" "sudo install /tmp/${binary} /usr/local/bin/uncloudd && rm /tmp/${binary} && sudo systemctl try-restart uncloud"
|
||||
done
|
||||
|
||||
rm -f uncloudd-linux-amd64 uncloudd-linux-arm64
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
#MISE description="Stop uncloud daemon and wipe state on dev machines"
|
||||
#USAGE arg "<hosts>" var=#true var_min=1 help="Hosts in [user@]host format"
|
||||
|
||||
for host in ${usage_hosts}; do
|
||||
# Strip optional /arch suffix since reset doesn't need it.
|
||||
host="${host%/*}"
|
||||
echo "==> Resetting ${host}..."
|
||||
ssh "$host" "sudo systemctl stop uncloud && sudo rm -rf /var/lib/uncloud"
|
||||
done
|
||||
|
||||
echo "==> Done"
|
||||
+18
@@ -78,6 +78,24 @@ If tests leave leftover containers, clean them up with:
|
||||
make test-clean
|
||||
```
|
||||
|
||||
### Manual testing on dev machines
|
||||
|
||||
After making changes to the daemon code, you may want to test them in your dev cluster. Build and install `uncloudd` on
|
||||
one or multiple dev machines over SSH with:
|
||||
|
||||
```shell
|
||||
mise run dev:install user@host1 user@host2/arm64
|
||||
```
|
||||
|
||||
It will also restart the `uncloud.service` daemon on those machines to pick up the new version. The host format is
|
||||
`[user@]host[/arch]`. The architecture of a machine defaults to `amd64` if not specified.
|
||||
|
||||
To stop the daemon and wipe all Uncloud data on the dev machines, run:
|
||||
|
||||
```shell
|
||||
mise run dev:reset user@host1 user@host2
|
||||
```
|
||||
|
||||
## Linting and formatting
|
||||
|
||||
Lint and format the code:
|
||||
|
||||
@@ -3,35 +3,6 @@
|
||||
CORROSION_IMAGE ?= ghcr.io/psviderski/corrosion:latest
|
||||
UCIND_IMAGE ?= ghcr.io/psviderski/ucind:latest
|
||||
|
||||
update-dev:
|
||||
GOOS=linux GOARCH=amd64 go build -o uncloudd-linux-amd64 ./cmd/uncloudd && \
|
||||
scp uncloudd-linux-amd64 spy@192.168.40.243:~/ && \
|
||||
ssh spy@192.168.40.243 sudo install ./uncloudd-linux-amd64 /usr/local/bin/uncloudd
|
||||
scp uncloudd-linux-amd64 spy@192.168.40.176:~/ && \
|
||||
ssh spy@192.168.40.176 sudo install ./uncloudd-linux-amd64 /usr/local/bin/uncloudd && \
|
||||
rm uncloudd-linux-amd64
|
||||
# GOOS=linux GOARCH=arm64 go build -o uncloudd-linux-arm64 ./cmd/uncloudd && \
|
||||
# scp uncloudd-linux-arm64 ubuntu@152.67.101.197:~/ && \
|
||||
# ssh ubuntu@152.67.101.197 sudo install ./uncloudd-linux-arm64 /usr/local/bin/uncloudd && \
|
||||
# rm uncloudd-linux-arm64
|
||||
|
||||
update-restart-dev:
|
||||
GOOS=linux GOARCH=amd64 go build -o uncloudd-linux-amd64 ./cmd/uncloudd && \
|
||||
scp uncloudd-linux-amd64 spy@192.168.40.243:~/ && \
|
||||
ssh spy@192.168.40.243 "sudo install ./uncloudd-linux-amd64 /usr/local/bin/uncloudd && sudo systemctl restart uncloud" && \
|
||||
scp uncloudd-linux-amd64 spy@192.168.40.176:~/ && \
|
||||
ssh spy@192.168.40.176 "sudo install ./uncloudd-linux-amd64 /usr/local/bin/uncloudd && sudo systemctl restart uncloud" && \
|
||||
rm uncloudd-linux-amd64
|
||||
# GOOS=linux GOARCH=arm64 go build -o uncloudd-linux-arm64 ./cmd/uncloudd && \
|
||||
# scp uncloudd-linux-arm64 ubuntu@152.67.101.197:~/ && \
|
||||
# ssh ubuntu@152.67.101.197 "sudo install ./uncloudd-linux-arm64 /usr/local/bin/uncloudd && sudo systemctl restart uncloud" && \
|
||||
# rm uncloudd-linux-arm64
|
||||
|
||||
reset-dev:
|
||||
ssh spy@192.168.40.243 "sudo systemctl stop uncloud && sudo rm -rf /var/lib/uncloud"
|
||||
ssh spy@192.168.40.176 "sudo systemctl stop uncloud && sudo rm -rf /var/lib/uncloud"
|
||||
ssh ubuntu@152.67.101.197 "sudo systemctl stop uncloud && sudo rm -rf /var/lib/uncloud"
|
||||
|
||||
demo-reset:
|
||||
rm -fv ~/.config/uncloud/config.yaml
|
||||
ssh ubuntu@152.67.101.197 "AUTO_CONFIRM=true sudo -E uncloud-uninstall && docker rmi caddy:2.9.1"
|
||||
|
||||
@@ -13,13 +13,31 @@ protoc-gen-go-grpc = "1.5.1"
|
||||
[env]
|
||||
_.file = ".env"
|
||||
|
||||
[tasks."build:uncloudd-amd64"]
|
||||
description = "Build uncloudd for linux/amd64"
|
||||
run = """
|
||||
VERSION=$(git describe --tags --always --dirty) \
|
||||
GOOS=linux GOARCH=amd64 go build -ldflags "-X github.com/psviderski/uncloud/internal/version.version=$VERSION" \
|
||||
-o uncloudd-linux-amd64 ./cmd/uncloudd
|
||||
"""
|
||||
outputs = ["uncloudd-linux-amd64"]
|
||||
|
||||
[tasks."build:uncloudd-arm64"]
|
||||
description = "Build uncloudd for linux/arm64"
|
||||
run = """
|
||||
VERSION=$(git describe --tags --always --dirty) \
|
||||
GOOS=linux GOARCH=arm64 go build -ldflags "-X github.com/psviderski/uncloud/internal/version.version=$VERSION" \
|
||||
-o uncloudd-linux-arm64 ./cmd/uncloudd
|
||||
"""
|
||||
outputs = ["uncloudd-linux-arm64"]
|
||||
|
||||
[tasks."mise:lock"]
|
||||
description = "Update mise.lock with hashes for all platforms"
|
||||
run = "mise lock --platform linux-x64,macos-arm64"
|
||||
|
||||
[tasks.proto]
|
||||
description = "Regenerate gRPC API code from .proto files"
|
||||
run = """
|
||||
protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative \
|
||||
--proto_path=. --proto_path=internal/machine/api/vendor internal/machine/api/pb/*.proto
|
||||
"""
|
||||
|
||||
[tasks.mise-lock]
|
||||
description = "Update mise.lock with hashes for all platforms"
|
||||
run = "mise lock --platform linux-x64,macos-arm64"
|
||||
|
||||
Reference in New Issue
Block a user