On minimal nodes, Scrutinizer will not infer any commands, but just start the container, inject environment variables and some access credentials like tokens and SSH keys.
On minimal nodes, all commands are placed in a single section; there are no automatically added commands:
build: nodes: some-name: commands: - some-command - other-command
You have full control over which commands and the order of commands that is run.
Code Checkout & Caching¶
On minimal nodes, you have full control over when and where code is checked out and you can also decide when your cache is restored, or when and which directories are stored in the cache.
Scrutinizer provides some commands to make this still very easy:
build: nodes: some-name: commands: # Checking out code to the ~/build directory - checkout-code ~/build # Storing the directory "vendor/" in the repository cache # with key dependencies. - store-in-cache repository dependencies vendor/ # Restoring the directory vendor/ again - restore-from-cache repository dependencies
This gives you in general greater flexibility to optimize your builds. For example, instead of storing a single cache file, you can store multiple different entries in your cache for different commands. Or, you can automatically invalidate your cache when you update your dependencies by adding a checksum to the cache key.
You can learn more about the options available in the dedicated caching section.