Conversation
Signed-off-by: Valery Piashchynski <piashchynski.valery@gmail.com>
📝 WalkthroughWalkthroughThis pull request standardizes GitHub Actions workflow files across the repository. Changes include YAML array formatting normalization, consolidation of linker flags into single lines, removal of the GOEXPERIMENT=greenteagc environment variable, expansion of Debian package metadata, addition of archiver error handling, and enhancement of Trivy security scan options. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested labels
Suggested reviewers
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)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
.github/workflows/release_dep.yml (1)
63-69:⚠️ Potential issue | 🟠 MajorThe
Packagefield in DEBIAN/control is malformed.The
Packagefield should contain only the package name (e.g.,roadrunner), not the version, architecture, or.debextension. Those are conveyed by the separateVersionandArchitecturefields. Including them inPackageviolates Debian packaging policy and can cause issues with package managers likeapt.🐛 Proposed fix
- echo "Package: roadrunner-${{ steps.values.outputs.version }}-linux-amd64.deb" >> dist/ubuntu/roadrunner-${{ steps.values.outputs.version }}-linux-amd64/DEBIAN/control + echo "Package: roadrunner" >> dist/ubuntu/roadrunner-${{ steps.values.outputs.version }}-linux-amd64/DEBIAN/control🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/release_dep.yml around lines 63 - 69, The DEBIAN/control construction is writing a malformed Package field; change the echo that builds the Package line (the command currently echoing "Package: roadrunner-${{ steps.values.outputs.version }}-linux-amd64.deb") to emit only the package name (e.g., "Package: roadrunner") so Package contains just the name while leaving the existing Version and Architecture echo lines intact; update the echo invocation that references the package name to use the plain name "roadrunner" instead of including version, architecture, or .deb extension..github/workflows/release_dep_aarch64.yml (1)
63-69:⚠️ Potential issue | 🟠 MajorSame
Packagefield issue as inrelease_dep.yml.The
Packagefield should be justroadrunner, notroadrunner-$VERSION-linux-arm64.deb.🐛 Proposed fix
- echo "Package: roadrunner-${{ steps.values.outputs.version }}-linux-arm64.deb" >> dist/ubuntu/roadrunner-${{ steps.values.outputs.version }}-linux-arm64/DEBIAN/control + echo "Package: roadrunner" >> dist/ubuntu/roadrunner-${{ steps.values.outputs.version }}-linux-arm64/DEBIAN/control🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/release_dep_aarch64.yml around lines 63 - 69, The Debian control file is incorrectly setting the Package field to "roadrunner-${{ steps.values.outputs.version }}-linux-arm64.deb"; update the echo that writes the Package line (the command building dist/ubuntu/roadrunner-${{ steps.values.outputs.version }}-linux-arm64/DEBIAN/control) to use just "roadrunner" as the Package value instead of the versioned filename so the package metadata uses the canonical package name.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In @.github/workflows/release_dep_aarch64.yml:
- Around line 63-69: The Debian control file is incorrectly setting the Package
field to "roadrunner-${{ steps.values.outputs.version }}-linux-arm64.deb";
update the echo that writes the Package line (the command building
dist/ubuntu/roadrunner-${{ steps.values.outputs.version
}}-linux-arm64/DEBIAN/control) to use just "roadrunner" as the Package value
instead of the versioned filename so the package metadata uses the canonical
package name.
In @.github/workflows/release_dep.yml:
- Around line 63-69: The DEBIAN/control construction is writing a malformed
Package field; change the echo that builds the Package line (the command
currently echoing "Package: roadrunner-${{ steps.values.outputs.version
}}-linux-amd64.deb") to emit only the package name (e.g., "Package: roadrunner")
so Package contains just the name while leaving the existing Version and
Architecture echo lines intact; update the echo invocation that references the
package name to use the plain name "roadrunner" instead of including version,
architecture, or .deb extension.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2290 +/- ##
=======================================
Coverage 35.37% 35.37%
=======================================
Files 18 18
Lines 851 851
=======================================
Hits 301 301
Misses 511 511
Partials 39 39 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR updates the repository’s GitHub Actions workflows for the v2025.1.7 release cycle, primarily by normalizing workflow YAML and adjusting build environment/settings in CI and release pipelines.
Changes:
- Normalize YAML formatting across CI/release workflows (spacing, inline lists, blank lines).
- Remove
GOEXPERIMENT: greenteagcfrom build steps and collapseLDFLAGSdefinitions into single-line values. - Minor workflow hygiene tweaks (e.g.,
needslist formatting, CodeQL branch list formatting).
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/tests.yml | CI formatting cleanup; build env changes (removes GOEXPERIMENT, compacts LDFLAGS). |
| .github/workflows/release.yml | Release workflow formatting cleanup; removes GOEXPERIMENT; introduces extra blank lines inside folded run: > blocks. |
| .github/workflows/release_grpc.yml | gRPC release workflow formatting cleanup; introduces extra blank lines inside folded run: > blocks. |
| .github/workflows/release_dep.yml | Debian release workflow formatting cleanup; removes GOEXPERIMENT; compacts LDFLAGS. |
| .github/workflows/release_dep_aarch64.yml | ARM64 Debian release workflow formatting cleanup; removes GOEXPERIMENT; compacts LDFLAGS. |
| .github/workflows/dependency-review.yml | Whitespace-only formatting cleanup. |
| .github/workflows/codeql-analysis.yml | Formatting cleanup for branch/language lists. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: Set up Go | ||
| uses: actions/setup-go@v6 # action page: <https://github.com/actions/setup-go> | ||
| with: | ||
| go-version: stable |
There was a problem hiding this comment.
The build matrix job also uses go-version: stable, which can drift away from the Go version in go.mod (go 1.26) and make build artifacts non-reproducible. Prefer go-version-file: go.mod (or pin to 1.26.x).
| run: > | ||
| echo "name=$(echo roadrunner-${{ steps.values.outputs.version }}-$( | ||
|
|
||
|
|
||
|
|
||
| [ ${{ matrix.os }} != '' ] && echo '${{ matrix.os }}' || echo 'unknown' |
There was a problem hiding this comment.
These added blank lines inside a run: > folded scalar make the generated shell script harder to read and can subtly change how the command is passed to the runner (blank lines are preserved as newlines). Consider removing the blank lines, or switch to run: | if you intend this to be a multi-line script.
| - name: Set up Go | ||
| uses: actions/setup-go@v6 # action page: <https://github.com/actions/setup-go> | ||
| with: | ||
| go-version: stable |
There was a problem hiding this comment.
This workflow still uses go-version: stable, which can drift over time and stop matching the Go version declared in go.mod (currently go 1.26). To make CI reproducible and ensure the intended Go bump is actually exercised, switch to go-version-file: go.mod (or pin go-version to 1.26.x).
| @@ -47,19 +45,15 @@ jobs: | |||
| uses: actions/setup-go@v6 | |||
| with: | |||
| go-version: stable | |||
There was a problem hiding this comment.
This workflow uses go-version: stable, which may not match the Go version required by the main repo (go 1.26 in go.mod) and can change build output over time. Prefer go-version-file: go.mod (or a pinned 1.26.x) for reproducible releases.
| go-version: stable | |
| go-version-file: protoc_plugins/go.mod |
| - name: Set up Go | ||
| uses: actions/setup-go@v6 | ||
| with: | ||
| go-version: stable |
There was a problem hiding this comment.
go-version: stable can drift from the project’s declared Go version (go.mod currently specifies go 1.26), which can make release artifacts non-reproducible. Prefer go-version-file: go.mod (or pin to 1.26.x).
| go-version: stable | |
| go-version-file: go.mod |
| - name: Set up Go | ||
| uses: actions/setup-go@v6 | ||
| with: | ||
| go-version: stable |
There was a problem hiding this comment.
go-version: stable can drift from the project’s declared Go version (go.mod currently specifies go 1.26), which can make release artifacts non-reproducible. Prefer go-version-file: go.mod (or pin to 1.26.x).
| go-version: stable | |
| go-version-file: go.mod |
| run: > | ||
| echo "name=$(echo protoc-gen-php-grpc-${{ steps.values.outputs.version }}-$( | ||
|
|
||
| [ ${{ matrix.os }} != '' ] && echo '${{ matrix.os }}' || echo 'unknown' | ||
| )$( |
There was a problem hiding this comment.
The newly introduced blank lines inside this run: > folded scalar reduce readability and can affect how the shell receives the script (blank lines are preserved as newlines). Consider removing the blank lines or using run: | for an explicit multi-line script.
| @@ -47,17 +45,13 @@ jobs: | |||
| uses: actions/setup-go@v6 | |||
| with: | |||
| go-version: stable | |||
There was a problem hiding this comment.
go-version: stable here can pick up a newer Go release than the one declared in go.mod (go 1.26), which makes release builds non-reproducible and may unintentionally change build behavior. Prefer go-version-file: go.mod (or pin to 1.26.x).
| go-version: stable | |
| go-version-file: go.mod |
| - name: Set up Go | ||
| uses: actions/setup-go@v6 | ||
| with: | ||
| go-version: stable |
There was a problem hiding this comment.
Same concern as above: this setup-go step uses go-version: stable, which can diverge from the Go version declared in go.mod (go 1.26). Consider switching all setup-go usages in this workflow to go-version-file: go.mod for consistent CI behavior.
Reason for This PR
Description of Changes
License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the MIT license.
PR Checklist
[Author TODO: Meet these criteria.][Reviewer TODO: Verify that these criteria are met. Request changes if not]git commit -s).CHANGELOG.md.Summary by CodeRabbit