Skip to content
This repository was archived by the owner on Jun 16, 2026. It is now read-only.

feat: release workflow + 8 GitHub smoke scenarios#12

Merged
TommyLike merged 3 commits into
mainfrom
feat/support-release
Jun 7, 2026
Merged

feat: release workflow + 8 GitHub smoke scenarios#12
TommyLike merged 3 commits into
mainfrom
feat/support-release

Conversation

@TommyLike

@TommyLike TommyLike commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

Two changes on this branch:

1. Release workflow

  • Add windows/amd64 platform + .exe suffix to Makefile
  • New — auto-build on v* tags
  • README update with binary downloads

2. GitHub smoke scenarios (8 new)

Scenario Resource Status
github/branches branch branches
github/issues-comments issues comments #1
github/pulls-commits pulls commits PR #3
github/pulls-files pulls files PR #3
github/pulls-comments pulls comments PR #3
github/orgs-get orgs get
github/labels-list labels list
github/labels-get labels get "bug"

Smoke Result

36 passed, 0 failed, 8 skipped (18.8s)

Release Platforms

Platform Arch Format
macOS amd64, arm64 .tar.gz
Linux amd64, arm64 .tar.gz
Windows amd64 .tar.gz (.exe)
Source .tar.gz

Generated with Claude Code

@opensourceways-bot

Copy link
Copy Markdown

Welcome To opensourceways Community

Hey @TommyLike , thanks for your contribution to the community.

Bot Usage Manual

I'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.

@opensourceways-bot

Copy link
Copy Markdown

CLA Signature Pass

TommyLike, thanks for your pull request. All authors of the commits have signed the CLA. 👍

@opensourceways-bot

Copy link
Copy Markdown

Linking Issue Notice

@TommyLike , the pull request must be linked to at least one issue.
If an issue has already been linked, but the needs-issue label remains, you can remove the label by commenting /check-issue .

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.

Comment thread Makefile Outdated
Comment on lines 132 to 139
@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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

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

Comment thread Makefile Outdated
Comment on lines 144 to 151
@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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

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

@opensourceways-bot

Copy link
Copy Markdown

CLA Signature Pass

TommyLike, thanks for your pull request. All authors of the commits have signed the CLA. 👍

1 similar comment
@opensourceways-bot

Copy link
Copy Markdown

CLA Signature Pass

TommyLike, thanks for your pull request. All authors of the commits have signed the CLA. 👍

TommyLike and others added 3 commits June 7, 2026 12:25
- 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>
@TommyLike TommyLike force-pushed the feat/support-release branch from 641429e to daddcd4 Compare June 7, 2026 04:26
@opensourceways-bot

Copy link
Copy Markdown

CLA Signature Pass

TommyLike, thanks for your pull request. All authors of the commits have signed the CLA. 👍

@TommyLike TommyLike changed the title feat: add cross-platform binary release workflow feat: release workflow + 8 GitHub smoke scenarios Jun 7, 2026
@TommyLike TommyLike merged commit a54e504 into main Jun 7, 2026
7 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants