feat: dualVMToken starknet functions #3051
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: | |
branches: | |
- main | |
pull_request: {} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
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@v4 | |
# Python setup | |
- name: Set up Python 3.10.14 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.10.14 | |
- name: Load cached Poetry installation | |
id: cached-poetry | |
uses: actions/cache@v4 | |
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 | |
virtualenvs-path: .venv | |
installer-parallel: true | |
- name: Enforce poetry config | |
run: | | |
poetry config virtualenvs.in-project true | |
poetry config virtualenvs.create true | |
poetry config virtualenvs.path .venv | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
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 | |
- uses: asdf-vm/actions/install@v3 | |
- run: asdf install | |
# 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-unit: | |
runs-on: ubuntu-latest-16-cores | |
env: | |
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION: python | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.10.14 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.10.14 | |
- name: Load cached Poetry installation | |
id: cached-poetry | |
uses: actions/cache@v4 | |
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 | |
virtualenvs-path: .venv | |
installer-parallel: true | |
- name: Enforce poetry config | |
run: | | |
poetry config virtualenvs.in-project true | |
poetry config virtualenvs.create true | |
poetry config virtualenvs.path .venv | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
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: Run tests | |
env: | |
HYPOTHESIS_PROFILE: ci | |
run: make test-unit | |
- name: Upload coverage report to codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
directory: ./coverage/ | |
tests-end-to-end: | |
runs-on: ubuntu-latest | |
env: | |
STARKNET_NETWORK: katana | |
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION: python | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Extract Katana Version | |
id: extract_katana_version | |
run: | | |
KATANA_VERSION=$(grep -oP '^KATANA_VERSION = \K.*' Makefile) | |
echo "katana_version=$KATANA_VERSION" >> "$GITHUB_OUTPUT" | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.10.14 | |
- name: Load cached Poetry installation | |
id: cached-poetry | |
uses: actions/cache@v4 | |
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 | |
virtualenvs-path: .venv | |
installer-parallel: true | |
- name: Enforce poetry config | |
run: | | |
poetry config virtualenvs.in-project true | |
poetry config virtualenvs.create true | |
poetry config virtualenvs.path .venv | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
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 | |
- uses: asdf-vm/actions/install@v3 | |
- name: Load cached katana | |
id: cached-katana | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cargo/bin | |
key: katana-${{ steps.extract_katana_version.outputs.katana_version }} | |
- name: Install Katana | |
if: steps.cached-katana.outputs.cache-hit != 'true' | |
run: make install-katana | |
- name: Run tests | |
run: | | |
cp .env.example .env | |
make run-nodes & make test-end-to-end | |
ef-tests: | |
runs-on: ubuntu-latest-32-cores | |
needs: build | |
steps: | |
- name: Checkout ef-tests | |
uses: actions/checkout@v4 | |
with: | |
repository: kkrt-labs/ef-tests | |
- name: Checkout local skip file | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: | | |
blockchain-tests-skip.yml | |
sparse-checkout-cone-mode: false | |
path: skip-file | |
- name: Replace the skip files | |
run: | | |
mv skip-file/blockchain-tests-skip.yml blockchain-tests-skip.yml | |
- name: Rust cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
cache-on-failure: "true" | |
- name: setup | |
run: mkdir -p build/common && make setup setup-kakarot-v1 | |
- uses: taiki-e/install-action@nextest | |
- name: Download Kakarot build artifacts in v0 | |
uses: actions/download-artifact@v3 | |
with: | |
name: kakarot-build | |
path: ./build/v0 | |
- name: Move ERC20 | |
run: mv build/v0/ERC20.json build/common | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.10.14 | |
- name: run tests | |
run: | | |
set -o pipefail | |
make ef-test-v0 | tee test_v0.out | |
set +o pipefail | |
- name: Retrieve ef-tests execution resources | |
run: python scripts/compute_resources.py | |
env: | |
KAKAROT_VERSION: v0 | |
- name: upload resources | |
uses: actions/upload-artifact@v3 | |
with: | |
path: resources | |
name: resources | |
resources: | |
runs-on: ubuntu-latest | |
needs: ef-tests | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.10.14 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.10.14 | |
- name: Load cached Poetry installation | |
id: cached-poetry | |
uses: actions/cache@v4 | |
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 | |
virtualenvs-path: .venv | |
installer-parallel: true | |
- name: Enforce poetry config | |
run: | | |
poetry config virtualenvs.in-project true | |
poetry config virtualenvs.create true | |
poetry config virtualenvs.path .venv | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
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: | |
path: resources | |
name: resources | |
- name: Check resources evolution | |
run: | | |
result=$(GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} make check-resources 2>&1) | |
echo "$result" >> "$GITHUB_STEP_SUMMARY" |