This is a requirement for systems where a compute node (used for compilation) does not have internet access. They run a build in two steps:
- A checkout step on a node with internet access
- A build script (after the checkout script).
While this could be easily done, there is a lot of convenience if they are supported in the same script (i.e. just one script to maintain), and for sites that don't need to split these two steps, the build can still be done with a single fab call.
Suggested approach would be to the following options to fab_base:
- Add a command-line option
--checkout-only, which will just abort after the grab_files step.
- Add a command-line option
--skip-checkout, which will allow applications to skip svn/git checkouts. They still might want to copy local files (i.e. while developing, you would want to update files from the application, just leaving the dependent repos unchanged). This will require changes to the applications scripts, since only they would know what is external and what isn't (I don't think we should make this part of the git/svn function to distinguish local/remote access, it would lead potentially to unexpected behaviour for users; while an app developer would actually know exactly which parts can/should be executed and which shouldn't).
This will be informed by implementing this in lfric.
This is a requirement for systems where a compute node (used for compilation) does not have internet access. They run a build in two steps:
While this could be easily done, there is a lot of convenience if they are supported in the same script (i.e. just one script to maintain), and for sites that don't need to split these two steps, the build can still be done with a single fab call.
Suggested approach would be to the following options to
fab_base:--checkout-only, which will just abort after thegrab_filesstep.--skip-checkout, which will allow applications to skip svn/git checkouts. They still might want to copy local files (i.e. while developing, you would want to update files from the application, just leaving the dependent repos unchanged). This will require changes to the applications scripts, since only they would know what is external and what isn't (I don't think we should make this part of the git/svn function to distinguish local/remote access, it would lead potentially to unexpected behaviour for users; while an app developer would actually know exactly which parts can/should be executed and which shouldn't).This will be informed by implementing this in lfric.