diff --git a/.github/release-please/release-please-config.main.json b/.github/release-please/release-please-config.main.json index 1a532d69fc..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" }, @@ -41,4 +50,4 @@ ] } } -} +} \ No newline at end of file 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..16e23d0523 100644 --- a/.github/release-please/release-please-manifest.json +++ b/.github/release-please/release-please-manifest.json @@ -3,6 +3,7 @@ "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" 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/* 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