-
Notifications
You must be signed in to change notification settings - Fork 45
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
script to more easily inspect a build job #317
Conversation
Instance
|
I've played with this a bit, but wanted to do so in my own homedir. I think it would be good to see what the minimal 'unit' is we need to give to someone to make this work. From my attempt in #310 (comment) I'm assuming it needs the tarball, and the config dir. The issue is that in this script, you make the assumption that the complete build tree looks the same. E.g.
It would be nice if that is just configurable. Than we (people who have access to the bot account) could simply give others (without access) only the necessary things: config dir & tarball. And from there, they could resume. Though I haven't yet had the time to read through the code in detail, I expect the only thing this would need is an argument to point to the location of the But maybe it's not so easy...? |
Ok, let me log what I do here, just to have written down somewhere how I debug #310 as an example:
(and, of course, everything runs like a charm now... so much for reproducing my issue :D) |
bot/inspect.sh
Outdated
echo_green ">> MODULEPATH set up: ${MODULEPATH}" | ||
fi | ||
|
||
eb_version='4.7.2' |
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.
Ideally this is an option to the script, since we'll soon be using a newer EasyBuild version for 2023.06
.
Maybe we shouldn't be loading an EasyBuild module at all here (at least by default).
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.
Agree. Should not be set to a specific version because different ones may be used by the same job.
I think it would be best to skip this, and change the comments with instructions to load EasyBuild.
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.
As mentioned, it might be useful if one can also drive this script in a batch job. For that to be useful, we need to be able to run commands in the container. I added:
echo " -c | --command COMMAND - command to execute inside the container, in the prefix environment"
...
-c|--command)
export run_in_prefix="${2}"
shift 2
;;
...
./eessi_container.sh "${CMDLINE_ARGS[@]}" \
-- ${EESSI_COMPAT_LAYER_DIR}/startprefix <<< ${run_in_prefix}
which works, but I haven't tested how it behaves if no --command
is passed. Might have to do some more elegant if-else there to avoid passing in ${run_in_prefix}
if it isn't defined.
…t executed in the container. Useful if you want to e.g. run this in a job, but just submit that job manually (not by the bot).
Add the option to pass a command to the inspect script, which will get executed in the container
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.
I've used this a couple of times by now. Works like a charm for me. Lgtm!
let bot run EESSI test suite after building
Provides the script
bot/inspect.sh
which should be called with the full path to a tarball containing the state of a build job's temporary storage.Before calling the script, launch an interactive job, e.g.,
Then do the following to enter the build job's environment
This follows all the setup done for a build job until the step where
eb --easystack ...
is called. A message such asis printed when it's ready to be used.
Testing & feedback welcome. Would like to keep it as WIP for a few days to allow for polishing and improvements.