Skip to content

Latest commit

 

History

History
145 lines (103 loc) · 5.34 KB

release.md

File metadata and controls

145 lines (103 loc) · 5.34 KB

Releasing

How to release

Check end-to-end tests

Check if the Sumo internal e2e tests are passing.

Determine the Workflow Run ID to release

We can begin the process of creating a release once QE has given a thumbs up for a given package version. We can determine the Workflow Run ID to use for a release using the following steps:

Find the package build number

Each package has a build number and it's included in the package version & filename. For example, if the package version that QE validates is 0.108.0-1790 then the build number is 1790.

Find the collector workflow run

Each package uses binaries built from this repository. We can find the workflow used to build the binaries by tracing our way back from the package build number.

The build number corresponds directly to the GitHub Run Number for a packaging workflow run in GitHub Actions. Unfortunately, there does not currently appear to be a way to reference a workflow run using the run number. Instead, we can use one of two methods to find the workflow run:

Option 1 - Use the gh cli tool to find the workflow

Run the following command (be sure to replace BUILD_NUMBER with the build number of the package):

PAGER=""; BUILD_NUMBER="1790"; \
gh run list -R sumologic/sumologic-otel-collector-packaging -s success \
-w build_packages.yml -L 200 -b main --json displayTitle,number,url \
-q ".[] | select(.number == ${BUILD_NUMBER})"

This will output a number of fields, for example:

{
  "displayTitle": "Build for Remote Workflow: 11672946742, Version: 0.108.0-sumo-1\n",
  "number": 1790,
  "url": "https://github.com/SumoLogic/sumologic-otel-collector-packaging/actions/runs/11673248730"
}

We need the number to the right of Build for Remote Workflow. This number is the ID of the workflow run that built the binaries used in the package.

The workflow run can be viewed by first running:

PAGER=""; WORKFLOW_ID="11672946742"; \
gh run list -R sumologic/sumologic-otel-collector -s success \
-w dev_builds.yml -L 200 -b main --json displayTitle,databaseId,url \
-q ".[] | select(.databaseId == ${WORKFLOW_ID})"

Which will output the URL of the workflow run:

https://github.com/SumoLogic/sumologic-otel-collector/actions/runs/11672946742

Option 2 - Search the GitHub website manually

Manually search for the run number on the Build packages workflow page. Search for the build number (e.g. 1790) until you find the corresponding workflow.

Finding the packaging workflow run

Once you've found the packaging workflow run, we need the number to the right of Build for Remote Workflow. This number is the ID of the workflow run that built the binaries used in the package.

Finding the collector workflow ID

Trigger the release

Now that we have the Workflow Run ID we can trigger a release. There are two methods of doing this.

Option 1 - Use the gh cli tool to trigger the release

A release can be triggered by using the following command (be sure to replace WORKFLOW_ID with the Workflow Run ID from the previous step):

PAGER=""; WORKFLOW_ID="11672946742"; \
gh workflow run releases.yml -R sumologic/sumologic-otel-collector \
-f workflow_id=${WORKFLOW_ID}

Option 2 - Use the GitHub website to trigger the release

Navigate to the Publish release workflow in GitHub Actions. Find and click the Run workflow button on the right-hand side of the page. Fill in the Workflow Run ID from the previous step and then click the green Run workflow button.

Triggering a release

Publish GitHub release

The GitHub release is created as draft by the releases GitHub Action.

After the release draft is created, go to GitHub releases, edit the release draft and fill in missing information:

  • Specify versions for upstream OT core and contrib releases
  • Copy and paste the Changelog entry for this release from CHANGELOG.md

After verifying that the release text and all links are good, publish the release.

Release packages

The docs for triggering a package release can be found in the Packaging Release docs in the sumologic-otel-collector-packaging repository.