# Checks both dataflows against the typed contract in dora-node.yml. This runs # no node, so it needs neither a camera nor the ZED SDK. name: validate on: [push, pull_request] env: DORA_VERSION: v1.0.1 DORA_TARGET: x86_64-unknown-linux-gnu jobs: validate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install the dora CLI run: | curl -fsSL -o dora-cli.tar.gz \ "https://github.com/dora-rs/dora/releases/download/${DORA_VERSION}/dora-cli-${DORA_TARGET}.tar.gz" tar xzf dora-cli.tar.gz mkdir -p "$HOME/.local/bin" install -m 755 "dora-cli-${DORA_TARGET}/dora" "$HOME/.local/bin/dora" echo "$HOME/.local/bin" >> "$GITHUB_PATH" rm -rf dora-cli.tar.gz "dora-cli-${DORA_TARGET}" - run: dora --version # strict_types: true in each dataflow turns a type warning into a # non-zero exit, so a mismatched annotation fails here rather than at # runtime. The plot file is checked too: it wires the same outputs, and a # rename that breaks only the viewer should still fail the build. - name: Validate the dataflows run: | dora validate dataflow.yml dora validate dataflow_plot.yml