Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Go: CD pipeline #3062

Merged

Conversation

jamesx-improving
Copy link
Collaborator

@jamesx-improving jamesx-improving commented Feb 4, 2025

Issue link

This Pull Request is linked to issue (URL): #3051

Checklist

Before submitting the PR make sure the following are checked:

  • This Pull Request is related to one issue.
  • Commit message has a detailed description of what changed and why.
  • Tests are added or updated.
  • CHANGELOG.md and documentation files are updated.
  • Destination branch is correct - main or release
  • Create merge commit if merging release branch into main, squash otherwise.

This workflow publish Valkey-GLIDE's Go client with the given version number.

image

It loads the supported platforms of Go from build-matrix.json, then build the .a binary files and other nesessary auto-generated files, including protobuf generated .pb.go files as well as lib.h header file, on all platforms, and evetually commit and push these files on a git tag. Note that this specific for-release-only commit/tag is not part of any branch, but an isolated commit. They only way to refer to this commit (apart from its commit hash of course) is this tag. This design is to minimize the existance of binary and auto-generated files in our repo.

As the official Go package management system essentially uses a distribute-by-source-code mechanism, meaning there's no "artifact" you can precompile, pack and release. Instead, your github repo, specifically the tag with the version info, is your release, which means the options left for corss languages project like us is to either include binary files in the repo, or require ALL end users to install the rust toolchain and compile our rust code on their own machine. We chose the former, as it seems to be the easier option for the end user.

Signed-off-by: James Xin <[email protected]>
Signed-off-by: James Xin <[email protected]>
Signed-off-by: James Xin <[email protected]>
Signed-off-by: James Xin <[email protected]>
@jamesx-improving jamesx-improving requested a review from a team as a code owner February 4, 2025 11:00
@Yury-Fridlyand Yury-Fridlyand added go golang wrapper CI/CD CI/CD related labels Feb 4, 2025
Copy link
Collaborator

@Yury-Fridlyand Yury-Fridlyand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider to update developer guide.
Please add more details to the PR desribing how CD works, include a diagram or a screenshot.

go/api/bitmap_commands.go Show resolved Hide resolved
.github/workflows/go-cd.yml Outdated Show resolved Hide resolved
.github/workflows/go-cd.yml Show resolved Hide resolved
.github/workflows/go-cd.yml Outdated Show resolved Hide resolved
.github/workflows/go-cd.yml Outdated Show resolved Hide resolved
.github/workflows/go-cd.yml Outdated Show resolved Hide resolved
.github/workflows/go-cd.yml Outdated Show resolved Hide resolved
.github/workflows/go-cd.yml Outdated Show resolved Hide resolved
.github/workflows/go-cd.yml Outdated Show resolved Hide resolved
Copy link
Collaborator

@Yury-Fridlyand Yury-Fridlyand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider to update developer guide.
Please add more details to the PR desribing how CD works, include a diagram or a screenshot.

Signed-off-by: James Xin <[email protected]>
Signed-off-by: James Xin <[email protected]>
Copy link
Collaborator

@yipin-chen yipin-chen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

go/Makefile Show resolved Hide resolved
.github/workflows/go-cd.yml Show resolved Hide resolved
.github/workflows/go-cd.yml Show resolved Hide resolved
.github/workflows/go-cd.yml Outdated Show resolved Hide resolved
Co-authored-by: Joseph Brinkman <[email protected]>
Signed-off-by: James Xin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI/CD CI/CD related go golang wrapper
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants