build: assert bin/* contents in built gem to prevent global pollution.#29915
Conversation
571f5c4 to
e378c59
Compare
| export PATH="$GEM_HOME/bin:$PATH" | ||
|
|
||
| # Verify executables | ||
| ruby -e "require 'rubygems/package'; spec = Gem::Package.new('${{ steps.build.outputs.gem_file }}').spec; expected = %w(bin-proxy fastlane match_file); puts \"Gem executables: #{spec.executables}\"; exit(1) unless spec.executables.sort == expected.sort" |
There was a problem hiding this comment.
Looks good. Is there any advantages of having all these scripts in github as opposed to a single sanity_test.sh test script that we could run locally as well?
There was a problem hiding this comment.
I felt kinda dirty polluting scripts in main area, thats why I moved this one into .github - https://github.com/fastlane/fastlane/tree/master/.github/scripts
I figure only those really in-tune would run it on their own and CI is pretty quick with these tests at least.
There was a problem hiding this comment.
Hey @iBotPeaches 👋
Thank you for your contribution to fastlane and congrats on getting this pull request merged 🎉
The code change now lives in the master branch, however it wasn't released to RubyGems yet.
We usually ship about once a month, and your PR will be included in the next one.
Please let us know if this change requires an immediate release by adding a comment here 👍
We'll notify you once we shipped a new release with your changes 🚀"
There was a problem hiding this comment.
Congratulations! 🎉 This was released as part of fastlane 2.233.0 🚀
Problem
We sometimes emit more bin binaries than intended. Development binaries should not be exposed, especially something as generic as "console".
Solution
Add CI to test what we emit in /bin. This will prevent the issue in #29914 from re-appearing.