ci: share the build setup through a composite action - #579
Closed
somethingwithproof wants to merge 2 commits into
Closed
ci: share the build setup through a composite action#579somethingwithproof wants to merge 2 commits into
somethingwithproof wants to merge 2 commits into
Conversation
Every build job repeated the same apt-get install and bootstrap/configure pair, so a new dependency meant editing five places. The setup now lives in .github/actions/build-spine. mysql-server is dropped from the package set: configure only looks for mysql.h and libmysqlclient, both from libmysqlclient-dev, and no job starts or connects to a server. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
The sanitizer build only ran --version and --help, which exercises almost none of the poller. make check is what drives the code, so it is what the sanitizers should watch. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Member
Author
|
Consolidated into #597, which carries this branch's commits unchanged. Every pair of these ten conflicted on Nothing here is dropped. Reopen this if you would rather review it separately. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every job that builds Spine carried its own copy of the same
apt-get installlist and the same./bootstrap && ./configurepair: four inci.yml, one infuzz.yml. Adding a dependency meant finding all five. The setup moves into.github/actions/build-spine, parameterised by extra packages and configure flags.This is not a line-count win. The workflows lose 42 lines and the action adds 60. What changes is that there is now one place to edit.
mysql-servercomes out of the package set.configure.aclooks formysql.handlibmysqlclient.*, both of whichlibmysqlclient-devprovides, and no job in the repository starts a server or connects to one. It was installed in four jobs and used by none.The pins had split.
actions/checkoutwas on3d3c42e(v7.0.1) in five places and11bd719(v4.2.2, October 2024) in three;upload-artifactwas on v7.0.1 and v4.6.2. Dependabot moved everything to v7 in #560, and #563, #570 and #577 then merged with older SHAs copied in. Only one of the eleven pins carried a version comment, so nothing about the diff made the drift visible. All pins are now uniform and commented.The second commit is separate because it changes behaviour rather than structure. The sanitizer job built the whole tree under ASan and UBSan and then ran
./spine --versionand./spine --help, which reaches almost none of the poller. It now runsmake checkinstrumented, and keeps the smoke test after it.Verified with
actionlint(clean before and after) and by executing the action's argument construction for all four call shapes:Two things need the CI run rather than local checking: that the reduced package set still builds on the runner, and what
make checkfinds under the sanitizers. If the sanitizer job comes back red, that is the point of the change.