# Generated by ore workflow generate — layer: ci-standard
# Source: .ontology/workflow.ncl
# Do not edit manually — regenerate with: ore workflow generate --layer ci-standard

when:
  event: [push, pull_request, manual]

steps:
  rust-clippy-all:
    image: rust:latest
    commands:
      - cargo clippy --all-targets --all-features -- -D warnings

  nickel-typecheck:
    image: rust:latest
    commands:
      - cargo install nickel-lang-cli --locked
      - nickel typecheck

  nushell-check:
    image: rust:latest
    commands:
      - cargo install nu --locked
      - find . -name '*.nu' ! -path '*/target/*' -print0 | xargs -0 -I\{\} nu --ide-check 100 \{\}

  nextest-ci:
    image: rust:latest
    commands:
      - cargo install cargo-nextest --locked
      - cargo nextest run --all-features --workspace --profile ci --cargo-profile ci
    depends_on: ["rust-clippy-all", "nickel-typecheck", "nushell-check"]
    environment:
      RUST_BACKTRACE: 1

  deny-subset:
    image: rust:latest
    commands:
      - cargo install cargo-deny --locked
      - cargo deny check licenses advisories

  docs-check:
    image: rust:latest
    commands:
      - RUSTDOCFLAGS="-D rustdoc::broken-intra-doc-links -D rustdoc::private-intra-doc-links" cargo doc --no-deps --workspace --profile ci -q
    depends_on: ["rust-clippy-all", "nickel-typecheck", "nushell-check"]

  build-release-native:
    image: rust:latest
    commands:
      - cargo build --release --workspace
    depends_on: ["rust-clippy-all", "nickel-typecheck", "nushell-check"]
