Skip to content

feat: fast_exp

feat: fast_exp #1026

Workflow file for this run

name: CI
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs:
build:
runs-on: ubuntu-latest
env:
CI_COMMIT_MESSAGE: CI Formatting Auto Commit
CI_COMMIT_AUTHOR: ${{ github.event.repository.name }} CI
steps:
- uses: actions/checkout@v3
# Python setup
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Load cached Poetry installation
id: cached-poetry
uses: actions/cache@v3
with:
path: ~/.local
key: poetry-${{ runner.os }}
- name: Install Poetry
if: steps.cached-poetry.outputs.cache-hit != 'true'
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- run: poetry config installer.modern-installation false
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v3
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: make setup
# Build artifacts
- name: Compile all the cairo files
run: make build
# Upload artifacts
- name: Uploads Kakarot build artifacts
uses: actions/upload-artifact@v3
with:
name: kakarot-build
path: ./build
tests:
runs-on: ubuntu-latest-16-cores
env:
STARKNET_NETWORK: katana
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Load cached Poetry installation
id: cached-poetry
uses: actions/cache@v3
with:
path: ~/.local
key: poetry-${{ runner.os }}
- name: Install Poetry
if: steps.cached-poetry.outputs.cache-hit != 'true'
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- run: poetry config installer.modern-installation false
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v3
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: make setup
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Setup Rust Toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
- name: Retrieve cached dependencies
uses: Swatinem/rust-cache@v2
- name: Install Katana
run: make install-katana
- name: Run tests
run: |
cp .env.example .env
make run-katana & make test-no-log
- name: Upload coverage report to codecov
uses: codecov/codecov-action@v3
with:
directory: ./coverage/
- name: Store performance artifacts
uses: actions/upload-artifact@v3
with:
path: ./coverage/
name: coverage
ef-tests:
runs-on: ubuntu-latest-32-cores
needs: build
steps:
- name: Checkout ef-tests
uses: actions/checkout@v3
with:
repository: kkrt-labs/ef-tests
- name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
- name: setup
run: make setup
- uses: taiki-e/install-action@nextest
- name: Download Kakarot build artifacts
uses: actions/download-artifact@v3
with:
name: kakarot-build
path: ./lib/kakarot/build
- name: run tests
run: make ef-test
resources:
runs-on: ubuntu-latest
needs: tests
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Load cached Poetry installation
id: cached-poetry
uses: actions/cache@v3
with:
path: ~/.local
key: poetry-${{ runner.os }}
- name: Install Poetry
if: steps.cached-poetry.outputs.cache-hit != 'true'
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- run: poetry config installer.modern-installation false
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v3
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: make setup
- name: Load performance artifacts
uses: actions/download-artifact@v3
with:
name: coverage
path: coverage
- name: Check resources evolution
run: GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} make check-resources