Job Status Emails#
SiliconCompiler supports sending job status updates to your email.
To get started you will need to get the SMTP login information.
Using this information create a file at $HOME/.sc/email.json
and fill it in with the login information as shown below.
{
"server": "smtp.gmail.com",
"port": 465,
"ssl": true,
"username": "[email protected]",
"password": "app password",
"from": "Updates <[email protected]>"
}
During the job execution you can control where the emails will be sent to by setting ['option', 'scheduler', 'msgcontact']
, this can be controlled
per node basis.
Additionally, ['option', 'scheduler', 'msgevent']
needs to set to indicate the types of messages to receive.
By default, this is disabled.
This key can be set to the following values:
begin
: this will send a message to indicate a specific node has begun.end
: this will send a message to indicate a specific node has finished.fail
: this will send a message to indicate a specific node has failed.timeout
: this will send a message to indicate a specific node has timed out.summary
: this will send a message with a summary of the run metrics.all
: convenience value to include all of the above.
...
# Send messages for all nodes to [email protected]
chip.set('option', 'scheduler', 'msgcontact', '[email protected]')
# Send messages for route step to [email protected] and [email protected]
chip.set('option', 'scheduler', 'msgcontact', ['[email protected]', '[email protected]'], step='route')
# Send messages at the end of each node, in the event of a failure, and the final summary.
chip.set('option', 'scheduler', 'msgevent', ['end', 'fail', 'summary'])
...
Each email for node execution will contain the status of the run, metrics and records collected to this point, and any logs that are available. The summary email will contain a metrics table and the output image if one is available.