-
Notifications
You must be signed in to change notification settings - Fork 981
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
javascript action not usable for Python C extensions #334
Comments
Unfortunately this is a limitation of the system right now. We use node as the runtime to execute javascript-based actions so at a minimum the container needs to be able to run node. I understand that manylinux2010 is "old" on purpose but that is why this is happening. The @v1 version of checkout was container based so it did not require executing node+javascript. We can't use a statically linked version of node because it has to be able to load compiled addons to be generally useful, so the only other option I really see for you is either installing the required libraries as a step before running javascript-based actions, or build your own container based on manylinux2010 with those libraries installed, so that you do not need to install them just-in-time each run. Leaving open for now because there may be some extra discussion or work needed for the checkout action, whether it be docs or continuing to support the v1 container-based action. @ericsciple |
Minor clarification, |
@bryanmacfarlane @dakale is there a document somewhere describing the job-container limitation that we can point customers to? Individual actions cannot fix. |
The problem is also not scoped to checkout right? It would be any action, correct? If that's correct, we should transfer the issue to the runner. |
I think it may be the opposite - older images (manylinux2010) and newer node. We use node 12 (latest LTS) to run actions written to run node12. I think there isn't a solution to that except to use the manylinux2014 image. I think that is the solution here. |
Unfortunately manylinux2014 targets a newer version of glibc (the whole point of manylinux is to compile the python module for as old of a glibc as possible). In this particular case, it might be possible to ship another sysroot with the node plugins (and set things like LD_LIBRARY_PATH or modify the RPATH of all the libraries). |
Hi @bek0s, can you tell me if this issue is still valid? |
Going to close this out as the workaround has been identified, thank you for the report. |
Hi @thboop We're still blocked by this issue that the default external tool "node12" cannot run within the manylinux2010 environment. Is it possible to specifiy a customized node executable to run the javascript action in the yaml configuration? |
checkout@v2 fails when using Docker image:
quay.io/pypa/manylinux2010_x86_64
with the following error
The above image is the official Docker image for building and distributing Python extensions. The newer version (
quay.io/pypa/manylinux2014_x86_64
) does not have this problem, but the majority still uses the manylinux1 and manylinux2010 images.checkout@v1 does not have this problem. Maybe it is using an older version of node that has lower requirements in terms of GLIBC version?
Sadly, some other actions on GitHub are also using node (?!) and fail with the manylinux2010 image (e.g., the setup-python action).
Thank you.
The text was updated successfully, but these errors were encountered: