Requirements

Functional

  • Full check of Pull Requests
    • Static analysis via `cargo check` and `cargo clippy`
    • Builds via `cargo build` and `cargo build --release`
    • Tests via `cargo test` and `cargo bench`
    • Documentation spell-check by `cargo spell-check`
    • Documentation generation by `cargo doc`
    • Docker debug build (Dockerfile.debug)
    • Docker release build (Dockerfile)
  • Full check for the main branch (it is iroha2-dev for now)
    • Static analysis via `cargo check` and `cargo clippy`
    • Builds via `cargo build` and `cargo build --release`
    • Tests via `cargo test` and `cargo bench`
    • Regression comparison of `cargo bench` results via `criterion` and automatic issues creation if found (without pipeline failure)
    • Documentation generation by `cargo doc`
    • Docker build (debug + release)
  • Publishing of artefacts for "tags"
    • Code coverage (tarpauline)
    • Benchmarks results as HTML (better to be also deployed as a static page) via criterion https://bheisler.github.io/criterion.rs/book/user_guide/html_report.html
    • Builds via `cargo build --release` as GitHub artefacts
    • Builds via `cargo publish` as Crates.io crate
    • Documentation publishing on docs.rs (better to be also deployed as a static page) via `cargo publish`
    • Docker image publish to hub.docker.com (with the latest tag)
  • Additional testing for "master"
    • Deployment on K8S cluster via https://kompose.io/
    • Run of integration tests (TBD by Iroha team)
    • Automatic issue creation on fails

Non-Functional

  • Keep build time for Pull Requests less than 10 minutes
  • Keep independent jobs parallel (builds for different profiles and platforms, tests and documentation, etc.)

Environments

Staging

On-demand self-deploy public environment with static address for demo purposes. 

Testing

CI deployed private environment without static address for automatic tests and benchmarks.



  • No labels

3 Comments

  1. Who can add secrets to GitHub repository?

    • hub.docker.com (hyperledger (releases) + soramitsu (latest))
    • crates.io

    Who can add settings for GitHub pages?


    How we can set up distributed test/bench environment? (Parallel GitHub runners with different machines/configs).


    Longevity stand:

    • CPU/RAM/Storage
    • SLA
    1. I can for the hyperledger accounts on crates and dockerhub


      also, join us here? https://chat.hyperledger.org/channel/cicd

      1. Hello Ry! 

        Can you please add those secrets then? We would really appreciate help with it.