Separate the Windows and Linux binaries#252
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #252 +/- ##
=======================================
Coverage 86.35% 86.35%
=======================================
Files 34 34
Lines 9422 9422
Branches 9422 9422
=======================================
Hits 8136 8136
Misses 1153 1153
Partials 133 133 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Claude finished @simonmarty's task in 1m 11s —— View job Claude Code Review
SummaryThis PR routes Windows binaries to a separate S3 bucket/key-prefix in both 🔴 Potential silent misrouting (staging.yml)
BUCKET: ${{ runner.os == 'Windows' && secrets.WINDOWS_STAGING_BUCKET || secrets.STAGING_BUCKET }}This uses the GitHub Actions Given the whole point of the change is isolation, consider failing loudly instead. For example, resolve the bucket unconditionally and validate it in the script: env:
BUCKET: ${{ runner.os == 'Windows' && secrets.WINDOWS_STAGING_BUCKET || secrets.STAGING_BUCKET }}
run: |
if [[ -z "$BUCKET" ]]; then
echo "::error::Target bucket is empty for ${{ matrix.target }}"
exit 1
fi
...🟠 Leading slash in S3 key when the bin-path secret is empty
# release.yml
key_prefix="${WINDOWS_BIN_PATH}/"
# staging.yml
KEY_PREFIX: ${{ runner.os == 'Windows' && format('{0}/', secrets.STAGING_WINDOWS_BIN_PATH) || '' }}If 🟡 Inconsistent approach between the two filesThe two files solve the same problem two different ways:
Both work, but the 🟡 Secret naming inconsistencyThe new secret names don't follow a consistent scheme, which is easy to trip over when configuring environments:
Not a functional bug, but standardizing (e.g. Nits
Overall the logic is sound; the main thing I'd resolve before merge is the silent Linux-bucket fallthrough in
|
|
Claude has good suggestions worth fixing including The testing section is empty in the description - are we planning to test after merging? |
|
I'm going to fix the naming inconsistency for the secrets. The other edge cases strike me as overly defensive. I think it's obvious that all secrets can be expected to be set but I can add a step that actually validates that at the top. I think that's cleaner than having a check in every place where the secrets are used. |
|
I'm testing this on my fork. I will post results shortly. |
Description
Why is this change being made?
What is changing?
Related Links
Testing
How was this tested?
When testing locally, provide testing artifact(s):
Reviewee Checklist
Update the checklist after submitting the PR
If not, why:
If not, why:
If not, why:
If not, why:
If not, why:
If not, why:
If not, why:
If not, why:
If not, why:
If not, why:
Reviewer Checklist
All reviewers please ensure the following are true before reviewing:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.