diff --git a/Makefile b/Makefile
index 2a9bb30..9857746 100644
--- a/Makefile
+++ b/Makefile
@@ -24,7 +24,6 @@
 ##-------------------##
 TOP          ?= .
 MAKEDIR      ?= $(TOP)/makefiles
-export SHELL := bash -e -o pipefail#    # [TODO] remove once set -u cleaned up
 
 ##--------------------##
 ##---]  INCLUDES  [---##
diff --git a/docs/release/README.md b/docs/release/README.md
new file mode 100644
index 0000000..29336a7
--- /dev/null
+++ b/docs/release/README.md
@@ -0,0 +1,29 @@
+# Construction zone
+
+## Intent
+At release time branch test suites.  Creation is dependency driven so
+existing test suites cannot be corrupted by stray typos.
+
+## Help
+
+```
+% make help
+Usage: make [options] [target] ...
+  help-voltha-release Display voltha release targets
+
+% make help-voltha-release
+[RELEASE] - Create branch driven testing pipelines
+  create-jobs-release
+  create-jobs-release-nightly Nightly testing
+  create-jobs-release-units   Unit testing
+```
+
+## Usage
+- git clone ci-management
+- make voltha-version=voltha-2.12 create-jobs-release
+
+## Clean targets (dangerous)
+- make voltha-version=voltha-2.12 sterile-create-jobs-release
+
+## See Also
+- docs/jjb/voltha-test/voltha-nightly-jobs/README.md
diff --git a/makefiles/include.mk b/makefiles/include.mk
index be08b19..d4fb1e3 100644
--- a/makefiles/include.mk
+++ b/makefiles/include.mk
@@ -35,6 +35,8 @@
 include $(ONF_MAKE)/git-submodules.mk
 include $(ONF_MAKE)/gerrit/include.mk
 
+include $(ONF_MAKE)/release/include.mk
+
 include $(ONF_MAKE)/todo.mk
 include $(ONF_MAKE)/help/variables.mk
 
diff --git a/makefiles/release/help.mk b/makefiles/release/help.mk
new file mode 100644
index 0000000..fde2d0e
--- /dev/null
+++ b/makefiles/release/help.mk
@@ -0,0 +1,33 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# -----------------------------------------------------------------------
+# Intent: Helper makefile target used to setup for a release
+# -----------------------------------------------------------------------
+
+## ---------------------------------------------------------------------------
+## Intent: Display supported targets
+## ---------------------------------------------------------------------------
+help-voltha-release :
+	@echo
+	@echo '[RELEASE] - Create branch driven testing pipelines'
+	@echo '  create-jobs-release'
+	@echo '  create-jobs-release-nightly Nightly testing'
+	@echo '  create-jobs-release-units   Unit testing'
+
+help ::
+	@echo '  help-voltha-release Display voltha release targets'
+
+# [EOF]
diff --git a/makefiles/release/include.mk b/makefiles/release/include.mk
new file mode 100644
index 0000000..afc03d9
--- /dev/null
+++ b/makefiles/release/include.mk
@@ -0,0 +1,36 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+##--------------------##
+##---]  INCLUDES  [---##
+##--------------------##
+include $(MAKEDIR)/release/help.mk
+include $(MAKEDIR)/release/required.mk
+
+ifdef USE_VOLTHA_RELEASE_MK
+  # Dynamic loading when targets are requested by name
+  include $(ONF_MAKE)/release/targets.mk
+endif
+
+# [EOF]
+
+
diff --git a/makefiles/release/required.mk b/makefiles/release/required.mk
new file mode 100644
index 0000000..59366ce
--- /dev/null
+++ b/makefiles/release/required.mk
@@ -0,0 +1,35 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# -----------------------------------------------------------------------
+# Intent: Conditionally load when named targets are requested.
+#   var ?= $(error ...) definitions are fatal to "make help" and others
+# -----------------------------------------------------------------------
+
+voltha-release-mk-targets := null
+voltha-release-mk-targets += create-jobs-release
+voltha-release-mk-targets += create-jobs-release-nightly
+voltha-release-mk-targets += create-jobs-release-units
+voltha-release-mk-targets += sterile-create-jobs-release
+
+# -----------------------------------------------------------------------
+# Define a flag to only load release targets when mentioned by name
+# Makefile can also explicitly define the flag to force always loading.
+# -----------------------------------------------------------------------
+$(foreach tgt,$(voltha-release-mk-targets),\
+  $(if $(findstring $(tgt),$(MAKECMDGOALS)),$(eval USE_VOLTHA_RELEASE_MK := true))\
+)
+
+# [EOF]
diff --git a/makefiles/release/targets.mk b/makefiles/release/targets.mk
new file mode 100644
index 0000000..a984051
--- /dev/null
+++ b/makefiles/release/targets.mk
@@ -0,0 +1,109 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# -----------------------------------------------------------------------
+# Intent: Helper makefile target used to setup for a release
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
+
+# TODO: Library function  $(call mk-path,makefiles/release/targets.mk)
+release-mk-top := $(abspath $(lastword $(MAKEFILE_LIST)))
+release-mk-top := $(subst /makefiles/release/targets.mk,$(null),$(release-mk-top))
+
+GIT	?= /usr/bin/env git
+
+# fatal to make help
+voltha-version ?= $(error $(MAKE) voltha-verison=voltha-x.yy is required)\
+
+## Known releases
+versions += master
+versions += voltha-2.12
+versions += voltha-2.11
+versions += voltha-2.8
+versions += playground
+
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+all: help
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven pipeline test jobs.
+## ---------------------------------------------------------------------------
+## Build these deps to create a new release area
+create-jobs-release += create-jobs-release-nightly
+create-jobs-release += create-jobs-release-units
+
+create-jobs-release : $(create-jobs-release)
+
+	@echo
+	$(GIT) status
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven pipeline test jobs.
+## ---------------------------------------------------------------------------
+units-yaml := $(release-mk-top)/jjb/pipeline/voltha/$(voltha-version)
+units-root := $(subst /$(voltha-version),$(null),$(units-yaml))
+create-jobs-release-units : $(units-yaml)
+$(units-yaml):
+
+	@echo
+	@echo "** Create branch driven pipeline: unit tests"
+	$(HIDE)mkdir -vp $@
+	rsync -r --checksum $(units-root)/master/. $@/.
+	$(HIDE)/bin/ls -l $(units-root)
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+##   o Clone config for the last nightly release
+##   o In-place edit to the latest version.
+## ---------------------------------------------------------------------------
+## NOTE: WIP - nightly jobs have not yet migrated from the mega job config file
+## ---------------------------------------------------------------------------
+replace-ver  := voltha-2.11
+nightly-dir  := $(release-mk-top)/jjb/voltha-test/voltha-nightly-jobs
+nightly-yaml := $(nightly-dir)/$(voltha-version).yaml
+nightly-tmpl := $(nightly-dir)/$(replace-ver).yaml
+
+create-jobs-release-nightly : $(nightly-yaml)
+$(nightly-yaml) : $(nightly-tmpl)
+
+	@echo
+	@echo "** Create branch driven pipeline: nightly tests"
+	sed -e 's/$(replace-ver)/$(voltha-version)/g' $< > $@
+	$(HIDE)/bin/ls -l $(dir $@)
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+## ---------------------------------------------------------------------------
+$(nightly-tmpl):
+	@echo "ERROR: Yaml template branch does not exist: $@"
+	@echo 1
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+## ---------------------------------------------------------------------------
+sterile-create-jobs-release :
+	$(RM) $(nightly-yaml)
+	$(RM) -r $(units-yaml)
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
diff --git a/makefiles/todo.mk b/makefiles/todo.mk
index d97dbbb..028eb6a 100644
--- a/makefiles/todo.mk
+++ b/makefiles/todo.mk
@@ -21,6 +21,7 @@
 $(if $(DEBUG),$(warning ENTER))
 
 todo ::
+	@echo
 	@echo '[TODO]'
 	@echo '  o volthaStackDeploy.groovy - post v2.11 release cleanup for 2.8'
 
