Submit a single Verilog file, then poll status until the run completes or fails.
export CMULATION_API="https://cmulation.com/api"
export CMULATION_TOKEN="cmuat_xxxxxxxx_your_secret"
# Submit
curl -sS -X POST "$CMULATION_API/simulations/verilog" \
-H "Authorization: Bearer $CMULATION_TOKEN" \
-F "file=@design.v;type=text/plain" \
-F "name=ci-smoke"
# Poll (replace SIM_ID from response)
curl -sS "$CMULATION_API/simulations/SIM_ID/status" \
-H "Authorization: Bearer $CMULATION_TOKEN"
npm install -g @cmulation/cli
export CMULATION_API_TOKEN="cmuat_xxxxxxxx_your_secret"
export CMULATION_API_URL="https://cmulation.com/api"
# Submit + wait until completed (exit 0) or failed (exit 1)
cmulation run verilog --file design.v --name ci-smoke
# ZIP bundle
cmulation run verilog --archive rtl.zip --top-module tb_top
# Or submit / wait separately
cmulation submit verilog --file design.v
cmulation wait SIM_ID
- uses: <org>/cmulation-action@v1
with:
token: ${{ secrets.CMULATION_API_TOKEN }}
engine: verilog
file: rtl/tb_top.v
# archive: rtl/project.zip
# top-module: tb_top
timeout-seconds: '900'Full inputs and a copy-paste workflow are in the action repository's README.