[VOL-5010] - Clone unit tests to run on a v2.12 branch

docs/release/README.md
makefiles/release/help.mk
-------------------------
  o Temp release documentation until text can be o-fficially
    added in the howto:release section of docs.voltha.org.

Makefile
makefiles/include.mk
makefiles/release/include.mk
makefiles/release/required.mk
makefiles/release/targets.mk
-----------------------------
  o Add makefile infra used to create and clone master tests for release.
  o Logic is conditional, makefile library will only load when named
    targets are requested.
  o make help and make help-voltha-release document new targets.
  o create-jobs-release-nightly is simply a placeholder for now.
    - Nightly unit tests are still bundled in the mega voltha job config.
    - Still need to isolate and separate these out so tests can be
      anchored for branch driven release testing.

Change-Id: I692166e17c5e04d87d112f317b9fead1d5c4090d
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]