gh-37099: GH Actions: Build platform-independent wheels of sagemath-environment, sage-setup, sage-sws2rst for PyPI
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes #1234" use "Introduce new method to
calculate 1+1"
-->
<!-- Describe your changes here in detail -->
<!-- Why is this change required? What problem does it solve? -->
We already build platform wheels for
**sagemath-{objects,categories,repl}** for PyPI using cibuildwheel.
Here we add building of platform-independent wheels for **sagemath-
environment** and **sage-setup** and **sage-sws2rst** to the GH Actions
workflow. (They are needed, for example, for pyodide / jupyterlite.)
To test locally: `make pypi-noarch-wheels`
We also update actions/upload-artifact, actions/download-artifact to v4.
This requires a restructuring, as we can no longer upload the wheels for
different architectures (built by separate matrix jobs) to the same
artifact: https://github.com/actions/upload-artifact?tab=readme-ov-
file#not-uploading-to-the-same-artifact
Instead we upload them as separate artifacts and deploy them to PyPI
directly from the job that built them.
This is:
- part of #31251
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes #12345". -->
<!-- If your change requires a documentation PR, please link it
appropriately. -->
### :memo: Checklist
<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
<!-- Feel free to remove irrelevant items. -->
- [x] The title is concise, informative, and self-explanatory.
- [x] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.
### :hourglass: Dependencies
<!-- List all open PRs that this PR logically depends on
- #12345: short description why this is a dependency
- #34567: ...
-->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
URL: https://github.com/sagemath/sage/pull/37099
Reported by: Matthias Köppe
Reviewer(s): Kwankyu Lee, Matthias Köppe