gh-122931 CI for Linux multiarch co-installability - #152831
Conversation
a347830 to
3a52cb5
Compare
3a52cb5 to
b84e719
Compare
Duh. Let me store hash manifests instead of storing the installs. |
Do you mean the debug option?
Seems like having another matrix will add 15–16 minutes of CI runtime. |
| required: false | ||
| type: string | ||
| default: '' | ||
| upload-install-hashes: |
There was a problem hiding this comment.
Looks like this input is always passed exactly opposite to bolt-optimizations. A case could be made that it could be computed instead...
There was a problem hiding this comment.
They may currently be opposite, but I think they are orthogonal, I wouldn't want to compute one from the other.
upload-install-hashes should be set once for each (architecture, build flags) combination.
I could imagine adding a check that aborts a build if upload-install-hashes is enable and any other non-architcture, non-build-flag option is non-default. Would that improve things?
| if: inputs.upload-install-hashes | ||
| uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | ||
| with: | ||
| name: ${{ env.INSTALL_HASHES_FILE }} |
There was a problem hiding this comment.
Should this also expose a wildcard for the consumers to look up the artifacts? Though, this probably won't work with a matrix 🤔
It isn't helping make anything more reproducible, setting it so late. We'll file a bug about `.pyc` reproducibility, later.
As suggested in this thread, add some CI tooling to ensure that Python continues to be multi-arch co-installable.
Explicitly skip checking
abi3.soandabi3t.soextensions, as they are currently not co-installable (#122931).We extend
reusable-ubuntuto perform an extra set of build+install+hash runs. This required some slightly different configure options to get more co-install-friendly builds. Those configure options broke some existing tests, but the fixes are trivial, and included.From an earlier implementation that didn't use hash-manifests:
Example failure (without
abi3andabi3tignored): https://github.com/stefanor/cpython/actions/runs/28550736484/job/84647793000Example success (with them ignored): https://github.com/stefanor/cpython/actions/runs/28551134448/job/84648971317