orchestra-toolkit 0.6.1

Client to interract with Orchestra system, uses HGTP protocol
Documentation
build_Rust:
  stage: build
  tags:
    - linux
    - ci
  timeout: 15 minutes
  script:
    - echo "Building Rust Binding"
    - cd ./Rust/
    - cargo build
  artifacts:
    paths:
      - target/release/
    expire_in: 1 hour
  rules:
    - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
      changes:
        - Rust/**/*

test_Rust:
  stage: package
  tags:
    - linux
    - ci
  dependencies: 
    - build_Rust
  needs:
    - build_Rust
  timeout: 15 minutes
  script:
    - echo "Testing Rust Binding"
    - cd ./Rust/
    - mv tests that_requires_an_avt_server_running/
    - cargo test --all-targets
    - cargo test --doc
  rules:
    - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
      changes:
        - Rust/**/*

release_Rust:
  stage: deploy
  tags:
    - linux
    - ci
  timeout: 15 minutes
  before_script:
    - cd ./Rust/
    - cargo install cargo-get
    - echo "Package name  - $(cargo get package.name)"
    - echo "Package version - $(cargo get --version)"
    - export CRATE_NAME=$(cargo get package.name) CRATE_VERSION=$(cargo get --version)
    - export CRATE_FILE=${CRATE_NAME}-${CRATE_VERSION}.crate
  script:
    - echo "Packaging"
    - cargo package
    - cargo metadata --format-version 1 > metadata.json
    - echo "$CARGO_REGISTRY_TOKEN" | cargo login
    - cargo publish --allow-dirty
  artifacts:
    name: avesterra_rust
    paths:
      - ./Rust/metadata.json
  rules:
    - if: $CI_COMMIT_BRANCH == "master"
      changes:
        - Rust/src/**/*
        - Rust/Cargo.toml
        - Rust/README.md