Workflow
This page describes the available parameters for defining workflows.
The on Section
This section specifies conditions that trigger the workflow. The syntax closely follows GitHub Actions workflows:
| Parameter | Values | Description |
|---|---|---|
| push | branches with a list of branch names, ortags with a list of tags | Specifies workflow triggers upon pushes to specific branches or tags. Syntax is identical to GitHub Actions’ push events. |
| pull_request | types (e.g., opened, synchronize, ready_for_review) | Specifies workflow triggers for pull request events. Available event types match GitHub Actions pull request triggers. |
| schedule | cron | Specifies whether workflows should run regularly at a scheduled time GitHub Actions schedule. |
Example:
on: push: branches: - main - develop pull_request: types: [opened, reopened, synchronize]The parameters Section
The parameters section defines job-specific execution settings:
| Parameter | Type | Description |
|---|---|---|
| partitions | List of strings | Specifies which cluster partitions your benchmarks should run on. See the Partitions Reference for available options. |
| timeout (optional) | Integer | Maximum allowed execution time in minutes before the benchmark job is automatically terminated. The default value is 20 minutes. |
| container (optional) | string | Specifies which docker container to use as a basis for the workflow. If nothing is specified, it will run the default container of the partition Partition Images |
parameters: partitions: - bellis5 timeout: 40The steps Section
This section contains two subsections: build and run.
The build Subsection
Contains commands to set up the environment and compile your benchmarks. The subsection expects a multiline string with shell commands executed sequentially.
steps: build: | sudo apt-get update sudo apt-get install -y libblas-dev docc -O2 benchmark.c -o benchmark.outThe run Subsection
Defines individual benchmarks, including commands and measurement configurations: Each benchmark entry supports the following parameters:
| Parameter | Type | Description |
|---|---|---|
| command | String | Command to execute the benchmark. |
| measurements (optional) | Integer | Number of repeated runs to ensure statistical reliability. By default, measurements are executed until a certain level of confidence is achieved w.r.t the mean runtime. |
| threshold (optional) | Integer | Absolute runtime threshold in seconds. Jobs exceeding this threshold are marked as failed. |
| cwd (optional) | String | Path to the directory where the run step is supposed to be executed. |
| env (optional) | Map of strings | Environment variables and their values. These variables are set for the run step. |
steps: run: benchmark_1: command: ./benchmark.out --size 1000 measurements: 5 threshold: 0.05 cwd: tests env: MY_VAR: HELLO_WORLD LD_LIBRARY_PATH: my/lib/path:$LD_LIBRARY_PATH