Writing a Node Definition
Here is an example node definition:
serviceA-deploy: fileroot: serviceA base: ami-0b898040803850657 keywords: deploy env: - APIKEY steps: - RUN cal - RUN ls
Node definitions are written in Yaml with a single block describing a whole node. The name of the node is what all other attributes of the node are filled under.
The fileroot parameter is used to control caching for the individual folder or file relating to building a service. It is relative to the root of the project as a whole. This can also take a list of file roots or specific files to hash.
Right now with only one provider, this is simply the AMI id that the node should run under. In the future, this is likely to be a provider specific setting.
deploy marks a node that should only run when the deploy flag is provided.
windows marks a node as having to use the windows agent and init script instead of the Linux one.
Any argument listed under here will be taken from the system where Makecloud was invoked and passed onto the virtual machine running the agent. This is frequently useful for security credentials or other items that you don’t want to commit into the codebase.
This is a series of steps or commands that gets executed on the node.
RUN Executes the command in bash on linux or for powershell on windows
UPLOAD Uploads a file from the virtual machine into s3. It takes two arguements, the first of which is an absolute path and the second being a unique name per stage to identify the storage.
DOWNLOAD Downloads a file that was uploaded by another stage. It takes two arguments, the first is the name of the node and the file to retrieve from it in the form of node_name/file_name. The second is an absolute path where to store the file on a Linux system.