Skip to content

Commit

Permalink
Document package release procedure
Browse files Browse the repository at this point in the history
  • Loading branch information
LeiGlobus committed Oct 25, 2024
1 parent e13d95f commit 6d83186
Showing 1 changed file with 17 additions and 35 deletions.
52 changes: 17 additions & 35 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,52 +150,34 @@ For production builds, check the ``BUILD_FOR_STABLE`` box.
* https://builds.globus.org/downloads.globus.org/globus-connect-server/stable/rpm/el/8/x86_64/
* After GCS push during deploy day (or if we ping them to do so), the public images will be located at:
* https://downloads.globus.org/globus-connect-server/stable/rpm/el/9/x86_64/
<<<<<<< HEAD
[publishResults.groovy line 85](https://github.com/globusonline/gcs-build-scripts/blob/168617a0ccbb0aee7b3bee04ee67940bbe2a80f6/vars/publishResults.groovy#L85)
2. (Access on VPN) Click the [build button here](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/build?delay=0sec)
3. Wait 20-30 minutes and confirm that the [build is green](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/)
4. For production release, we will have finished the build before the GCS team has
=======

1. Wait 20-30 minutes and confirm that the [build is green](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/)
>>>>>>> dd04032c (Document package release procedure)
#### Old Build Instructions

As a temporary workaround, we need to add a few lines to manually set some
As a temporary workaround, we needed to add a few lines to manually set some
env variables in our [JenkinsFile](https://github.com/globus/globus-compute/blob/743fa1e398fd40a00efb5880c55e3fa6e47392fc/compute_endpoint/packaging/JenkinsFile#L24) before triggering the build, as detailed below.

1. Git checkout both the current release branch that was recently pushed to
PyPI, ie. ``v2.23.0`` or ``v2.25.0a0`` and the ``build_for_stable`` branch
2. Rebase ``build_for_stable`` on the release branch which should result in
adding the following ~6 lines:

...
env.BRANCH_NAME = scmVars.GIT_BRANCH.replaceFirst(/^.*origin\//, "")
+ env.TAG_NAME = sh(returnStdout: true, script: "git tag --contains | head -1").trim()
env.SOURCE_STASH_NAME = "${UUID.randomUUID()}"
echo "env.BRANCH_NAME = ${env.BRANCH_NAME}"
sh "git clean -fdx"

+ // temporary hack to build for stable
+ sh "git checkout build_for_stable"
+ env.TAG_NAME = "v2.23.0"
+ env.DEFAULT_BRANCH = "build_for_stable"
+
dir("compute_endpoint/packaging/") {
...

3. Change the ``env.TAG_NAME`` above to the current production release version
* Note that ``env.TAG_NAME`` determines whether the build is sent to
the ``unstable`` repo or also to the ``testing`` and ``stable`` ones.
1. Notes
* Example of unstable repo:
* https://downloads.globus.org/globus-connect-server/unstable/rpm/el/9/x86_64/
* Example of stable repo:
* https://downloads.globus.org/globus-connect-server/stable/rpm/el/9/x86_64/
* The logic of whether a release is stable is determined by whether the
package version of Globus Compute Endpoint set in ``version.py`` or
``setup.py`` matches ``env.TAG_NAME`` above. If they are unequal, then
* Directory of testing images:
* https://builds.globus.org/downloads.globus.org/globus-connect-server/testing/rpm/el/8/x86_64/
* Stable repo:
* The images will be in the below build directory after we finish our build process, but not public:
* https://builds.globus.org/downloads.globus.org/globus-connect-server/stable/rpm/el/8/x86_64/
* After GCS push during deploy day (or if we ping them to do so), the public images will be located at:
* https://downloads.globus.org/globus-connect-server/stable/rpm/el/9/x86_64/
[publishResults.groovy line 85](https://github.com/globusonline/gcs-build-scripts/blob/168617a0ccbb0aee7b3bee04ee67940bbe2a80f6/vars/publishResults.groovy#L85)
will be (``tag`` : v2.23.0) != (``stable_tag`` : v2.23.0a0), where
stable_tag is constructed from the package version of an alpha release.
4. Commit and push your ``build_for_stable`` branch
5. (Access on VPN) Click the [build button here](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/build?delay=0sec)
6. Wait 20-30 minutes and confirm that the [build is green](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/)
7. For production release, we will have finished the build before the GCS
2. (Access on VPN) Click the [build button here](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/build?delay=0sec)
3. Wait 20-30 minutes and confirm that the [build is green](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/)
4. For production release, we will have finished the build before the GCS
team, and can notify them that our build is complete. They then will
publish all packages when they finish their builds, which includes ours.

0 comments on commit 6d83186

Please sign in to comment.