make subtree "split" overhaul
In order to create cleaner histories we should be using subtree split and push in order to preview the changes as an MR before pushing to main.
This commit is contained in:
@@ -0,0 +1,36 @@
|
|||||||
|
SHELL := /bin/bash
|
||||||
|
|
||||||
|
VERSION ?= $(shell cat VERSION)
|
||||||
|
IMAGE ?= $(shell cat IMAGE):$(VERSION)
|
||||||
|
IMAGE_LATEST ?= $(shell cat IMAGE):latest
|
||||||
|
PWD ?= $(shell pwd)
|
||||||
|
STASH ?= "common-update-stash"
|
||||||
|
|
||||||
|
include .gitlab/make/docker.makefile
|
||||||
|
include .gitlab/make/helm.makefile
|
||||||
|
include .gitlab/make/kaniko.makefile
|
||||||
|
include .gitlab/make/truenas.makefile
|
||||||
|
include .gitlab/make/git.makefile
|
||||||
|
|
||||||
|
.PHONY: warning
|
||||||
|
warning:
|
||||||
|
@printf "Running a potentially destructive command. If a conflict occurs, fix the conflict and re-run the command.\n"
|
||||||
|
@printf "Cancel with ctrl + c within 3 seconds."
|
||||||
|
@sleep 3
|
||||||
|
|
||||||
|
.PHONY: make-stash-drop
|
||||||
|
make-stash-drop:
|
||||||
|
@if [ ! -z "$$(git stash list | grep -r 'stash@{0}.*common')" ]; then git stash drop; fi
|
||||||
|
|
||||||
|
.PHONY: make-update
|
||||||
|
make-update:
|
||||||
|
-git remote add common git@gitlab.ducoterra.net:services/common.git
|
||||||
|
-git subtree pull --prefix .gitlab --message "Merge update from Common" -q git@gitlab.ducoterra.net:services/common.git main
|
||||||
|
|
||||||
|
.PHONY: make-push
|
||||||
|
make-push: warning
|
||||||
|
@make make-update
|
||||||
|
@git remote add common git@gitlab.ducoterra.net:services/common.git
|
||||||
|
@git subtree split --branch common-minecraft --prefix .gitlab
|
||||||
|
@git subtree push --prefix .gitlab common main
|
||||||
|
@git remote remove common
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# Adding the "common" subtree as your .gitlab folder
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Add the subtree as a remote
|
||||||
|
git subtree add --prefix .gitlab git@gitlab.ducoterra.net:services/common.git main --squash
|
||||||
|
|
||||||
|
# Now you can run the following to update
|
||||||
|
make make-update
|
||||||
|
```
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
.PHONY: docker-init
|
||||||
|
docker-init:
|
||||||
|
@touch VERSION
|
||||||
|
@touch IMAGE
|
||||||
|
|
||||||
|
.PHONY: buildx-context
|
||||||
|
buildx-context:
|
||||||
|
docker buildx create --name container-builder --use --platform linux/amd64,linux/arm64
|
||||||
|
|
||||||
|
.PHONY: buildx-clear
|
||||||
|
buildx-clear:
|
||||||
|
docker buildx rm container-builder
|
||||||
|
|
||||||
|
.PHONY: build
|
||||||
|
build:
|
||||||
|
docker buildx build --load . -t $(IMAGE)
|
||||||
|
@docker buildx build --load . -t $(IMAGE_LATEST)
|
||||||
|
|
||||||
|
.PHONY: push
|
||||||
|
push:
|
||||||
|
-make buildx-clear
|
||||||
|
@make buildx-context
|
||||||
|
docker buildx build --platform linux/amd64,linux/arm64 --push . -t $(IMAGE)
|
||||||
|
@docker buildx build --platform linux/amd64,linux/arm64 --push . -t $(IMAGE_LATEST)
|
||||||
|
|
||||||
|
.PHONY: docker-release
|
||||||
|
docker-release:
|
||||||
|
@yq e ".services.minecraft.image = \"$(IMAGE)\"" -i docker-compose.yaml
|
||||||
|
@make push
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
.PHONY: git-release
|
||||||
|
git-release:
|
||||||
|
@git add .
|
||||||
|
@git commit -m "Automated release for version $(VERSION)"
|
||||||
|
@git tag $(VERSION)
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
.PHONY: helm-release
|
||||||
|
helm-release:
|
||||||
|
@yq e ".version = \"$(shell cat VERSION)\"" -i helm/Chart.yaml
|
||||||
|
@yq e ".appVersion = \"$(shell cat VERSION)\"" -i helm/Chart.yaml
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
.PHONY: chart-release
|
||||||
|
chart-release:
|
||||||
|
@rsync -av $(CHART)/helm/ charts/$(CHART)/$(shell cat $(CHART)/VERSION)/
|
||||||
Reference in New Issue
Block a user