signaloid-cli builds
Create and manage builds on Signaloid Cloud Compute Engine.
Synopsis
signaloid-cli builds <command> [options]
Description
The builds command group allows you to create builds from source code or repositories, monitor build progress, and manage build artifacts. Builds compile your C/C++/Fortran code on Signaloid's specialized cores.
Subcommands
- list - List all builds
- get - Get details about a specific build
- create:source - Create a build from a local source file
- create:repo - Create a build from a connected repository
- status - Check build status
- watch - Wait for build completion
- output - Get build output (logs)
- output-urls - Get URLs to build outputs
- cancel - Cancel a running build
- delete - Delete a build
Complete Build Workflow
#!/bin/bash
# Method 1: Build from source file
echo "Creating build from source..."
BUILD_RESPONSE=$(signaloid-cli builds create:source \
--file main.c \
--lang C \
--args "--argA")
BUILD_ID=$(echo $BUILD_RESPONSE | jq -r '.BuildID')
echo "✓ Build created: $BUILD_ID"
# Wait for completion
echo "Waiting for build..."
if signaloid-cli builds watch --build-id $BUILD_ID; then
echo "✓ Build completed successfully"
# Get build output
signaloid-cli builds output --build-id $BUILD_ID --out build.log
echo "✓ Build output saved to build.log"
# Create and run task
TASK_ID=$(signaloid-cli tasks create --build-id $BUILD_ID | \
jq -r '.TaskID')
echo "✓ Task created: $TASK_ID"
# Wait for task
signaloid-cli tasks watch --task-id $TASK_ID
signaloid-cli tasks output --task-id $TASK_ID
else
echo "✗ Build failed"
signaloid-cli builds output --build-id $BUILD_ID
exit 1
fi
Build Management Script
#!/bin/bash
# List recent failed builds
echo "Recent failed builds:"
signaloid-cli builds list --status "Failed" --limit 5 | \
jq -r '.Builds[] | "\(.BuildID): \(.CreatedAt)"'
# Clean up old builds (older than 30 days)
THIRTY_DAYS_AGO=$(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%SZ)
signaloid-cli builds list --to $THIRTY_DAYS_AGO | \
jq -r '.Builds[].BuildID' | \
while read BUILD_ID; do
echo "Deleting old build: $BUILD_ID"
signaloid-cli builds delete --build-id $BUILD_ID
done
Exit Codes
| Code | Description |
|---|---|
0 | Success (or build completed) |
1 | Error or build failed |
The watch command returns:
0if build completes successfully1if build fails, is cancelled, or times out
Tips & Tricks
Parallel Builds
# Create multiple builds in parallel
for file in *.c; do
signaloid-cli builds create:source --file $file --lang C &
done
wait
echo "All builds created"
Monitor Build Queue
#!/bin/bash
while true; do
IN_PROGRESS=$(signaloid-cli builds list --status "In Progress" | \
jq '.Builds | length')
echo "Builds in progress: $IN_PROGRESS"
sleep 10
done
Retry Failed Builds
# Get failed builds
FAILED_BUILDS=$(signaloid-cli builds list --status "Failed" | \
jq -r '.Builds[].BuildID')
# Retry each (by getting original build and creating new one)
for BUILD_ID in $FAILED_BUILDS; do
BUILD_INFO=$(signaloid-cli builds get --build-id $BUILD_ID)
REPO_ID=$(echo $BUILD_INFO | jq -r '.RepositoryID')
if [ "$REPO_ID" != "null" ]; then
echo "Retrying build for repo: $REPO_ID"
signaloid-cli builds create:repo --repo-id $REPO_ID
fi
done
Troubleshooting
Build Stays in "Initialising" State
Problem: Build doesn't progress beyond initialization.
Solutions:
- Wait a few more minutes (initialization can take time)
- Check build output for errors:
signaloid-cli builds output --build-id <id> - Verify repository is accessible
- Check that the build directory exists in the repository
"Build failed" with No Error Message
Problem: Build fails without clear error.
Solutions:
- Get detailed output:
signaloid-cli builds output --build-id <id> - Check if source file is valid C/C++/Fortran
- Verify all dependencies are available
- Check for missing includes or libraries
Build Timeout
Problem: watch command times out.
Solutions:
- Increase timeout:
--timeout 300000(5 minutes) - Check build status manually:
signaloid-cli builds status - Large builds may take longer - adjust timeout accordingly
See Also
- signaloid-cli repos - Connect repositories
- signaloid-cli tasks - Run tasks from builds
- signaloid-cli cores - View available cores
Learn More
- Quick Start - Complete workflow example