From 00d713b1c28bca7852de9aa54bd95711eb4b7037 Mon Sep 17 00:00:00 2001 From: Sayali Gaikawad Date: Tue, 16 Jun 2026 14:13:51 -0700 Subject: [PATCH] Fix release workflows to use pre-releases and update releasing.md with new process Signed-off-by: Sayali Gaikawad --- .github/workflows/release-drafter.yml | 13 ++++++++----- RELEASING.md | 13 +++++++++---- jenkins/release.jenkinsFile | 5 ++--- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 17611f1..198f1a6 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -10,6 +10,9 @@ jobs: draft-a-release: name: Draft a release runs-on: ubuntu-latest + permissions: + contents: write + issues: write steps: - name: Checkout code uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 @@ -29,9 +32,9 @@ jobs: mv build/libs/opensearch-sql-jdbc-shadow-*.jar build/shadowJar tar -C build -cvf artifacts.tar.gz repository shadowJar - name: Draft a release - uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 + uses: ncipollo/release-action@339a81892b84b4eeb0f6e744e4574d79d0d9b8dd with: - draft: true - generate_release_notes: true - files: | - artifacts.tar.gz + immutableCreate: true + generateReleaseNotes: true + artifacts: "artifacts.tar.gz" + prerelease: true diff --git a/RELEASING.md b/RELEASING.md index 4d44f54..463c697 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -33,8 +33,13 @@ Repositories create consistent release labels, such as `v1.0.0`, `v1.1.0` and `v The release process is standard across repositories in this org and is run by a release manager volunteering from amongst [maintainers](MAINTAINERS.md). -1. Create a tag, e.g. 1.0.0.0, and push it to this GitHub repository. -1. The [release-drafter.yml](.github/workflows/release-drafter.yml) will be automatically kicked off and a draft release will be created. -1. This draft release triggers the [jenkins release workflow](https://build.ci.opensearch.org/job/sql-jdbc-release) as a result of which the driver is released on [maven central](https://search.maven.org/search?q=org.opensearch.driver). Please note that the release workflow is triggered only if created release is in draft state. -1. Once the above release workflow is successful, the drafted release on GitHub is published automatically. +1. Identify the commit to release and create a tag on it, pushing to the upstream repo: +``` +git fetch origin +git tag +git push origin +``` +1. The [release-drafter.yml](.github/workflows/release-drafter.yml) will be automatically kicked off and a pre-release will be created. +1. This pre-release triggers the [jenkins release workflow](https://build.ci.opensearch.org/job/sql-jdbc-release) as a result of which the driver is released on [maven central](https://search.maven.org/search?q=org.opensearch.driver). Please note that the release workflow is triggered only if created release is in pre-release state. +1. Once the above release workflow is successful, it creates a GitHub issue requesting maintainers to manually publish the pre-release to release on GitHub. 1. Increment "version" in [build.gradle](./build.gradle) to the next iteration, e.g. 1.0.0.1 See [example](https://github.com/opensearch-project/sql-jdbc/pull/11). \ No newline at end of file diff --git a/jenkins/release.jenkinsFile b/jenkins/release.jenkinsFile index 66ecd40..55b12a9 100644 --- a/jenkins/release.jenkinsFile +++ b/jenkins/release.jenkinsFile @@ -1,4 +1,4 @@ -lib = library(identifier: 'jenkins@10.2.2', retriever: modernSCM([ +lib = library(identifier: 'jenkins@13.0.1', retriever: modernSCM([ $class: 'GitSCMSource', remote: 'https://github.com/opensearch-project/opensearch-build-libraries.git', ])) @@ -7,8 +7,7 @@ standardReleasePipelineWithGenericTrigger( overrideDockerImage: 'opensearchstaging/ci-runner:release-centos7-clients-v4', tokenIdCredential: 'jenkins-sql-jdbc-generic-webhook-token', causeString: 'A tag was cut on opensearch-project/sql-jdbc repository causing this workflow to run', - downloadReleaseAsset: true, - publishRelease: true) { + downloadReleaseAsset: true) { publishToMaven( signingArtifactsPath: "$WORKSPACE/repository/", mavenArtifactsPath: "$WORKSPACE/repository/",