Skip to content

Commit e5bacd8

Browse files
Add make multipass target (#3938)
* Add make multipass target Add a `make multipass` target to start a dev env with all tools needed for testing.
1 parent 2df9042 commit e5bacd8

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

Makefile

+11
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,17 @@ help: ## - Show help message
6969
@printf "${CMD_COLOR_ON} usage: make [target]\n\n${CMD_COLOR_OFF}"
7070
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | sed -e "s/^Makefile://" | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
7171

72+
.PHONY: multipass
73+
multipass: ## - Launch a multipass instance for development
74+
ifeq ($(shell uname -p),arm)
75+
$(eval ARCH := arm64)
76+
else
77+
$(eval ARCH := amd64)
78+
endif
79+
@cat dev-tools/multipass-cloud-init.yml.envsubst | GO_VERSION=${GO_VERSION} ARCH=${ARCH} envsubst > dev-tools/multipass-cloud-init.yml
80+
@multipass launch --cloud-init=dev-tools/multipass-cloud-init.yml --mount ..:~/git --name fleet-server-dev --memory 8G --cpus 2 --disk 50G noble
81+
@rm dev-tools/multipass-cloud-init.yml
82+
7283
.PHONY: list-platforms
7384
list-platforms: ## - Show the possible PLATFORMS
7485
@echo "${PLATFORMS}"

dev-tools/multipass-cloud-init.yml dev-tools/multipass-cloud-init.yml.envsubst

+7-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
apt:
1111
sources:
1212
docker.list:
13-
source: deb [arch=amd64] https://download.docker.com/linux/ubuntu $RELEASE stable
13+
source: deb [arch=${ARCH}] https://download.docker.com/linux/ubuntu noble stable
1414
keyid: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
1515
groups:
1616
- docker
@@ -32,9 +32,12 @@ packages:
3232
- containerd.io
3333
- docker-buildx-plugin
3434
- docker-compose-plugin
35+
- unzip
36+
- zip
3537
write_files:
3638
- content: |
3739
export PATH=$PATH:/usr/local/go/bin
40+
export PATH=$PATH:$(go env GOPATH)/bin
3841
path: /etc/profile.d/go-bin.sh
3942
# backwords compatibilityi alias for docker-compose
4043
# makefile does not use the alias
@@ -43,6 +46,8 @@ write_files:
4346
path: /etc/profile.d/docker-compose-alias.sh
4447
runcmd:
4548
- [ mkdir, /run/go ]
46-
- [ wget, https://go.dev/dl/go1.20.4.linux-amd64.tar.gz, -O, /run/go/go.tar.gz ] # FIXME don't hardcode go version
49+
- [ wget, https://go.dev/dl/go${GO_VERSION}.linux-${ARCH}.tar.gz, -O, /run/go/go.tar.gz ]
4750
- [ tar, -xzf, /run/go/go.tar.gz, -C, /usr/local/ ]
4851
- [ rm, -rf, /run/go ]
52+
- [ su, ubuntu, -c, "/usr/local/go/bin/go install github.com/magefile/mage@latest" ]
53+
- [ su, ubuntu, -c, "/usr/local/go/bin/go install github.com/go-delve/delve/cmd/dlv@latest" ]

0 commit comments

Comments
 (0)