shipper-cli 0.4.0

CLI adapter for Shipper; install the user-facing `shipper` package unless embedding the adapter.
Documentation
---
source: crates/shipper-cli/tests/e2e_expanded.rs
expression: normalize_output(&stdout)
---
# Azure DevOps pipeline snippet for Shipper
# Add this to your azure-pipelines.yml

trigger:
  - main

pool:
  vmImage: 'ubuntu-latest'

variables:
  CARGO_HOME: $(Pipeline.Workspace)/.cargo

steps:
  - task: Cache@2
    displayName: 'Cache Cargo and Shipper State'
    inputs:
      key: 'shipper | "$(Agent.OS)" | "$(Build.SourceVersion)"'
      restoreKeys: |
        shipper | "$(Agent.OS)"
        shipper
      path: $(CARGO_HOME)
      cacheHitVar: CACHE_RESTORED

  - script: cargo install shipper --locked
    displayName: 'Install Shipper'

  - script: shipper publish --quiet
    displayName: 'Publish Crates'
    env:
      CARGO_REGISTRY_TOKEN: $(CARGO_REGISTRY_TOKEN)

  - publish: <STATE_DIR>
    displayName: 'Publish Shipper State Artifact'
    condition: succeededOrFailed()
    artifact: 'shipper-state'