agecli-skill-protocol 0.2.1

Wire protocol contract for agecli skill ↔ host UDS communication (binary framing + payload types)
Documentation
stages:
  - check
  - publish

variables:
  CARGO_HOME: /usr/local/cargo

cache:
  key: ${CI_COMMIT_REF_SLUG}
  paths:
    - target/

check:
  stage: check
  image: rust:1.85
  tags: [docker]
  script:
    - rustup component add clippy rustfmt
    - cargo fmt --check
    - cargo clippy --all-targets -- -D warnings
    - cargo test --workspace
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    - if: $CI_COMMIT_BRANCH == "main"

publish:
  stage: publish
  image: rust:1.85
  tags: [docker]
  script:
    - cargo publish --token ${CRATES_IO_TOKEN}
  rules:
    - if: $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/
  when: manual