Skip to main content

Code Examples and Common Workflows

Working with Source Code

You can create a build directly from local source files, instead of from a GitHub repository:

signaloid-cli builds create:source \
--file main.c \
--lang C \
--args "--enable-uncertainty"

Visualizing Results

If your task produces UxHw strings (uncertainty values), you can create plots to visualize them:

signaloid-cli plot ux-string \
--ux-string "90.600000Ux..." \
--out distributions/

Example Workflow

# Single-file build and run
signaloid-cli builds create:source --file test.c --lang C
signaloid-cli tasks create --build-id <id>
signaloid-cli tasks output --task-id <id>

File Management

Upload data file:

signaloid-cli files upload --path data/input.csv --from ./local.csv

List files:

signaloid-cli files ls --path data/

Download results:

signaloid-cli files download --path results/output.txt

List Available Cores

signaloid-cli cores list

Check Help Anytime

Every command has built-in help:

signaloid-cli --help
signaloid-cli tasks --help
signaloid-cli tasks create --help

Using Authentication in Scripts

Shell Scripts

#!/bin/bash

API_KEY="your-api-key-here"

# Login
signaloid-cli auth login --api-key $API_KEY

# Verify
if signaloid-cli auth whoami &> /dev/null; then
echo "✓ Authenticated successfully"
else
echo "✗ Authentication failed"
exit 1
fi

# Your commands here
signaloid-cli repos list

Using Secrets Management

For production environments, use a secrets manager:

# Example with AWS Secrets Manager
API_KEY=$(aws secretsmanager get-secret-value \
--secret-id signaloid/api-key \
--query SecretString \
--output text)

signaloid-cli auth login --api-key $API_KEY

CI/CD Integration

GitHub Actions

name: Signaloid Build

on: [push]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: '22'

- name: Install Signaloid CLI
run: npm install -g @signaloid/signaloid-cli

- name: Authenticate
env:
SIGNALOID_API_KEY: ${{ secrets.SIGNALOID_API_KEY }}
run: signaloid-cli auth login --api-key $SIGNALOID_API_KEY

- name: Run build
run: |
signaloid-cli builds create:repo --repo-id $REPO_ID

GitLab CI

build:
script:
- npm install -g @signaloid/signaloid-cli
- signaloid-cli auth login --api-key $SIGNALOID_API_KEY
- signaloid-cli builds create:repo --repo-id $REPO_ID
variables:
SIGNALOID_API_KEY: $SIGNALOID_API_KEY

Tips and Tricks

Use JSON Output with jq

All commands output JSON, making them perfect for scripting:

# Extract specific fields
BUILD_ID=$(signaloid-cli builds create:repo --repo-id $REPO_ID | jq -r '.BuildID')

# Filter and format
signaloid-cli tasks list | jq '.Tasks[] | select(.Status == "completed")'

Set Environment Variables

Store your API key in an environment variable:

export SIGNALOID_API_KEY="your-key"

Then authenticate without typing it:

signaloid-cli auth login --api-key $SIGNALOID_API_KEY