Conversation
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughAdds a new GitHub Actions release pipeline triggered by semver tags, a Homebrew tap update step, RPM packaging spec, and README release/install documentation. The workflow verifies formatting/tests, cross-compiles native binaries, builds RPMs in AlmaLinux containers, publishes a GitHub Release with artifacts and checksums, and optionally updates a Homebrew formula. Changes
Sequence Diagram(s)sequenceDiagram
participant Git as "Git (tag push)"
participant GH as "GitHub Actions"
participant Builder as "Build runners / containers"
participant ArtifactStore as "GitHub Artifacts"
participant Release as "GitHub Release"
participant TapRepo as "Homebrew Tap Repo"
Git->>GH: Push tag vMAJOR.MINOR.PATCH
GH->>GH: verify job (tag format, gofmt, tests, go build)
GH->>Builder: build-native matrix (cross-compile, archive)
Builder-->>ArtifactStore: upload archives
GH->>Builder: build-rpm matrix (create src tar, rpmbuild in AlmaLinux)
Builder-->>ArtifactStore: upload RPMs
GH->>ArtifactStore: download all artifacts
GH->>GH: compute SHA256SUMS.txt
GH->>Release: create GitHub Release + attach artifacts and checksums
alt HOMEBREW_TAP_GITHUB_TOKEN present
GH->>Release: download source tarball
GH->>TapRepo: update Formula/eos-tui.rb and push if changed
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (3)
.github/workflows/release.yml (1)
82-88: Consider adding macOS arm64 to the build matrix.The matrix includes macOS amd64 but not arm64 (Apple Silicon). Adding a matrix entry would provide native binaries for Apple Silicon users:
Proposed matrix entry for macOS arm64
- label: macOS amd64 runner: macos-latest goos: darwin goarch: amd64 exe_suffix: "" archive_ext: tar.gz asset_suffix: macos_amd64 + - label: macOS arm64 + runner: macos-latest + goos: darwin + goarch: arm64 + exe_suffix: "" + archive_ext: tar.gz + asset_suffix: macos_arm64🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/release.yml around lines 82 - 88, Add a macOS arm64 matrix entry next to the existing "macOS amd64" entry: duplicate the block that contains the label "macOS amd64" and change label to something like "macOS arm64", set goarch: arm64 (leave runner: macos-latest and goos: darwin), update exe_suffix/archive_ext as needed and set asset_suffix to a distinct value (e.g., macos_arm64) so the release job will build and publish native Apple Silicon binaries alongside the amd64 ones; ensure the new entry is added to the same matrix list used by the release workflow.eos-tui.spec (1)
11-11: Consider usingRecommends:instead ofRequires:for openssh-clients.Based on the application code, SSH is only used when an SSH target is explicitly configured via
--sshflag orEOS_TUI_SSHenvironment variable. When no SSH target is set, commands run locally without invoking SSH at all. Making this a hard dependency forces users to install openssh-clients even for local-only use cases.Proposed change to make SSH a soft dependency
-Requires: openssh-clients +Recommends: openssh-clients🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@eos-tui.spec` at line 11, Change the hard RPM dependency "Requires: openssh-clients" to a soft dependency by replacing it with "Recommends: openssh-clients"; update the spec entry that currently lists "Requires: openssh-clients" (the package dependency line) so SSH is optional since SSH is only used when the CLI flag --ssh or the EOS_TUI_SSH env var is set.README.md (1)
45-50: Consider adding macOS arm64 (Apple Silicon) support.The release binaries include macOS amd64 but not macOS arm64. Apple Silicon Macs (M1/M2/M3/M4) are now prevalent, and while Rosetta 2 can run amd64 binaries, native arm64 builds provide better performance and user experience.
This would require adding a corresponding matrix entry in the workflow as well.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` around lines 45 - 50, The README currently lists "macOS amd64" but omits Apple Silicon; add "macOS arm64" to the release binaries list (replace or append alongside the existing "macOS amd64" bullet). Also update the CI/release workflow matrix (the matrix entry that defines target platforms/architectures) to include an arm64 target for macOS so builds produce native Apple Silicon binaries; look for references to the release matrix or strings like "macOS amd64" in the workflow file and add the corresponding "macOS arm64" architecture entry.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In @.github/workflows/release.yml:
- Around line 82-88: Add a macOS arm64 matrix entry next to the existing "macOS
amd64" entry: duplicate the block that contains the label "macOS amd64" and
change label to something like "macOS arm64", set goarch: arm64 (leave runner:
macos-latest and goos: darwin), update exe_suffix/archive_ext as needed and set
asset_suffix to a distinct value (e.g., macos_arm64) so the release job will
build and publish native Apple Silicon binaries alongside the amd64 ones; ensure
the new entry is added to the same matrix list used by the release workflow.
In `@eos-tui.spec`:
- Line 11: Change the hard RPM dependency "Requires: openssh-clients" to a soft
dependency by replacing it with "Recommends: openssh-clients"; update the spec
entry that currently lists "Requires: openssh-clients" (the package dependency
line) so SSH is optional since SSH is only used when the CLI flag --ssh or the
EOS_TUI_SSH env var is set.
In `@README.md`:
- Around line 45-50: The README currently lists "macOS amd64" but omits Apple
Silicon; add "macOS arm64" to the release binaries list (replace or append
alongside the existing "macOS amd64" bullet). Also update the CI/release
workflow matrix (the matrix entry that defines target platforms/architectures)
to include an arm64 target for macOS so builds produce native Apple Silicon
binaries; look for references to the release matrix or strings like "macOS
amd64" in the workflow file and add the corresponding "macOS arm64" architecture
entry.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 0df913d8-5bec-45dc-bc56-ed7251051635
📒 Files selected for processing (3)
.github/workflows/release.ymlREADME.mdeos-tui.spec
[codex] Add tag-driven GitHub releases
What changed
vMAJOR.MINOR.PATCHtagsSHA256SUMS.txtfile to the GitHub Releaseeos-tui.specfor RPM packaging and document the release assets in the READMEWhy
The repo had CI but no automated release path. This adds a maintainable release workflow similar in shape to the GFAL project, while keeping this repo's packaging focused on Go binaries and RPMs.
Validation
gofmt -l .go test ./...go build ./....github/workflows/release.ymllocallyeos-tui.spec, which produced an RPM successfullyNotes
CGO_ENABLED=0, so we do not need separate Ubuntu and AlmaLinux binary archivesSummary by CodeRabbit
New Features
Chores
Documentation