---
kind: pipeline
type: docker
name: default

steps:
  - name: fetch_dependencies
    image: rust
    volumes:
      - name: rust_registry
        path: /usr/local/cargo/registry
    commands:
      - cargo fetch

  - name: code_quality
    image: rust
    volumes:
      - name: rust_registry
        path: /usr/local/cargo/registry
    depends_on:
      - fetch_dependencies
    commands:
      - rustup component add clippy
      - cargo clippy -- -D warnings

  - name: test
    image: rust
    volumes:
      - name: rust_registry
        path: /usr/local/cargo/registry
    depends_on:
      - code_quality
    commands:
      - cargo test

volumes:
  - name: rust_registry
    temp: {}