From 690e4ea07e855c1e4ed111efbcbf7b3d5c3d8e5a Mon Sep 17 00:00:00 2001 From: Krish Suchak Date: Tue, 7 Apr 2026 15:22:51 -0400 Subject: [PATCH 1/3] feat(cli): configure release pipeline for independent otdfctl releases Add otdfctl component to platform release-please configuration for independent versioned releases with cross-platform binary artifacts. - Add otdfctl package to release-please-config.main.json with extra-files pointing to pkg/config/config.go for version bumps - Add otdfctl entry to release-please-manifest.json at v0.30.0 - Create release-please-config.otdfctl.json for release branch support - Create release-otdfctl.yaml workflow: triggers on otdfctl/v* release tags, builds 8 cross-platform binaries via Makefile, uploads artifacts to GitHub release DSPX-2660 Signed-off-by: Krish Suchak --- .../release-please-config.main.json | 9 ++++ .../release-please-config.otdfctl.json | 20 +++++++++ .../release-please-manifest.json | 3 +- .github/workflows/release-otdfctl.yaml | 41 +++++++++++++++++++ 4 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 .github/release-please/release-please-config.otdfctl.json create mode 100644 .github/workflows/release-otdfctl.yaml diff --git a/.github/release-please/release-please-config.main.json b/.github/release-please/release-please-config.main.json index 1a532d69fc..c2ec30bb4d 100644 --- a/.github/release-please/release-please-config.main.json +++ b/.github/release-please/release-please-config.main.json @@ -39,6 +39,15 @@ "path": "cmd/version.go" } ] + }, + "otdfctl": { + "component": "otdfctl", + "extra-files": [ + { + "type": "generic", + "path": "pkg/config/config.go" + } + ] } } } diff --git a/.github/release-please/release-please-config.otdfctl.json b/.github/release-please/release-please-config.otdfctl.json new file mode 100644 index 0000000000..66d64b2622 --- /dev/null +++ b/.github/release-please/release-please-config.otdfctl.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "release-type": "go", + "versioning": "always-bump-patch", + "separate-pull-requests": true, + "include-component-in-tag": true, + "pull-request-title-pattern": "chore(release): release ${component} ${version}", + "tag-separator": "/", + "packages": { + "otdfctl": { + "component": "otdfctl", + "extra-files": [ + { + "type": "generic", + "path": "pkg/config/config.go" + } + ] + } + } +} diff --git a/.github/release-please/release-please-manifest.json b/.github/release-please/release-please-manifest.json index a1a1e4a625..622e434397 100644 --- a/.github/release-please/release-please-manifest.json +++ b/.github/release-please/release-please-manifest.json @@ -5,5 +5,6 @@ "lib/identifier": "0.3.0", "protocol/go": "0.23.0", "sdk": "0.15.0", - "service": "0.13.0" + "service": "0.13.0", + "otdfctl": "0.30.0" } \ No newline at end of file diff --git a/.github/workflows/release-otdfctl.yaml b/.github/workflows/release-otdfctl.yaml new file mode 100644 index 0000000000..5f86047f74 --- /dev/null +++ b/.github/workflows/release-otdfctl.yaml @@ -0,0 +1,41 @@ +name: "Build otdfctl CLI Binaries" + +on: + release: + types: [published] + +permissions: {} + +jobs: + build: + if: ${{ startsWith(github.event.release.tag_name, 'otdfctl/') }} + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + persist-credentials: false + + - uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0 + with: + go-version-file: otdfctl/go.mod + + - name: Extract version from tag + id: version + run: | + TAG="${{ github.event.release.tag_name }}" + VERSION="${TAG#otdfctl/v}" + echo "version=${VERSION}" >> "$GITHUB_OUTPUT" + + - name: Build cross-platform binaries + working-directory: otdfctl + env: + SEM_VER: ${{ steps.version.outputs.version }} + COMMIT_SHA: ${{ github.sha }} + run: make build + + - name: Upload release artifacts + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release upload "${{ github.event.release.tag_name }}" ./otdfctl/output/* From ed7b8559912da6f54c02f98eaad4fad82dbac4df Mon Sep 17 00:00:00 2001 From: Krish Suchak Date: Wed, 8 Apr 2026 13:25:31 -0400 Subject: [PATCH 2/3] alphabetical order --- .../release-please-config.main.json | 20 +++++++++---------- .../release-please-manifest.json | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/release-please/release-please-config.main.json b/.github/release-please/release-please-config.main.json index c2ec30bb4d..438dd5b50b 100644 --- a/.github/release-please/release-please-config.main.json +++ b/.github/release-please/release-please-config.main.json @@ -19,6 +19,15 @@ "lib/identifier": { "component": "lib/identifier" }, + "otdfctl": { + "component": "otdfctl", + "extra-files": [ + { + "type": "generic", + "path": "pkg/config/config.go" + } + ] + }, "protocol/go": { "component": "protocol/go" }, @@ -39,15 +48,6 @@ "path": "cmd/version.go" } ] - }, - "otdfctl": { - "component": "otdfctl", - "extra-files": [ - { - "type": "generic", - "path": "pkg/config/config.go" - } - ] } } -} +} \ No newline at end of file diff --git a/.github/release-please/release-please-manifest.json b/.github/release-please/release-please-manifest.json index 622e434397..16e23d0523 100644 --- a/.github/release-please/release-please-manifest.json +++ b/.github/release-please/release-please-manifest.json @@ -3,8 +3,8 @@ "lib/ocrypto": "0.10.0", "lib/flattening": "0.1.3", "lib/identifier": "0.3.0", + "otdfctl": "0.30.0", "protocol/go": "0.23.0", "sdk": "0.15.0", - "service": "0.13.0", - "otdfctl": "0.30.0" + "service": "0.13.0" } \ No newline at end of file From c30122cddcae6da8df949369c2b0d5117bb6bff1 Mon Sep 17 00:00:00 2001 From: Krish Suchak Date: Fri, 10 Apr 2026 11:50:45 -0400 Subject: [PATCH 3/3] alphabetical change lost in rebase --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 194ce31147..50cad22e52 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # make # To run all lint checks: `LINT_OPTIONS= make lint` -.PHONY: all build clean connect-wrapper-generate docker-build fix fmt go-lint license lint proto-generate proto-helper-generate proto-lint sdk/sdk otdfctl/otdfctl test tidy toolcheck +.PHONY: all build clean connect-wrapper-generate docker-build fix fmt go-lint license lint otdfctl/otdfctl proto-generate proto-helper-generate proto-lint sdk/sdk test tidy toolcheck MODS=protocol/go lib/ocrypto lib/fixtures lib/flattening lib/identifier sdk service examples otdfctl HAND_MODS=lib/ocrypto lib/fixtures lib/flattening lib/identifier sdk service examples otdfctl