feat: fast_exp #1026
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |