]> git.apps.os.sepia.ceph.com Git - ceph-build.git/commitdiff
ceph: Support releasing from BRANCH-release branch 2000/head
authorDavid Galloway <dgallowa@redhat.com>
Tue, 22 Feb 2022 18:01:00 +0000 (13:01 -0500)
committerDavid Galloway <dgallowa@redhat.com>
Tue, 17 May 2022 20:28:55 +0000 (16:28 -0400)
The main goal of this change is to allow us to release from a BRANCH-release branch from ceph.git. This will allow us to continue merging PRs into BRANCH while we build and push releases.

The job also now handles pushing the version commit and tags to ceph.git.

Signed-off-by: David Galloway <dgallowa@redhat.com>
13 files changed:
ansible/release.yml
ansible/roles/ceph-release/tasks/create.yml [new file with mode: 0644]
ansible/roles/ceph-release/tasks/main.yml
ansible/roles/ceph-release/tasks/push.yml [new file with mode: 0644]
ceph-build/build/setup_deb
ceph-build/build/setup_rpm
ceph-build/config/definitions/ceph-build.yml
ceph-setup/build/build
ceph-setup/build/create_tag [new file with mode: 0644]
ceph-setup/config/definitions/ceph-setup.yml
ceph-tag/build/build
ceph-tag/config/definitions/ceph-tag.yml
ceph/config/definitions/ceph.yml

index b5f3f1807d39e0c29d85db6c0411c907d4bf5515..e6c57edb94c14e1503ccf05984bc3a2a295fb4a8 100644 (file)
@@ -5,7 +5,7 @@
     # should be passed in the CLI like `--extra-vars "version=1.23.45 branch=master"`
     version: 0-dev # e.g. 0.78
     branch: master # any existing branch on Github
-    release: stable # stable, development, or rc are valid options
+    release: STABLE # STABLE, RELEASE_CANDIDATE, HOTFIX, and SECURITY are valid options
     tag_name: "v{{ version}}"
     project: "ceph"
     clean: true # if re-doing a deployment this deletes the remote branch in Jenkin's git repo
diff --git a/ansible/roles/ceph-release/tasks/create.yml b/ansible/roles/ceph-release/tasks/create.yml
new file mode 100644 (file)
index 0000000..db46e07
--- /dev/null
@@ -0,0 +1,131 @@
+---
+- name: ensure a clean clone
+  file:
+    path: ceph
+    state: absent
+
+- name: clone the ceph repository
+  git:
+    repo: https://github.com/ceph/ceph
+    dest: ceph
+    remote: upstream
+    accept_hostkey: yes
+    recursive: false
+
+- name: add releases repo
+  command: git remote add -f releases git@github.com:ceph/ceph-releases.git
+  args:
+    chdir: ceph
+  ignore_errors: yes
+
+- name: add security repo
+  command: git remote add -f security git@github.com:ceph/ceph-private.git
+  args:
+    chdir: ceph
+  ignore_errors: yes
+  when: "release == 'SECURITY'"
+
+- name: git fetch --all
+  command: git fetch --all
+  args:
+    chdir: ceph
+
+# REGULAR / RC
+# This assumes {{ branch }} is at the point where release is desired
+- name: "git checkout and reset {{ branch }}-release to {{ branch }} for REGULAR or RC release"
+  command: git checkout -f -B {{ branch }}-release upstream/{{ branch }}
+  args:
+    chdir: ceph
+  when:
+    - "release == 'STABLE' or release == 'RELEASE_CANDIDATE'"
+    - tag|bool is true
+
+- name: "git checkout previously existing tag for re-build"
+  command: git checkout -f v{{ version }}
+  args:
+    chdir: ceph
+  when:
+    - "release == 'STABLE' or release == 'RELEASE_CANDIDATE'"
+    - tag|bool is false
+    - throwaway|bool is false
+
+# HOTFIX
+# This assumes hotfix has already been pushed to {{ branch }}-release branch on github
+- name: "git checkout {{ branch }}-release for HOTFIX release"
+  command: git checkout {{ branch }}-release
+  args:
+    chdir: ceph
+  when: "release == 'HOTFIX'"
+
+# SECURITY
+- name: "git checkout security {{ branch }}-release branch"
+  command: git checkout -f -B {{ branch }}-release security/{{ branch }}-release
+  args:
+    chdir: ceph
+  ignore_errors: yes
+  when: "release == 'SECURITY'"
+
+- name: git submodule update
+  command: git submodule update --init
+  args:
+    chdir: ceph
+
+- name: check if CMakeLists.txt exists
+  stat:
+    path: ceph/CMakeLists.txt
+  register: cmake_lists
+
+- name: replace the version in CMakeLists.txt
+  lineinfile:
+    dest: ceph/CMakeLists.txt
+    regexp: '^  VERSION \d+\.\d+\.\d+$'
+    line: '  VERSION {{ version }}'
+  when:
+    - cmake_lists.stat.exists
+    - tag|bool is true
+
+- set_fact:
+    dch_release_type: rc
+  when: "release == 'RELEASE_CANDIDATE"
+
+- name: set the debian version
+  command: dch -v {{ version }}-1 -D {{ dch_release_type|default('stable') }} "New upstream release"
+  args:
+    chdir: ceph
+  environment:
+    DEBEMAIL: "{{ debemail }}"
+    DEBFULLNAME: "{{ debfullname }}"
+  when: tag|bool is true
+
+- name: commit the version changes
+  command: git commit -a -m "{{ version }}"
+  args:
+    chdir: ceph
+  when: tag|bool is true
+
+- name: tag the version
+  command: git tag -f "v{{ version }}" -m "v{{ version }}"
+  args:
+    chdir: ceph
+  when: tag|bool is true
+
+- name: push the version commit to ceph-releases.git
+  command: git push -f releases {{ branch }}
+  args:
+    chdir: ceph
+  when: tag|bool is true
+
+# the colon appended to the v{{ version }} tag removes the previous tag
+# https://git-scm.com/docs/git-push#Documentation/git-push.txt--d
+- name: clear the previous remote tag
+  command: git push releases :v{{ version }}
+  args:
+    chdir: ceph
+  ignore_errors: yes
+  when: tag|bool is true
+
+- name: push the tag to ceph-releases.git
+  command: git push releases v{{ version }}
+  args:
+    chdir: ceph
+  when: tag|bool is true
index 11fc0d533f0d2a0561f89d98f7e6aecf2874b402..43b9a09fcc6c3e0c681b4c5d35b1d2a95edccfb1 100644 (file)
@@ -1,91 +1,9 @@
 ---
-
-- name: check if ceph repo exists
-  stat: path='./ceph'
-  register: 'ceph_repo'
-
-- name: clone the ceph repository
-  git:
-    repo: https://github.com/ceph/ceph
-    remote: upstream
-    dest: ceph
-    accept_hostkey: yes
-  when: ceph_repo.stat.exists is defined and ceph_repo.stat.exists == false
-
-- name: add origin
-  command: git remote add origin git@github.com:ceph/ceph-releases.git chdir=ceph
-  # because if the repo exists then it probably has the origin already in there
-  ignore_errors: yes
-
-- name: reset --hard to upstream
-  command: git reset --hard origin/{{ branch }} chdir=ceph
-  ignore_errors: yes
-  when: clean
-
-- name: force git checkout {{ branch }} branch
-  command: git checkout -f {{ branch }} chdir=ceph
-
-- name: fetch upstream
-  command: git fetch upstream -v chdir=ceph
-
-- name: git submodule update
-  command: git submodule update --init chdir=ceph
-
-- name: check if configure.ac exists (pre-kraken)
-  stat: path=ceph/configure.ac
-  register: configure_ac
-
-- name: replace the version in configure.ac (pre-kraken)
-  lineinfile: dest=ceph/configure.ac
-              regexp='^AC_INIT\(\[ceph\],'
-              line='AC_INIT([ceph], [{{ version }}], [ceph-devel@vger.kernel.org])'
-  when: configure_ac.stat.exists
-
-- name: check if CMakeLists.txt exists
-  stat: path=ceph/CMakeLists.txt
-  register: cmake_lists
-
-- name: replace the version in CMakeLists.txt
-  lineinfile: dest=ceph/CMakeLists.txt
-              regexp='^  VERSION \d+\.\d+\.\d+$'
-              line='  VERSION {{ version }}'
-  when: cmake_lists.stat.exists
-
-- include: release/candidate.yml
-  when: "release in ['candidate', 'rc']"
-
-- include: release/development.yml
-  when: "release == 'development'"
-
-- include: release/stable.yml
-  when: "release == 'stable'"
-
-- name: commit the version changes
-  command: git commit -a -m "{{ version }}" chdir=ceph
-
-- name: clear the previous local tag
-  command: git tag -d v{{ version }} chdir=ceph
-  ignore_errors: yes
-  when: clean
-
-- name: clear the previous remote tag
-  command: git push origin :v{{ version }} chdir=ceph
-  ignore_errors: yes
-  when: clean
-
-  # from script: /srv/ceph-build/tag_release.sh
-- name: tag the version
-  # we used to sign releases like:
-  # GNUPGHOME=~/build/gnupg.ceph-release
-  # git tag -s "v{{ version }}"  -u 17ED316D -m "v{{ version }}" chdir=ceph
-  command: git tag "v{{ version }}" -m "v{{ version }}" chdir=ceph
-
-  # 'origin' in this case is ceph-releases, since this is our fork/copy of the
-  # official ceph repo it is ok to forcefully push "losing" changes. This may
-  # come up if we need to re-do a release which means doing a fresh commit to
-  # the debian changelog and rpm files and tagging.
-- name: force push changes to ceph-releases git repo
-  command: git push -f origin {{ branch }} chdir=ceph
-
-- name: push the newly created tag
-  command: git push origin v{{ version }} chdir=ceph
+- import_tasks: create.yml
+  when: "stage == 'create'"
+
+- import_tasks: push.yml
+  when:
+    - "stage == 'push'"
+    - "release != 'SECURITY'"
+    - tag|bool is true
diff --git a/ansible/roles/ceph-release/tasks/push.yml b/ansible/roles/ceph-release/tasks/push.yml
new file mode 100644 (file)
index 0000000..a14b584
--- /dev/null
@@ -0,0 +1,63 @@
+---
+# Note: None of this will get run when "release == 'SECURITY'"
+# We want to make sure packages get pulled, signed, and pushed before publicly
+# pushing the security fix. Pushing tags will be done manually by a human.
+
+# the colon appended to the v{{ version }} tag removes the previous tag
+# https://git-scm.com/docs/git-push#Documentation/git-push.txt--d
+- name: clear the previous remote tag
+  command: git push origin :v{{ version }}
+  args:
+    chdir: ceph
+  ignore_errors: yes
+  when: tag|bool is true
+
+- name: clone the ceph repository
+  git:
+    repo: https://github.com/ceph/ceph
+    dest: ceph
+    remote: upstream
+    accept_hostkey: yes
+    recursive: no
+
+- name: add releases repo
+  command: git remote add -f releases git@github.com:ceph/ceph-releases.git
+  args:
+    chdir: ceph
+  ignore_errors: yes
+
+- name: git fetch --all
+  command: git fetch --all
+  args:
+    chdir: ceph
+
+- name: "git checkout the version commit from ceph-releases"
+  command: git checkout -f -B {{ branch }}-release releases/{{ branch }}-release
+  args:
+    chdir: ceph
+
+- name: push version commit to BRANCH-release branch
+  command: git push upstream {{ branch }}-release
+  args:
+    chdir: ceph
+
+- name: "git checkout {{ branch }}"
+  command: git checkout {{ branch }}
+  args:
+    chdir: ceph
+
+# In case any commits got pushed to {{ branch }} while we were building
+- name: "merge {{ branch }}-release changes back into {{ branch }}"
+  command: git merge {{ branch }}-release
+  args:
+    chdir: ceph
+  
+- name: "push version commit to {{ branch }}"
+  command: git push upstream {{ branch }}
+  args:
+    chdir: ceph
+
+- name: push the newly created tag
+  command: git push upstream v{{ version }}
+  args:
+    chdir: ceph
index 29ae8f32214a7dfea67e6b293c1e2f71110e0a07..3a9a97d3f21da9edadf368fa3bc410627ee45c7b 100644 (file)
@@ -24,6 +24,9 @@ BRANCH=`branch_slash_filter $BRANCH`
 
 cd $WORKSPACE
 
+mv ceph-build/ansible/ceph/dist .
+rm -rf ceph-build
+
 BPTAG=`get_bptag $DIST`
 
 chacra_ref="$BRANCH"
index e507a7ee072b0f4104492bff80bf7ed0a0e16b8d..809aaceddc9236115769e270d396c817ecabcdee 100644 (file)
@@ -20,6 +20,9 @@ export LC_ALL=C # the following is vulnerable to i18n
 
 $SUDO yum install -y redhat-lsb-core
 
+mv ceph-build/ansible/ceph/dist .
+rm -rf ceph-build
+
 # unpack the tar.gz that contains the debian dir
 cd dist
 tar xzf *.orig.tar.gz
index e6548c389bf5558a554fcc0ea6b68b48c8ce0b6b..6436ed1e1b2248eb60f18127d98152a25427a522 100644 (file)
                 rm -rf release
             - copyartifact:
                 project: ceph-setup
-                filter: 'dist/**'
+                filter: 'ceph-build/ansible/ceph/dist/**'
                 which-build: multijob-build
             - inject:
-                properties-file: ${WORKSPACE}/dist/sha1
+                properties-file: ${WORKSPACE}/ceph-build/ansible/ceph/dist/sha1
             - inject:
-                properties-file: ${WORKSPACE}/dist/other_envvars
+                properties-file: ${WORKSPACE}/ceph-build/ansible/ceph/dist/other_envvars
             # debian build scripts
             - shell:
                 !include-raw:
index 7e581450fd23f0a5bb8e87742e33065ff356cbc3..05fe2161ac5088538c6040b6596d523466372b65 100644 (file)
@@ -1,5 +1,7 @@
 #!/bin/bash -ex
 
+cd $WORKSPACE/ceph-build/ansible/ceph
+
 HOST=$(hostname --short)
 echo "Building on ${HOST}"
 echo "  DIST=${DIST}"
@@ -7,7 +9,7 @@ echo "  BPTAG=${BPTAG}"
 echo "  WS=$WORKSPACE"
 echo "  PWD=$(pwd)"
 echo "  BRANCH=$BRANCH"
-echo "  SHA1=$GIT_COMMIT"
+echo "  SHA1=$(git rev-parse HEAD)"
 
 if [ -x "$BRANCH" ] ; then
     echo "No git branch was supplied"
@@ -41,7 +43,7 @@ CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS -DALLOCATOR=tcmalloc"
 # which calls `aclocal -I m4 --install` that copies a system version of
 # ltsugar.m4 that can be different from the one included in the ceph source
 # tree.
-if git diff --quiet ; then
+if git diff --quiet; then
     echo repository is clean
 else
     echo
@@ -136,7 +138,7 @@ mv release/$vers/*.tar.* dist/.
 mv release/version dist/.
 
 cat > dist/sha1 << EOF
-SHA1=${GIT_COMMIT}
+SHA1=$(git rev-parse HEAD)
 EOF
 
 # CEPH_EXTRA_{CONFIGURE,RPMBUILD}_ARGS are consumed by ceph-build before
diff --git a/ceph-setup/build/create_tag b/ceph-setup/build/create_tag
new file mode 100644 (file)
index 0000000..5319c4d
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+set -ex
+
+# the following two methods exist in scripts/build_utils.sh
+pkgs=( "ansible" )
+TEMPVENV=$(create_venv_dir)
+VENV=${TEMPVENV}/bin
+install_python_packages $TEMPVENV "pkgs[@]"
+
+# remove "-release" from $BRANCH variable in case it was accidentally passed in the Jenkins UI
+BRANCH=${BRANCH//-release/}
+
+# run ansible to do all the tagging and release specifying
+# a local connection and 'localhost' as the host where to execute
+cd "$WORKSPACE/ceph-build/ansible/"
+$VENV/ansible-playbook -i "localhost," -c local release.yml -vvv --extra-vars="stage=create version=$VERSION branch=$BRANCH force_version=$FORCE_VERSION release=$RELEASE_TYPE tag=$TAG throwaway=$THROWAWAY project=ceph"
index 73792a22dc87facf05e2cbbe95da997c5ac3d0cf..c3e9281f3ffb0f534ed5ab798cf1bd87d61c9c2f 100644 (file)
@@ -1,6 +1,6 @@
 - job:
     name: ceph-setup
-    description: "This job step checks out the branch and builds the tarballs, diffs, and dsc that are passed to the ceph-build step.\r\n\r\nNotes:\r\nJob needs to run on a releatively recent debian system.  The Restrict where run feature is used to specifiy an appropriate label.\r\nThe clear workspace before checkout box for the git plugin is used."
+    description: "This job:\r\n- Creates the version commit\r\n- Checks out the branch and builds the tarballs, diffs, and dsc that are passed to the ceph-build step.\r\n\r\nNotes:\r\nJob needs to run on a releatively recent debian system.  The Restrict where run feature is used to specifiy an appropriate label.\r\nThe clear workspace before checkout box for the git plugin is used."
     node: huge && bionic && x86_64
     display-name: 'ceph-setup'
     block-downstream: false
@@ -15,7 +15,7 @@
       - github:
           url: https://github.com/ceph/ceph
       - copyartifact:
-          projects: ceph-build
+          projects: ceph-build,ceph-tag,ceph
 
     parameters:
       - string:
 
     scm:
       - git:
-          url: git@github.com:ceph/ceph-releases.git
-          # Use the SSH key attached to the ceph-jenkins GitHub account.
+          url: https://github.com/ceph/ceph-build.git
           credentials-id: 'jenkins-build'
-          # not really a branch, this builds the TAG that was previously
-          # created by the ceph-tag job which concatenates 'v' + $VERSION
-          branches:
-            - v$VERSION
+          browser: auto
+          timeout: 20
           skip-tag: true
           wipe-workspace: true
+          basedir: "ceph-build"
+          branches:
+            - origin/master
 
     builders:
       - shell:
-          !include-raw: ../../build/build
-
+          !include-raw:
+            - ../../../scripts/build_utils.sh
+            - ../../build/create_tag
+            - ../../build/build
     publishers:
       - archive:
-          artifacts: 'dist/**'
+          artifacts: 'ceph-build/ansible/ceph/dist/**'
           allow-empty: false
           latest-only: false
 
@@ -64,3 +66,6 @@
           - text:
               credential-id: shaman-api-key
               variable: SHAMAN_API_KEY
+      - ssh-agent-credentials:
+          # "jenkins-build" SSH key, needed so we can push/pull to/from private repos
+          user: 'jenkins-build'
index 32b7aa6e4f6860b737e7c84ccf6836d38a21cae9..04852f03cce557ff9f06a3c45ce519fbe7e19e34 100644 (file)
@@ -4,16 +4,18 @@ set -ex
 
 if [ "$TAG" = false ] ; then
     echo "Assuming tagging process has succeeded before because TAG was set to false"
-    exit 0
+else
+    # the following two methods exist in scripts/build_utils.sh
+    pkgs=( "ansible" )
+    TEMPVENV=$(create_venv_dir)
+    VENV=${TEMPVENV}/bin
+    install_python_packages $TEMPVENV "pkgs[@]"
+    
+    # remove "-release" from $BRANCH variable in case it was accidentally passed in the Jenkins UI
+    BRANCH=${BRANCH//-release/}
+    
+    # run ansible to do all the tagging and release specifying
+    # a local connection and 'localhost' as the host where to execute
+    cd "$WORKSPACE/ceph-build/ansible/"
+    $VENV/ansible-playbook -i "localhost," -c local release.yml --extra-vars="stage=push version=$VERSION branch=$BRANCH force_version=$FORCE_VERSION release=$RELEASE_TYPE tag=$TAG project=ceph"
 fi
-
-# the following two methods exist in scripts/build_utils.sh
-pkgs=( "ansible" )
-TEMPVENV=$(create_venv_dir)
-VENV=${TEMPVENV}/bin
-install_python_packages $TEMPVENV "pkgs[@]"
-
-# run ansible to do all the tagging and release specifying
-# a local connection and 'localhost' as the host where to execute
-cd "$WORKSPACE/ceph-build/ansible/"
-$VENV/ansible-playbook -i "localhost," -c local release.yml --extra-vars="version=$VERSION branch=$BRANCH force_version=$FORCE_VERSION release=stable clean=true project=ceph"
index 73505cfdba28bc5b9d61d828b9e1195b40160369..3b0c28d4a79e636c77d953a3911a44e07345b48d 100644 (file)
@@ -1,20 +1,7 @@
-- scm:
-    name: ceph-build
-    scm:
-      - git:
-          url: https://github.com/ceph/ceph-build.git
-          browser: auto
-          timeout: 20
-          skip-tag: true
-          wipe-workspace: true
-          basedir: "ceph-build"
-          branches:
-            - origin/master
-
 - job:
     name: ceph-tag
-    node: trusty
-    description: "This job clones from upstream Ceph, sets the right version from the tag and pushes changes to ceph-releases"
+    node: bionic
+    description: "This job checks out the version commit previously pushed to ceph-releases.git and pushes it to ceph.git."
     display-name: 'ceph-tag'
     block-downstream: false
     block-upstream: false
     parameters:
       - string:
           name: BRANCH
-          description: "The git branch (or tag) to build"
+          description: "The git BRANCH to build (e.g., pacific)"
+          default: master
+
+      - bool:
+          name: TAG
+          description: "When this is checked, Jenkins will remove the previous private tag and recreate it again, changing the control files and committing again. When this is unchecked, Jenkins will not do any commit or tag operations. If you've already created the private tag separately, then leave this unchecked.
+Defaults to checked."
+          default: true
+
+      - bool:
+          name: THROWAWAY
+          description: "
+Default: False. When True it will not POST binaries to chacra. Artifacts will not be around for long. Useful to test builds."
+          default: false
+
       - string:
           name: VERSION
           description: "The version for release, e.g. 0.94.4"
+
+      - choice:
+          name: RELEASE_TYPE
+          description: "
+STABLE: A normal release. Builds from BRANCH branch and pushed to BRANCH-release branch.
+RELEASE_CANDIDATE: A normal release except the binaries will be pushed to chacra using the $BRANCH-rc name
+HOTFIX: Builds from BRANCH-release branch.  BRANCH-release will be git merged back into BRANCH.
+SECURITY: Builds from BRANCH-release branch in ceph-private.git (private repo)."
+          choices:
+            - STABLE
+            - RELEASE_CANDIDATE
+            - HOTFIX
+            - SECURITY
     scm:
-      - ceph-build
+      - git:
+          url: https://github.com/ceph/ceph-build.git
+          browser: auto
+          timeout: 20
+          skip-tag: true
+          wipe-workspace: true
+          basedir: "ceph-build"
+          branches:
+            - origin/master
+
 
     builders:
       - shell:
           global: true
           mask-password-params: true
       - ssh-agent-credentials:
-          # "jenkins-build" SSH key, needed so we can push to
-          # ceph-deploy.git
+          # "jenkins-build" SSH key, needed so we can push/pull to/from private repos
           user: 'jenkins-build'
+      - credentials-binding:
+          - username-password-separated:
+              credential-id: 8cffdeb4-283c-4d96-a190-05d5645bcc2f
+              username: GITHUB_USER
+              password: GITHUB_TOKEN
index 6128f4f8ae85e7afbfc44995b258127e595f3570..fdc1155c80eca52548f1739394cd0afb414f4fec 100644 (file)
@@ -19,7 +19,7 @@
     parameters:
       - string:
           name: BRANCH
-          description: "The git branch (or tag) to build"
+          description: "The git BRANCH to build (e.g., pacific)"
           default: master
 
       - bool:
@@ -53,17 +53,23 @@ Mostly useful for DEBs to append the `-b` flag for dhc."
 If this is unchecked, then then nothing is built or pushed if they already exist in chacra. This is the default.
 
 If this is checked, then the binaries will be built and pushed to chacra even if they already exist in chacra."
+
       - string:
           name: VERSION
           description: "The version for release, e.g. 0.94.4"
 
-      - bool:
-          name: RC
+      - choice:
+          name: RELEASE_TYPE
           description: "
-If this is checked, binaries will be pushed to chacra using the $BRANCH-rc name, for release candidate binaries.
-
-Defaults to un-checked"
-          default: false
+STABLE: A normal release. Builds from BRANCH branch and pushed to BRANCH-release branch.
+RELEASE_CANDIDATE: A normal release except the binaries will be pushed to chacra using the $BRANCH-rc name
+HOTFIX: Builds from BRANCH-release branch.  BRANCH-release will be git merged back into BRANCH.
+SECURITY: Builds from BRANCH-release branch in ceph-private.git (private repo)."
+          choices:
+            - STABLE
+            - RELEASE_CANDIDATE
+            - HOTFIX
+            - SECURITY
 
       - string:
           name: CEPH_BUILD_VIRTUALENV
@@ -82,24 +88,30 @@ Defaults to un-checked"
 
     builders:
       - multijob:
-          name: 'ceph tag phase'
+          name: 'ceph setup phase'
           condition: SUCCESSFUL
           projects:
-            - name: ceph-tag
+            - name: ceph-setup
               current-parameters: true
               exposed-scm: false
+      - copyartifact:
+          project: ceph-setup
+          filter: ceph-build/ansible/ceph/dist/sha1
+          which-build: multijob-build
+      - inject:
+          properties-file: ${WORKSPACE}/ceph-build/ansible/ceph/dist/sha1
       - multijob:
-          name: 'ceph setup phase'
+          name: 'ceph build phase'
           condition: SUCCESSFUL
           projects:
-            - name: ceph-setup
+            - name: ceph-build
               current-parameters: true
               exposed-scm: false
       - multijob:
-          name: 'ceph build phase'
+          name: 'ceph tag phase'
           condition: SUCCESSFUL
           projects:
-            - name: ceph-build
+            - name: ceph-tag
               current-parameters: true
               exposed-scm: false
 
@@ -107,3 +119,5 @@ Defaults to un-checked"
       - inject-passwords:
           global: true
           mask-password-params: true
+      - build-name:
+          name: "#${BUILD_NUMBER} ${BRANCH}, ${SHA1}"