name: Extensive tests
on:
push:
branches:
- main
- dev
tags:
- '**'
pull_request:
branches:
- '**'
jobs:
extensive_tests:
name: Extensive tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up rust tools
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
- name: Set up rust (stable)
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
- uses: actions/setup-python@v6
name: Install Python 3.11
with:
python-version: 3.11
- uses: chia-network/actions/create-venv@main
id: create-venv
- uses: chia-network/actions/activate-venv@main
with:
directories: ${{ steps.create-venv.outputs.activate-venv-directories }}
- name: Update pip and dependencies
run: |
python -m pip install --upgrade pip maturin==1.10.2
- name: Set up rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Build Linux in manylinux_2_28 with maturin on Python ${{ matrix.python }}
run: |
docker run --rm -v $(pwd):/io ghcr.io/pyo3/maturin:v1.10.2 build --release --strip --manylinux 2_28
# Refresh in case any ownerships changed.
mv target target.docker && cp -r target.docker target
# Ensure an empty .cargo-lock file exists.
touch target/release/.cargo-lock
- name: Install chialisp wheel
if: ${{ !startsWith(matrix.os, 'windows') }}
run: |
ls target/wheels/
# this mess puts the name of the `.whl` file into `$WHEEL_PATH`
# remove the dot, use the `glob` lib to grab the file from the directory
export WHEEL_PATH=$(echo "3.10" | python -c 'DOTLESS=input().replace(".", ""); import glob; print(" ".join(filter(lambda x: "musl" not in x, glob.glob("target/wheels/chialisp-*-cp*-*.whl"))))' )
echo ${WHEEL_PATH}
pip install ${WHEEL_PATH}
- name: Install other wheels
run: |
python -m pip install pytest
python -m pip install blspy
- name: install clvm & clvm_tools
run: |
git clone https://github.com/Chia-Network/clvm.git --branch=main --single-branch
python -m pip install ./clvm
echo "installing clvm_rs via pip"
pip install clvm_rs
echo "installing clvm_tools for clvm tests"
# clvm tools is required to run the tests is clvm
python -m pip install clvm_tools
# Install chialisp pkg as "clvm_tools_rs" for older test framework
pip install -e ./tmp
- name: Run game referee test
run: |
cp support/test-game-referee.sh .
sh test-game-referee.sh resources/tests/game-referee-in-cl23
sh test-game-referee.sh resources/tests/game-referee-in-cl21
sh test-game-referee.sh resources/tests/game-referee-after-cl21