Skip to content

[fix] #4082: Remove cloning for ISI and query execution in wasm #8821

[fix] #4082: Remove cloning for ISI and query execution in wasm

[fix] #4082: Remove cloning for ISI and query execution in wasm #8821

Workflow file for this run

name: I2::Dev::Tests
on:
pull_request:
branches: [iroha2-dev]
paths:
- '**.rs'
- '**.json'
- '**.toml'
- '.github/workflows/**.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
CLIENT_CLI_DIR: "/__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}/test"
jobs:
consistency:
runs-on: [self-hosted, Linux, iroha2ci]
container:
image: hyperledger/iroha2-ci:nightly-2024-01-12
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Check genesis.json
if: always()
run: ./scripts/tests/consistency.sh genesis
- name: Check schema.json
if: always()
run: ./scripts/tests/consistency.sh schema
- name: Check Docker Compose configurations
if: always()
run: ./scripts/tests/consistency.sh docker-compose
with_coverage:
runs-on: [self-hosted, Linux, iroha2ci]
container:
image: hyperledger/iroha2-ci:nightly-2024-01-12
steps:
- uses: actions/checkout@v3
# TODO Remove this step #2165
# - name: Adjust toolchain
# run: |
# rustup component add llvm-tools-preview
- uses: Swatinem/rust-cache@v2
- name: Run tests, with coverage
run: |
mold --run cargo llvm-cov clean --workspace
mold --run cargo llvm-cov --doc --no-report --all-features --workspace --no-fail-fast
mold --run cargo llvm-cov --no-report --ignore-filename-regex main.rs --all-features --workspace --no-fail-fast
- name: Generate lcov report
run: |
# generate report without tests
# https://github.com/taiki-e/cargo-llvm-cov#merge-coverages-generated-under-different-test-conditions
mold --run cargo llvm-cov --doctests --no-run --all-features --workspace --lcov --output-path lcov.info
- name: Upload coverage to coveralls.io
uses: coverallsapp/github-action@v2
with:
file: lcov.info
compare-ref: ${{ github.base_ref }}
compare-sha: ${{ github.event.pull_request.base.sha}}
github-token: ${{ secrets.GITHUB_TOKEN }}
# (Temporally) Add the parallel coverage upload to Codecov to compare the results with Coveralls
# - name: Upload coverage to codecov.io
# uses: codecov/codecov-action@v3.1.4
# with:
# files: lcov.info
# commit_parent: ${{ github.event.pull_request.base.sha }}
# fail_ci_if_error: false
integration:
runs-on: [self-hosted, Linux, iroha2ci]
container:
image: hyperledger/iroha2-ci:nightly-2024-01-12
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run tests, with no-default-features
run: |
mold --run cargo test --test mod --no-default-features -- \
integration:: --skip unstable_network
unstable:
runs-on: [self-hosted, Linux, iroha2ci]
container:
image: hyperledger/iroha2-ci:nightly-2024-01-12
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Run tests
run: mold --run cargo test -p iroha_client --tests --no-default-features unstable_network --quiet
# Run the job to check that the docker containers are properly buildable
pr-generator-build:
# Job will only execute if the head of the pull request is a branch for PR-generator case
if: startsWith(github.head_ref, 'iroha2-pr-deploy/')
runs-on: [self-hosted, Linux, iroha2-dev-push]
container:
image: hyperledger/iroha2-ci:nightly-2024-01-12
steps:
- uses: actions/checkout@v4
- name: Login to Soramitsu Harbor
uses: docker/login-action@v3
with:
registry: docker.soramitsu.co.jp
username: ${{ secrets.HARBOR_USERNAME }}
password: ${{ secrets.HARBOR_TOKEN }}
- name: Set up Docker Buildx
id: buildx
if: always()
uses: docker/setup-buildx-action@v2
with:
install: true
- name: Build and push iroha2:dev image
uses: docker/build-push-action@v4
if: always()
with:
push: true
tags: docker.soramitsu.co.jp/iroha2/iroha2:dev-${{ github.event.pull_request.head.sha }}
labels: commit=${{ github.sha }}
build-args: TAG=dev
file: Dockerfile
# This context specification is required
context: .
client-cli-tests:
runs-on: [self-hosted, Linux, iroha2ci]
container:
image: hyperledger/iroha2-ci:nightly-2024-01-12
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Build binaries
run: |
cargo build -p iroha_client_cli -p kagami -p iroha
- name: Setup test Iroha 2 environment on the bare metal
run: |
pip3 install -r scripts/requirements.txt --no-input --break-system-packages
./scripts/test_env.py setup
- name: Mark binaries as executable
run: |
chmod +x ${{ env.CLIENT_CLI_DIR }}
- name: Install dependencies using Poetry
working-directory: client_cli/pytests
run: |
poetry install
- name: Run client cli tests
working-directory: client_cli/pytests
env:
# prepared by `test_env.py`
CLIENT_CLI_BINARY: ../../test/iroha_client_cli
CLIENT_CLI_CONFIG: ../../test/client.toml
run: |
poetry run pytest
- name: Cleanup test environment
run: |
./scripts/test_env.py cleanup