Fix: Add {stream} in release verify and merge jobs
[releng/global-jjb.git] / docs / jjb / lf-release-jobs.rst
index d4af19b..8a1142e 100644 (file)
@@ -9,16 +9,15 @@ staging area to a release area. A release yaml file controls the
 process, and Jenkins promotes the artifact when a project committer
 merges the release yaml file in Gerrit.
 
-To use the self-release process, create a releases/ or .releases/
-directory at the root of the project repository, add one release yaml
-file to it, and submit a change set with that release yaml file.  The
-required contents of the release yaml file are different for each type
-of release, see the schemas and examples shown below.  The version
-string in the release yaml file should be a valid Semantic Versioning
-(SemVer) string, matching the pattern "#.#.#" where "#" is one or more
-digits. A version string matching the pattern "v#.#.#" is also
-accepted. Upon merge of the change, a Jenkins job promotes the
-artifact and pushes a gpg-signed tag to the repository.
+To use the self-release process, create a releases/ or .releases/ directory at
+the root of the project repository, add one release yaml file to it, and submit
+a change set with that release yaml file.  The required contents of the release
+yaml file are different for each release, see the schemas and examples shown
+below.  The version string in the release yaml file should be a valid Semantic
+Versioning (SemVer) string, matching the pattern "#.#.#" where "#" is one or
+more digits. A version string matching the pattern "v#.#.#" is also accepted.
+Upon merge of the change, a Jenkins job promotes the artifact and pushes a
+gpg-signed tag to the repository.
 
 .. note::
 
@@ -50,6 +49,12 @@ For example, the parameters for a Maven release are as follows::
     USE_RELEASE_FILE = false
     DRY_RUN = false
 
+It's recommended to use Semantic Versions (SemVer) for releases. Refer to
+https://semver.org for more details on SemVer. For projects that do not
+follow SemVer can use a build parameter (OVERRIDE_SEMVER_REGEX) with the
+release job. This build param overrides the default SemVer regex.
+
+
 Maven Release Files
 -------------------
 
@@ -82,6 +87,8 @@ The following parameters must appear in a maven release yaml file.
 
     :git_tag: The tag string to sign and push to the Git repository.
        (default: the semantic version string)
+    :tag_release: Tag Gerrit Repo during the release process.
+       (default: true)
 
 The JSON schema for a maven release file appears below.
 
@@ -132,6 +139,8 @@ The following parameters must appear in a container release yaml file.
 
     :git_tag: The tag string to sign and push to the Git repository.
        (default: the semantic version string)
+    :tag_release: Tag Gerrit Repo during the release process.
+       (default: true)
 
 The JSON schema for a container release file appears below.
 
@@ -179,6 +188,8 @@ packages.
 
     :git_tag: The tag string to sign and push to the Git repository.
        (default: the semantic version string)
+    :tag_release: Tag Gerrit Repo during the release process.
+       (default: true)
 
 The JSON schema for a PyPI release file appears below.
 
@@ -232,6 +243,8 @@ packages.
 
     :git_tag: The tag string to sign and push to the Git repository.
        (default: the semantic version string)
+    :tag_release: Tag Gerrit Repo during the release process.
+       (default: true)
 
 The JSON schema for a PackageCloud release file appears below.
 
@@ -239,6 +252,15 @@ The JSON schema for a PackageCloud release file appears below.
    :language: yaml
 
 
+Job Groups
+==========
+
+Below is a list of Release job groups:
+
+.. literalinclude:: ../../jjb/lf-release-job-groups.yaml
+   :language: yaml
+
+
 Jenkins Jobs
 ------------
 
@@ -283,7 +305,7 @@ This template uses a git commit choosing strategy that builds the merged
 commit with the release yaml file, not the tip of the target branch, so
 projects can repeat the release action in case of merge job failure.
 
-:Template Name: {project-name}-release-merge
+:Template Name: {project-name}-release-merge-{stream}
 
 :Comment Trigger: remerge
 
@@ -299,6 +321,8 @@ projects can repeat the release action in case of merge job failure.
 
     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
     :build-timeout: Timeout in minutes before aborting build. (default: 15)
+    :stream: Keyword that represents a release code-name.
+        Often the same as the branch. (default: master)
 
     :gerrit_merge_triggers: Override Gerrit Triggers.
     :gerrit_trigger_file_paths: Override file paths filter which checks which
@@ -311,7 +335,7 @@ Release Verify
 
 This template supports Maven and Container release jobs.
 
-:Template Name: {project-name}-release-verify
+:Template Name: {project-name}-release-verify-{stream}
 
 :Comment Trigger: recheck|reverify
 
@@ -330,6 +354,8 @@ This template supports Maven and Container release jobs.
     :build-timeout: Timeout in minutes before aborting build. (default: 15)
     :gerrit-skip-vote: Skip voting for this job. (default: false)
     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
+    :stream: Keyword that represents a release code-name.
+        Often the same as the branch. (default: master)
 
     :gerrit_verify_triggers: Override Gerrit Triggers.
     :gerrit_trigger_file_paths: Override file paths filter which checks which