-
Notifications
You must be signed in to change notification settings - Fork 343
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
cml <sub-cmd>
on cml runner instance fails
#920
cml <sub-cmd>
on cml runner instance fails
#920
Comments
Lines 35 to 37 in f3406ac
? it appears that if |
I think there is some strange process magic happening between:
Im not sure what is setting that env var for the runner instance, you can see here (the key there has been revoked) Bad
Good
|
https://github.com/vercel/pkg#snapshot-filesystem
|
All the mentions to When you (1) run The I don't understand yet why setting |
🤣 /edit that was the one strikethrough I missed, I have not revisited the rabbit hole I dug trying to find the root of the issue
Does it set the env? In my basic docker reproduction running a
I suspect you are correct that #802 would fix this. |
Yes, it does: the test:
runs-on: self-hosted
steps:
- run: env | grep PKG_EXECPATH |
It took me a while to figure out why two binaries with the same hash (MD5 & SHA256 for good measure) behaved differently. 🤯 When a hard link solved the issue, it was easy to narrow it down to paths. 🙈 |
I presume now that the
stand-alone execution with the binary in my docker example is you execute |
Playing around more it seems it only fails if with Dockerfile: FROM debian:buster
RUN apt-get update && apt-get install -y curl
RUN mkdir -p /opt/cml/
RUN curl --location --url https://github.com/iterative/cml/releases/download/v0.12.0/cml-linux --output /opt/cml/cml-linux
RUN chmod +x /opt/cml/cml-linux
RUN ln -s /opt/cml/cml-linux /usr/bin/cml Which installs cml the same as tpi,
so if |
While "libelous" I feel validated with suspicion of child_process/spawn weirdness, also well done on the hunt! (vercel/pkg#897 (comment)) I glanced at that chunk but, I missed the value of this in my initial grep of the codebase after I had found the culprit env. To summarize, I agree I think the fix is solving #802 which I have an idea for beyond what is currently implemented in that branch which I intend to test out soon. |
As per vercel/pkg#897 (comment), I doubt that the current implementation of #802 can not unset that environment variable, because it will be overridden by Lines 10 to 26 in f3406ac
Lines 269 to 279 in f3406ac
|
It looks like iterative/terraform-provider-iterative#458 might do the trick, but it's just a huge hack to bypass the |
👀 🤔
I think what I have in mind shouldn't care (if it works); as far as I have seen there is no issue with repeated invocations, just the "re-invocation" within the inherited context of the first Finished doing some reading and plan to try it out tomorrow evening 😴 |
🎉 Related to #721 (comment) |
Just to confirm - does TPI v0.10.2 fix this? |
I have tried a few iterations of this:
Fails with an odd message:
Error: Cannot find module '/tmp/tmp.njlS8oR0sf/.cml/cml-ehsjbxeja3/_work/cml-pulse/cml-pulse/ci'
and:
Fails with a
EEXIST: file already exists, symlink '../lib/node_modules/@dvcorg/cml/bin/cml.js' -> '/usr/bin/cml'
However using
--cml-version=github:iterative/cml.git#master \
to trigger thenpm install -g
way of setting up cml on the runner instance works fine.The text was updated successfully, but these errors were encountered: