-
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix CI Again #8
Fix CI Again #8
Conversation
The quotation marks seem to be intepreted literally, breaking caching, since a dir named (literally, with quotes in the name) 'node_modules' doesn't exist? (Either that, or the cache actions or its glob dependency are just super broken.)
This ensures compatibility with most versions of node-gyp. There is a fix for Python 3.12 compatibility in node-gyp 10, but older versions of npm come with older node-gyp, so here we are.
For compatibility with old node-gyp, which is shipped with old npm, which is shipped with Node 14. Very old node-gyp isn't compatible with Python 3.11+. Install Python 3.10 instead.
This isn't really urgent for me at all, since I don't have any planned changes over at this repo any time soon, but if others are working on changes here and wondering why CI isn't passing, just merge this, and unless newer changes in the GitHub-hosted runner base images have broken our CI out from under us again since this was posted, you should have passing CI again! |
OK, asking for someone with write access (like @confused-Techie) to merge this PR. Maybe it'll help get #9 working. |
This PR is now quite old. I think the recent " EDIT: That said, if we need to get CI working in this repo, I absolutely recommend starting with this PR. It would save so much time and the work's already been done. Better than starting from scratch, am I right? The EDIT 2: Yeah, some new macOS issues, no doubt about it. See a run I just did today: https://github.com/DeeDeeG/superstring/actions/runs/9199512008. As essentially expected. Nevertheless, I'd suggest merging this as a great head start compared to having to reverse-engineer the problems this PR solves and the new macOS ones that have cropped up since last November. EDIT 3: Or if you really want, give me some time and I'll fix or workaround the new macOS issues for CI purposes and we can merge it along with the fixes from November, heh. Either way, though. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies this PR hasn't been addressed, thanks for pinging me on it @savetheclocktower.
@DeeDeeG if you'd rather try to fix this one that sounds fine by me, otherwise as a reviewer I see great reasoning and passing CI, even if I know that's sorta a lie, I'd be more than willing to get this merged
Merging this as-is for now, it simplifies the path forward mentally for me, and kind of democratizes/opens up the path forward for anyone willing to take a crack at fixing this. Also, so much time has passed it feels right to open a new PR even for commit history purposes, IMO. Anywho, kind of arbitrary, but merging as this gives us some progress toward passing CI again, even if we know it will fail as-written once merged, sadly, due to more-recent breakage. |
Fixing CI, Again
This is working around some stuff, mostly to do with older versions of node-gyp we're running that need workarounds for newer Python versions.
Changes, and Rationale for Changes
Changes (with rationale in the nested bullet points):
python3 -m pip install setuptools
simply says the 'setuptools' requirement is already satisfied, since 'setuptools' used to be bundled out of the box with these older versions of Python. It was only deprecated in Python 3.10 (if I recall correctly), and then removed in Python 3.12.actions/xyz
actions to the latest semver-major versionsactions/setup-node@v2-beta
. That action has had stable v2 and even v3 for a long time now.actions/cache
actions/xyz
actions.actions/cache@v3
update I just did in this PR branch. Otherwise, it fails to find a path literally named'node_modules'
, (as if the single quote characters were literally part of the path name, not semantic quotes) and doesn't upload/restore any cache.npm install
regardless of if the cache was restored or not, and most of the time spent duringnpm install
is rebuilding the native C/C++ code anyway -- It's unclear to me if caching saves any time whatsoever, as CI runtime is much more dependent on how quickly the CI VMs compile the native code twice throughout the run. Which appears to be extremely variable, probably dependent on how hard other VMs running on the same hardware use the CPU/storage/network, etc. concurrently with this repo's jobs.npm install
if cache restored successfully, but I didn't go for that optimization yet.Short summary
tl;dr:
Given that GitHub Actions only finally saw fit to start using the newer macOS images for this repo, with Python 3.12, these fixes were not needed until right about now. So, without us changing anything, the newer image broke this repo's CI, and this fixes it. Also some housekeeping upgrading the
actions/xyz
actions to their latest semver versions at the time of this PR being opened.Yeah, it is kind of annoying that Python keeps breaking node-gyp, and that node-gyp keeps on having to change to keep up. What more can I say about that?