diff --git a/Makefile b/Makefile
index 0981f712..847292d2 100644
--- a/Makefile
+++ b/Makefile
@@ -1,62 +1,10 @@
+PROJECT_WORKSPACE ?= $(CURDIR)
+INCLUDE_BUILD_DIR ?= $(PROJECT_WORKSPACE)/build
+
DOCKER_BIN ?= docker
MAVEN_BIN ?= mvn
-DOCKER_CMD ?= $(DOCKER_BIN) run --rm -t \
- -v $(HOME)/.docker/:/root/.docker/ \
- -v /var/run/docker.sock:/var/run/docker.sock \
- -v $(CURDIR):/src/nrjmx \
- -w /src/nrjmx \
- -e GITHUB_TOKEN \
- -e TAG \
- -e GPG_MAIL \
- -e GPG_PASSPHRASE \
- -e GPG_PRIVATE_KEY_BASE64 \
- nrjmx_builder
TAG ?= v0.0.0
-.PHONY : deps
-deps:
- @docker build -t nrjmx_builder .
-
-.PHONY : build
-build:
- @($(MAVEN_BIN) clean package -DskipTests -P \!deb,\!rpm,\!tarball,\!test)
-
-.PHONY : package
-package:
- @($(MAVEN_BIN) versions:set -DnewVersion=\$(subst v,,$(TAG)))
- @($(MAVEN_BIN) clean -DskipTests package)
-
-.PHONY : test
-test:
- @($(MAVEN_BIN) clean test -P test)
-
-.PHONY : ci/build
-ci/build: deps
- @($(DOCKER_CMD) make build)
-
-.PHONY : ci/package
-ci/package: deps
- @($(DOCKER_CMD) make package)
-
-.PHONY : ci/test
-ci/test: deps
- @($(DOCKER_CMD) make test)
-
-.PHONY : release/sign
-release/sign:
- @echo "=== [release/sign] signing packages"
- @bash $(CURDIR)/sign.sh
-
-.PHONY : release/publish
-release/publish:
- @echo "=== [release/publish] publishing artifacts"
- @bash $(CURDIR)/upload_artifacts_gh.sh
-
-.PHONY : release-linux
-release-linux: package release/sign release/publish
- @echo "=== [release-linux] full pre-release cycle complete for nix"
-
-.PHONY : ci/release
-ci/release: deps
- @($(DOCKER_CMD) make release-linux)
\ No newline at end of file
+include $(INCLUDE_BUILD_DIR)/build.mk
+include $(INCLUDE_BUILD_DIR)/ci.mk
\ No newline at end of file
diff --git a/Dockerfile b/build/Dockerfile
similarity index 100%
rename from Dockerfile
rename to build/Dockerfile
diff --git a/assembly.xml b/build/assembly/targz.xml
similarity index 100%
rename from assembly.xml
rename to build/assembly/targz.xml
diff --git a/assembly-zip.xml b/build/assembly/zip.xml
similarity index 100%
rename from assembly-zip.xml
rename to build/assembly/zip.xml
diff --git a/build/build.mk b/build/build.mk
new file mode 100644
index 00000000..bc253e22
--- /dev/null
+++ b/build/build.mk
@@ -0,0 +1,17 @@
+.PHONY : build
+build:
+ @($(MAVEN_BIN) clean package -DskipTests -P \!deb,\!rpm,\!tarball,\!test)
+
+.PHONY : package
+package:
+ @($(MAVEN_BIN) versions:set -DnewVersion=\$(subst v,,$(TAG)))
+ @($(MAVEN_BIN) clean -DskipTests package)
+
+.PHONY : test
+test:
+ @($(MAVEN_BIN) clean test -P test)
+
+.PHONY : sign
+release/sign:
+ @echo "=== [sign] signing packages"
+ @bash $(CURDIR)/build/sign.sh
diff --git a/build/ci.mk b/build/ci.mk
new file mode 100644
index 00000000..a2d6b095
--- /dev/null
+++ b/build/ci.mk
@@ -0,0 +1,40 @@
+DOCKER_CMD ?= $(DOCKER_BIN) run --rm -t \
+ -v $(HOME)/.docker/:/root/.docker/ \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ -v $(CURDIR):/src/nrjmx \
+ -w /src/nrjmx \
+ -e GITHUB_TOKEN \
+ -e TAG \
+ -e GPG_MAIL \
+ -e GPG_PASSPHRASE \
+ -e GPG_PRIVATE_KEY_BASE64 \
+ nrjmx_builder
+
+.PHONY : deps
+deps:
+ @docker build -t nrjmx_builder ./build/.
+
+.PHONY : ci/build
+ci/build: deps
+ @($(DOCKER_CMD) make build)
+
+.PHONY : ci/package
+ci/package: deps
+ @($(DOCKER_CMD) make package)
+
+.PHONY : ci/test
+ci/test: deps
+ @($(DOCKER_CMD) make test)
+
+publish:
+ @echo "=== [release/publish] publishing artifacts"
+ @bash $(CURDIR)/build/upload_artifacts_gh.sh
+
+release: package sign publish
+ @echo "=== [release] full pre-release cycle complete for nix"
+
+.PHONY : ci/release
+ci/release: deps
+ @($(DOCKER_CMD) make release)
+
+
diff --git a/sign.sh b/build/sign.sh
similarity index 100%
rename from sign.sh
rename to build/sign.sh
diff --git a/pom.xml b/pom.xml
index 782a64a8..ff912b3b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,7 +157,7 @@
${project.artifactId}_linux_${project.version}_noarch
false
- assembly.xml
+ build/assembly/targz.xml
package
@@ -169,7 +169,7 @@
${project.artifactId}_windows_${project.version}_noarch
false
- assembly-zip.xml
+ build/assembly/zip.xml
package