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:
ducoterra
2021-11-02 10:07:50 -04:00
parent d181d452e8
commit 65b3a84e96
7 changed files with 86 additions and 0 deletions

36
.gitlab/Makefile Normal file
View File

@@ -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

9
.gitlab/README.md Normal file
View File

@@ -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
```

View File

@@ -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

View File

@@ -0,0 +1,5 @@
.PHONY: git-release
git-release:
@git add .
@git commit -m "Automated release for version $(VERSION)"
@git tag $(VERSION)

View File

@@ -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

View File

View File

@@ -0,0 +1,3 @@
.PHONY: chart-release
chart-release:
@rsync -av $(CHART)/helm/ charts/$(CHART)/$(shell cat $(CHART)/VERSION)/