feat: release workflow + 8 GitHub smoke scenarios#12
Conversation
Welcome To opensourceways CommunityHey @TommyLike , thanks for your contribution to the community. Bot Usage ManualI'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands. |
CLA Signature PassTommyLike, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
Linking Issue Notice@TommyLike , the pull request must be linked to at least one issue. |
There was a problem hiding this comment.
Code Review
This pull request adds Windows support to the release process, updates the documentation with prebuilt binary download instructions, corrects the repository URL, and documents the release workflow. The review feedback recommends prepending set -e; to the shell loops in the Makefile to prevent silent failures if any build or packaging step fails.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| @for p in $(PLATFORMS); do \ | ||
| goos=$$(echo $$p | cut -d/ -f1); \ | ||
| goarch=$$(echo $$p | cut -d/ -f2); \ | ||
| out=$(RELEASE_DIR)/cora-$$goos-$$goarch; \ | ||
| out=$(DIST_DIR)/cora-$$goos-$$goarch; \ | ||
| if [ "$$goos" = "windows" ]; then out="$$out.exe"; fi; \ | ||
| CGO_ENABLED=0 GOOS=$$goos GOARCH=$$goarch go build -ldflags "$(LDFLAGS) -s -w" -o $$out $(CMD); \ | ||
| echo " built: $$out"; \ | ||
| done |
There was a problem hiding this comment.
In a Makefile recipe, shell loops run in a single shell invocation. If a command inside the loop (like go build) fails for an earlier platform, the loop will still continue to the next platforms. If the last platform succeeds, the loop exits with a 0 status, causing the build failure to go unnoticed.
To prevent silent failures, prepend set -e; to the loop so that the shell exits immediately upon any command failure.
@set -e; for p in $(PLATFORMS); do \
goos=$$(echo $$p | cut -d/ -f1); \
goarch=$$(echo $$p | cut -d/ -f2); \
out=$(DIST_DIR)/cora-$$goos-$$goarch; \
if [ "$$goos" = "windows" ]; then out="$$out.exe"; fi; \
CGO_ENABLED=0 GOOS=$$goos GOARCH=$$goarch go build -ldflags "$(LDFLAGS) -s -w" -o $$out $(CMD); \
echo " built: $$out"; \
done
| @for p in $(PLATFORMS); do \ | ||
| goos=$$(echo $$p | cut -d/ -f1); \ | ||
| goarch=$$(echo $$p | cut -d/ -f2); \ | ||
| binary=cora-$$goos-$$goarch; \ | ||
| tar -czf $(DIST_DIR)/cora-$(RELEASE_VERSION).$$goos-$$goarch.tar.gz -C $(RELEASE_DIR) $$binary; \ | ||
| if [ "$$goos" = "windows" ]; then binary="$$binary.exe"; fi; \ | ||
| tar -czf $(DIST_DIR)/cora-$(RELEASE_VERSION).$$goos-$$goarch.tar.gz -C $(DIST_DIR) $$binary; \ | ||
| echo " archive: $(DIST_DIR)/cora-$(RELEASE_VERSION).$$goos-$$goarch.tar.gz"; \ | ||
| done |
There was a problem hiding this comment.
Similar to the build loop, if tar fails for any platform (for example, if a binary is missing), the loop will continue and exit with a success status if the last archive succeeds.
Prepend set -e; to the loop to ensure any packaging failure aborts the release process immediately.
@set -e; for p in $(PLATFORMS); do \
goos=$$(echo $$p | cut -d/ -f1); \
goarch=$$(echo $$p | cut -d/ -f2); \
binary=cora-$$goos-$$goarch; \
if [ "$$goos" = "windows" ]; then binary="$$binary.exe"; fi; \
tar -czf $(DIST_DIR)/cora-$(RELEASE_VERSION).$$goos-$$goarch.tar.gz -C $(DIST_DIR) $$binary; \
echo " archive: $(DIST_DIR)/cora-$(RELEASE_VERSION).$$goos-$$goarch.tar.gz"; \
done
CLA Signature PassTommyLike, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
1 similar comment
CLA Signature PassTommyLike, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
- Makefile: add windows/amd64 platform + .exe suffix - Makefile: build binaries to dist/, source tarball ~1MB (exclude binaries) - .github/workflows/release.yml: auto-build + upload on v* tags - README: prebuilt binary download section (5 platforms) - README: release publishing guide - .gitignore: exclude .claude/worktrees/ Release platforms: darwin/amd64 darwin/arm64 linux/amd64 linux/arm64 windows/amd64 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
GitCode (10 new): branch-list, branch-get, tag-list, tag-get (skip), release-list, commit-list, commit-get, labels-list, comments-list, pulls-comments GitHub (8 new): branches, issues-comments, pulls-commits, pulls-files, pulls-comments, orgs-get, labels-list, labels-get Result: 27 passed, 0 failed, 4 skipped Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
641429e to
daddcd4
Compare
CLA Signature PassTommyLike, thanks for your pull request. All authors of the commits have signed the CLA. 👍 |
Summary
Two changes on this branch:
1. Release workflow
v*tags2. GitHub smoke scenarios (8 new)
Smoke Result
36 passed, 0 failed, 8 skipped (18.8s)
Release Platforms
Generated with Claude Code