Auto-Setup Nodes

On auto-setup nodes, Scrutinizer will infer certain commands based on the structure of your project. This can be things like the version of languages, dependency installation commands to run, or also which tests to execute. This is very helpful as you get started on Scrutinizer as often all you need to do is just add a project and everything will just work automatically.

Config

On auto-setup nodes, commands are split into three different sections:

build:
  nodes:
    some-name:
      dependencies:
        before:
          # runs before inferred commands
          - some-command
          - other-command

        override:
          # overrides inferred commands
          # ...

        after:
          # runs after inferred commands
          # ...

      project_setup:
        # ...

      tests:
        # ...

      cache:
        directories:
          - a
          - b

For each section, you can decide whether you would like to run additional commands before or after the automatically inferred commands or also to override the inferred commands entirely.

Code Checkout & Caching

On auto-setup nodes, the code is always checked out at the very beginning to the ~/build directory in your home folder. Likewise, the cache is restored once at the beginning and stored again at the end of a build. You can configure which directories are to be cached and Scrutinizer will also automatically add directories used by common package managers.

The cache is always scoped by node and branch. So, different nodes and different branches have separate caches.