You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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 generation by `cargo doc`
    • Docker build (debug + release)
  • Full check for "master" (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 artifacts for "master"
    • Code coverage (tarpauline or grcow)
    • 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 artifacts
    • 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 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.

Proposal

GitLab CI notation description of the Pipeline:


Graphical representation:


  • No labels