Submitting Jobs (CLI)
From a directory
ssynth job submit ./my-project --project <PROJECT_ID> --top top_module --target ice40:hx8k:ct256
The CLI bundles the directory into a .tar.gz, uploads it, and creates the job. Files matching .gitignore patterns are excluded.
From an archive
ssynth job submit my-design.tar.gz --project <PROJECT_ID> --top top_module --target ecp5:85k:CABGA554
Accepts .tar.gz and .zip files.
With hwbuild.yml
If your directory contains a hwbuild.yml, the CLI reads target, top module, and other settings from it:
ssynth job submit . --project <PROJECT_ID>
See hwbuild.yml for the format.
Common options
ssynth job submit ./src \
--project <PROJECT_ID> \
--target ice40:hx8k:ct256 \
--top counter \
--seeds 8 \
--pick best_timing \
--priority interactive \
--parallelism 4 \
--steps synth,pnr,bitstream \
--max-runtime 2h \
--max-memory 8GB
Wait for completion
Add --wait to stream logs until the job finishes:
ssynth job submit . --project <PROJECT_ID> --wait
Idempotency
Use --idempotency-key to prevent duplicate submissions:
ssynth job submit . --project <PROJECT_ID> --idempotency-key "commit-abc123"
If a job with the same key already exists, the existing job is returned instead of creating a new one.
Setting a default project
To avoid passing --project every time:
export SSYNTH_PROJECT=<PROJECT_ID>
ssynth job submit .
Or set defaults.project_id in ~/.config/ssynth/config.toml.