Repository navigation
Conversation
| if: always() | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: opsscript-gate-${{ matrix.image }} |
There was a problem hiding this comment.
Report uploads fail for every image. Each image name contains
:, so name: opsscript-gate-${{ matrix.image }} gives actions/upload-artifact@v4 an invalid artifact name. The upload step fails even if the installer produced a report. Use an artifact-safe name for each image.
Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/opsscript-gate.yml
Line: 52
Comment:
**Report uploads fail for every image.** Each image name contains `:`, so `name: opsscript-gate-${{ matrix.image }}` gives `actions/upload-artifact@v4` an invalid artifact name. The upload step fails even if the installer produced a report. Use an artifact-safe name for each image.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.| uses: Mresyzz/opsscript-gate@v0.8.0 | ||
| with: | ||
| script-path: install.sh | ||
| matrix: ${{ matrix.image }} |
There was a problem hiding this comment.
Failed installs can pass. The workflow runs
install.sh but never checks whether lsh was installed. The script continues after a failed download, extraction, or move and ends with a successful echo, so its exit code can be zero without an installed binary. Check for and run the installed binary inside each image.
Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/opsscript-gate.yml
Line: 37-40
Comment:
**Failed installs can pass.** The workflow runs `install.sh` but never checks whether `lsh` was installed. The script continues after a failed download, extraction, or move and ends with a successful `echo`, so its exit code can be zero without an installed binary. Check for and run the installed binary inside each image.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.| paths: | ||
| - install.sh | ||
| - .github/workflows/opsscript-gate.yml | ||
| push: | ||
| branches: [main] | ||
| paths: | ||
| - install.sh | ||
| - .github/workflows/opsscript-gate.yml |
There was a problem hiding this comment.
Packaging changes skip the check.
install.sh expects a specific archive name and folder layout, both set by .goreleaser.yaml. A change to that file alone can break the download or extraction, but neither path filter starts this workflow for it. Add .goreleaser.yaml to both filters.
| paths: | |
| - install.sh | |
| - .github/workflows/opsscript-gate.yml | |
| push: | |
| branches: [main] | |
| paths: | |
| - install.sh | |
| - .github/workflows/opsscript-gate.yml | |
| paths: | |
| - install.sh | |
| - .goreleaser.yaml | |
| - .github/workflows/opsscript-gate.yml | |
| push: | |
| branches: [main] | |
| paths: | |
| - install.sh | |
| - .goreleaser.yaml | |
| - .github/workflows/opsscript-gate.yml |
Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/opsscript-gate.yml
Line: 5-12
Comment:
**Packaging changes skip the check.** `install.sh` expects a specific archive name and folder layout, both set by `.goreleaser.yaml`. A change to that file alone can break the download or extraction, but neither path filter starts this workflow for it. Add `.goreleaser.yaml` to both filters.
```suggestion
paths:
- install.sh
- .goreleaser.yaml
- .github/workflows/opsscript-gate.yml
push:
branches: [main]
paths:
- install.sh
- .goreleaser.yaml
- .github/workflows/opsscript-gate.yml
```
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
|
I validated the workflow on the fork before leaving the PR in its final form:
The manual validation trigger used for the run was removed from the final commit. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit ca2ab96. Configure here.

Adds a four-image installer smoke test (Debian 12, Ubuntu 22.04/24.04, Alpine 3.20). Bash and download tools are installed explicitly. The workflow embeds the current installer into a temporary script, runs it in a subshell with its exit behavior preserved, and checks the installed
$HOME/.lsh/lsh --versionin the same container. Explicit exit 0 cannot bypass the binary check. Packaging configuration changes also trigger the workflow.Validation at head 3afa715: all four images passed, with installed binary execution and JSON report uploads.
https://github.com/Mresyzz/cli/actions/runs/38146383228
An earlier run caught a non-gzip download on Ubuntu 22.04: the installer printed “Installation finished” but the binary was absent, and the postcondition correctly failed. This is why installation postconditions matter; that single download failure was not evidence of a distro-specific defect.