Skip to content

Commit cf430d6

Browse files
committed
Move DEB/RPM packaging steps inline with alpha/production pipelines
Separating the DEB/RPM steps from the PyPI steps makes it easy to forget the former after finishing the latter; instead, let's present the release steps linearly, in the order the release needs to follow.
1 parent 27d168a commit cf430d6

File tree

1 file changed

+22
-25
lines changed

1 file changed

+22
-25
lines changed

RELEASING.md

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ You will also need the following credentials:
1818
- a configured GPG key in `git` in order to create signed tags
1919
- pypi credentials for use with `twine` (e.g. a token in `~/.pypirc`) valid for
2020
publishing `globus-compute-sdk` and `globus-compute-endpoint`
21+
- Globus VPN access
22+
23+
⚠️ The Jenkins build pages need to be accessed via VPN.
2124

2225
## Alpha releases
2326

@@ -45,6 +48,14 @@ You will also need the following credentials:
4548
the current version and pushes it to GitHub, then uses the `tox` release command
4649
to push each package to PyPi.
4750

51+
1. Navigate to the [Build with Parameters](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/build?delay=0sec) Jenkins page.
52+
53+
1. Enter the name of the release branch (eg, `v4.8.0`) into the `BRANCH_OR_TAG` field. (Leave `BUILD_FOR_STABLE` unchecked.)
54+
55+
1. Click the Build button.
56+
57+
1. Wait 15-30 minutes and confirm that the [build is green](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/).
58+
4859
### Alpha release bugfixes
4960

5061
1. Branch off from the release branch to create a new bugfix branch:
@@ -114,28 +125,28 @@ You will also need the following credentials:
114125
1. Create a GitHub release from the tag. See [GitHub documentation](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release)
115126
for instructions.
116127

117-
### DEB/RPM Packaging Workflow
118-
119-
#### Pre-requisites
128+
1. Navigate to the [Build with Parameters](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/build?delay=0sec) Jenkins page.
120129

121-
Before building the packages:
130+
1. Enter the name of the release branch (eg, `v4.8.0`) into the `BRANCH_OR_TAG` field, and ensure `BUILD_FOR_STABLE` is checked.
122131

123-
- ensure that the release itself, either the alpha or prod versions, is published on PyPI.
124-
- ⚠️ The Jenkins build pages need to be accessed via VPN.
132+
1. Click the Build button.
125133

126-
#### Build Process
134+
1. Wait 15-30 minutes and confirm that the [build is green](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/).
127135

128-
To build the DEB/RPM packages after the alpha/prod PyPI is released, specify the alpha or prod
129-
tag names as detailed below and then click the green **Build** button.
136+
1. Depending on whether GCS is also releasing:
137+
- If GCS deploys after Compute on release day, the new packages will be pushed to the public repos as part of their deploy, so no action is needed.
138+
- If GCS is not doing a release the same week, or if they finish their deploy before we finish building our packages, we need to manually run the downloads sync Jenkins script:
139+
- https://builds.globus.org/jenkins/view/all/job/Synchronize%20GCSv5%20Stable/build?delay=0sec
140+
- Leave `SYNC_WHEELS_ONLY` unchecked
130141

131-
##### Notes
142+
## DEB/RPM Packaging Notes
132143

133144
Our alpha builds will go to the `unstable` repo, and production packages goes to both
134145
the `testing` and `stable` repos.
135146

136147
After this build process for production, the testing and stable packages will reside
137148
in an internal globus 'holding' repo. GCS manages the infrastructure so we need to
138-
run another Jenkins build to push it to live if GCS is not doing a release the same week which also pushes our packages. See last pipeline step below.
149+
run another Jenkins build to push it to live if GCS is not doing a release the same week which also pushes our packages. See last pipeline step above.
139150

140151
- Example of unstable repo:
141152
- https://downloads.globus.org/globus-connect-server/unstable/rpm/el/9/x86_64/
@@ -147,17 +158,3 @@ run another Jenkins build to push it to live if GCS is not doing a release the s
147158
- After GCS push during deploy day (or if we ping them to do so), the public images will be located at:
148159
- https://downloads.globus.org/globus-connect-server/stable/rpm/el/9/x86_64/
149160
[publishResults.groovy line 85](https://github.com/globusonline/gcs-build-scripts/blob/168617a0ccbb0aee7b3bee04ee67940bbe2a80f6/vars/publishResults.groovy#L85)
150-
151-
1. (Access on VPN) For each release, confirm that the Pipeline -> SCM -> Branch Specifier is `${BRANCH_OR_TAG}` in [Build Configuration](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/configure). (This may become an unnecessary step over time.)
152-
153-
1. Enter the alpha or prod release name e.g. v3.14.0a0 or v3.14.0 in the input textbox of the [Build with Parameters](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/build?delay=0sec) page.
154-
155-
1. Check the `BUILD_FOR_STABLE` box if building for production, leave it unchecked otherwise
156-
157-
1. Wait 15-30 minutes and confirm that the [build is green](https://builds.globus.org/jenkins/job/BuildGlobusComputeAgentPackages/)
158-
159-
1. For production release cycles where there is also a GCS release, if we push our packages before they do, skip the following (also not necessary for alpha releases)
160-
- If there isn't a concurrent GCS release, or if GCS finishes their deploy before we finish building our packages, we need to manually run the downloads sync Jenkins script:
161-
162-
- https://builds.globus.org/jenkins/view/all/job/Synchronize%20GCSv5%20Stable/build?delay=0sec
163-
- Leave `SYNC_WHEELS_ONLY` unchecked

0 commit comments

Comments
 (0)