chia 0.1.15

Utility functions and types used by the Chia blockchain full node
Documentation

name: Tests

on:
  push:
    branches:
      - main
    tags:
        - '**'
  pull_request:
    branches:
      - '**'

jobs:
  tests:
    name: Unit Tests
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [macos-latest, ubuntu-latest, windows-latest]
        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']

    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 1

    - uses: chia-network/actions/setup-python@main
      name: Install Python ${{ matrix.python-version }}
      with:
        python-version: ${{ matrix.python-version }}

    - name: Update pip
      run: |
          python -m pip install --upgrade pip

    - name: Set up rust
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable

    - name: setup venv
      run: |
        python -m venv venv

    - uses: chia-network/actions/activate-venv@main

    - name: Install dependencies
      run: |
        python -m pip install maturin
        rustup target add x86_64-unknown-linux-musl
        python -m pip install pytest
        python -m pip install mypy

    - name: Build
      env:
        CC: gcc
      run: |
        git clone https://github.com/Chia-Network/clvm_tools.git --branch=main --single-branch
        python -m pip install ./clvm_tools
        python -m pip install colorama
        maturin develop --release -m wheel/Cargo.toml

    - name: python mypy
      run: |
        mypy tests

    - name: python tests
      run: |
        pytest tests

  generator-benchmarks:
    name: Generator performance
    runs-on: benchmark
    strategy:
      fail-fast: false
      matrix:
        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']

    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 1

    - uses: chia-network/actions/setup-python@main
      name: Install Python ${{ matrix.python-version }}
      with:
        python-version: ${{ matrix.python-version }}

    - name: Set up rust
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable

    - name: setup venv
      run: |
        python -m venv venv

    - uses: chia-network/actions/activate-venv@main

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install maturin colorama clvm_tools
        rustup target add x86_64-unknown-linux-musl

    - name: Build
      env:
        CC: gcc
      run: |
        maturin develop --release -m wheel/Cargo.toml

    - name: test generators
      run: |
        cd tests
        ./test-generators.py

    - name: Run cost checks
      run: |
        cd tests
        ./generate-programs.py
        ./run-programs.py

  benchmarks:
    name: rust benchmarks
    runs-on: benchmark
    strategy:
      fail-fast: false

    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 1

    - name: Set up rust
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable

    - name: cargo bench
      run: |
        cargo bench --all