Bump poseidon-py to 0.2.0
#6715
Workflow file for this run
This file contains hidden or 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: Checks | |
| env: | |
| CAIRO_LANG_VERSION: "0.13.1" | |
| # TODO(#1611) | |
| DEVNET_SHA: b761edef5b89a4faa7a972d7172a324cd646d612 # v0.7.0 | |
| LEDGER_APP_SHA: 768a7b47b0da681b28112342edd76e2c9b292c4e # v2.3.1 | |
| LEDGER_APP_DEV_TOOLS_SHA: a845b2ab0b5dd824133f73858f6f373edea85ec1bd828245bf50ce9700f33bcb # v4.5.0 | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - development | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| # ---------------------------------------------------------- # | |
| # ...................LINT-FORMAT-TYPECHECK.................. # | |
| # ---------------------------------------------------------- # | |
| lint-format-typecheck: | |
| name: Lint - Format - Typecheck | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install poetry | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install poetry | |
| - name: Set up Python 3.14 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| cache: 'poetry' | |
| - name: Install dependencies needed for HIDAPI and Pillow | |
| run: | | |
| sudo apt-get update | |
| sudo apt install python3-dev libusb-1.0-0-dev libudev-dev libjpeg-dev | |
| - name: Install dependencies | |
| run: | | |
| poetry install -E ledger | |
| - name: Check poetry.lock | |
| run: | | |
| poetry check --lock | |
| - name: Lint | |
| run: | | |
| poetry run poe lint | |
| - name: Format | |
| run: | | |
| poetry run poe format_check | |
| - name: Typecheck | |
| run: | | |
| poetry run poe typecheck | |
| # ---------------------------------------------------------- # | |
| # .......................SETUP-TESTS........................ # | |
| # ---------------------------------------------------------- # | |
| setup-tests: | |
| name: Setup Tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: [ "3.14" ] | |
| steps: | |
| # ====================== SETUP ====================== # | |
| - uses: actions/checkout@v4 | |
| - uses: asdf-vm/actions/setup@v3 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| cache: 'pip' | |
| - name: Install poetry | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install poetry | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'poetry' | |
| - name: Install dependencies | |
| run: | | |
| poetry install | |
| - name: Compile contracts v2 | |
| uses: ./.github/actions/compile-contracts | |
| with: | |
| package: contracts_v2 | |
| - name: Compile contracts v1 | |
| uses: ./.github/actions/compile-contracts | |
| with: | |
| package: contracts_v1 | |
| - name: Upload contracts artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: contract-artifacts | |
| path: starknet_py/tests/e2e/mock/ | |
| # ---------------------------------------------------------- # | |
| # ........................RUN-TESTS......................... # | |
| # ---------------------------------------------------------- # | |
| run-tests: | |
| name: Tests | |
| needs: setup-tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [ "3.10", "3.14" ] | |
| env: | |
| SEPOLIA_RPC_URL: ${{ secrets.SEPOLIA_RPC_URL }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download contracts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: contract-artifacts | |
| path: starknet_py/tests/e2e/mock/ | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| cache: 'pip' | |
| # ====================== SETUP PYTHON ====================== # | |
| - name: Install poetry | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install poetry | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'poetry' | |
| - name: Install dependencies | |
| run: | | |
| poetry install | |
| # ====================== SETUP DEVNET ====================== # | |
| - name: Install devnet | |
| run: ./starknet_py/tests/install_devnet.sh | |
| # ====================== RUN TESTS ====================== # | |
| - name: Check circular imports | |
| run: | | |
| poetry run poe circular_imports_check | |
| - uses: asdf-vm/actions/setup@v3 | |
| - name: Run tests | |
| run: | | |
| poetry run poe test_ci_v2 | |
| poetry run poe test_ci_v1 | |
| - name: Generate coverage in XML | |
| run: | | |
| poetry run coverage xml | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| # ---------------------------------------------------------- # | |
| # .....................RUN-LEDGER-TESTS..................... # | |
| # ---------------------------------------------------------- # | |
| run-ledger-tests: | |
| name: Ledger Tests | |
| needs: setup-tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [ "3.10", "3.14" ] | |
| env: | |
| LEDGER_PROXY_ADDRESS: 127.0.0.1 | |
| LEDGER_PROXY_PORT: 9999 | |
| SEPOLIA_RPC_URL: ${{ secrets.SEPOLIA_RPC_URL }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download contracts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: contract-artifacts | |
| path: starknet_py/tests/e2e/mock/ | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| cache: 'pip' | |
| # ====================== SETUP PYTHON ====================== # | |
| - name: Install poetry | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install poetry | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'poetry' | |
| - name: Install dependencies needed for HIDAPI and Pillow | |
| run: | | |
| sudo apt-get update | |
| sudo apt install python3-dev libusb-1.0-0-dev libudev-dev libjpeg-dev | |
| - name: Install dependencies | |
| run: | | |
| poetry install -E ledger | |
| # ====================== SETUP DEVNET ====================== # | |
| - name: Install devnet | |
| run: ./starknet_py/tests/install_devnet.sh | |
| # ====================== SETUP LEDGER SPECULOS ====================== # | |
| - name: Pull speculos image | |
| run: docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools@sha256:${{ env.LEDGER_APP_DEV_TOOLS_SHA }} | |
| - name: Clone LedgerHQ Starknet app repository | |
| run: git clone https://github.com/LedgerHQ/app-starknet.git | |
| - name: Build the app inside Docker container | |
| uses: addnab/docker-run-action@v3 | |
| with: | |
| image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools@sha256:${{ env.LEDGER_APP_DEV_TOOLS_SHA }} | |
| options: --rm -v ${{ github.workspace }}:/apps | |
| run: | | |
| cd /apps/app-starknet | |
| git checkout ${{ env.LEDGER_APP_SHA }} | |
| cd starknet | |
| cargo clean | |
| cargo ledger build nanox | |
| - name: Start Speculos emulator container | |
| uses: addnab/docker-run-action@v3 | |
| with: | |
| image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools@sha256:${{ env.LEDGER_APP_DEV_TOOLS_SHA }} | |
| options: --rm -d --name speculos-emulator -v ${{ github.workspace }}:/apps --publish 5000:5000 --publish 9999:9999 | |
| run: | | |
| speculos \ | |
| -m nanox \ | |
| --apdu-port 9999 \ | |
| --api-port 5000 \ | |
| --display headless \ | |
| /apps/app-starknet/target/nanox/release/starknet | |
| - name: Wait for Speculos to start | |
| run: sleep 5 | |
| - name: Allow blind signing | |
| run: ./starknet_py/tests/unit/signer/allow_ledger_blind_signing.sh | |
| - name: Update automation rules | |
| working-directory: starknet_py/tests/unit/signer | |
| run: | | |
| curl -X POST http://127.0.0.1:5000/automation \ | |
| -H "Content-Type: application/json" \ | |
| -d @speculos_automation.json | |
| # ====================== RUN TESTS ====================== # | |
| - name: Run tests | |
| run: | | |
| poetry run poe test_ci_ledger | |
| - name: Generate coverage in XML | |
| run: | | |
| poetry run coverage xml | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| # ---------------------------------------------------------- # | |
| # ..................RUN-TESTS-ON-NETWORKS................... # | |
| # ---------------------------------------------------------- # | |
| run-tests-on-networks: | |
| name: Tests on networks (testnet) | |
| needs: setup-tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| env: | |
| SEPOLIA_RPC_URL: ${{ secrets.SEPOLIA_RPC_URL }} | |
| SEPOLIA_ACCOUNT_ADDRESS: ${{ secrets.SEPOLIA_ACCOUNT_ADDRESS }} | |
| SEPOLIA_ACCOUNT_PRIVATE_KEY: ${{ secrets.SEPOLIA_ACCOUNT_PRIVATE_KEY }} | |
| # TODO(#1582): Remove braavos envs once integration is restored | |
| SEPOLIA_BRAAVOS_ACCOUNT_ADDRESS: ${{ secrets.SEPOLIA_BRAAVOS_ACCOUNT_ADDRESS }} | |
| SEPOLIA_BRAAVOS_ACCOUNT_PRIVATE_KEY: ${{ secrets.SEPOLIA_BRAAVOS_ACCOUNT_PRIVATE_KEY }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download contracts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: contract-artifacts | |
| path: starknet_py/tests/e2e/mock/ | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| cache: 'pip' | |
| # ====================== SETUP PYTHON ====================== # | |
| - name: Install poetry | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install poetry | |
| - name: Set up Python 3.14 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| cache: 'poetry' | |
| # ====================== SETUP DEVNET ====================== # | |
| - name: Install devnet | |
| run: ./starknet_py/tests/install_devnet.sh | |
| # ====================== RUN TESTS ====================== # | |
| - name: Check circular imports | |
| run: | | |
| poetry run poe circular_imports_check | |
| - uses: asdf-vm/actions/setup@v3 | |
| - name: Run tests | |
| run: | | |
| if [[ "${{ github.event_name }}" != "pull_request" ]]; then | |
| poetry run poe test_ci_on_networks_extended | |
| else | |
| poetry run poe test_ci_on_networks | |
| fi | |
| - name: Generate coverage in XML | |
| run: | | |
| poetry run coverage xml | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| # ---------------------------------------------------------- # | |
| # ....................RUN-TESTS-WINDOWS..................... # | |
| # ---------------------------------------------------------- # | |
| run-tests-windows: | |
| if: ${{ github.event_name != 'pull_request' }} | |
| name: Tests Windows | |
| needs: setup-tests | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [ "3.10", "3.14" ] | |
| env: | |
| SEPOLIA_RPC_URL: ${{ secrets.SEPOLIA_RPC_URL }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@dc6353516c68da0f06325f42ad880f76a5e77ec9 | |
| with: | |
| toolchain: 1.83.0 | |
| - name: Download contracts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: contract-artifacts | |
| path: starknet_py/tests/e2e/mock/ | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| cache: 'pip' | |
| # ====================== SETUP DEVNET ====================== # | |
| - name: Cache devnet build | |
| id: windows-devnet-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ github.workspace }}\starknet_py\tests\e2e\devnet\bin | |
| key: ${{ runner.os }}-devnet-${{ env.DEVNET_SHA }} | |
| - name: Install devnet | |
| if: steps.windows-devnet-cache.outputs.cache-hit != 'true' | |
| run: | | |
| $DEVNET_INSTALL_DIR = "${{ github.workspace }}\starknet_py\tests\e2e\devnet" | |
| cargo install --git https://github.com/0xSpaceShard/starknet-devnet-rs.git --locked --rev ${{ env.DEVNET_SHA }} --root $DEVNET_INSTALL_DIR | |
| shell: pwsh | |
| # ====================== SETUP PYTHON ====================== # | |
| - name: Install poetry | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install poetry | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'poetry' | |
| - name: Install dependencies | |
| run: | | |
| poetry install | |
| # ====================== RUN TESTS ====================== # | |
| - name: Check circular imports | |
| run: | | |
| poetry run poe circular_imports_check | |
| - name: Run tests | |
| run: | | |
| poetry run poe test_ci_v2 | |
| poetry run poe test_ci_v1 | |
| - name: Generate coverage in XML | |
| run: | | |
| poetry run coverage xml | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| # ---------------------------------------------------------- # | |
| # .....................RUN-DOCS-TESTS....................... # | |
| # ---------------------------------------------------------- # | |
| run-docs-tests: | |
| name: Docs Tests | |
| needs: setup-tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [ "3.10", "3.14" ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download contracts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: contract-artifacts | |
| path: starknet_py/tests/e2e/mock/ | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| cache: 'pip' | |
| # ====================== SETUP PYTHON ====================== # | |
| - name: Install poetry | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install poetry | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'poetry' | |
| - name: Install dependencies | |
| run: | | |
| poetry install | |
| # ====================== SETUP DEVNET ====================== # | |
| - name: Install devnet | |
| run: ./starknet_py/tests/install_devnet.sh | |
| # ====================== RUN TESTS ====================== # | |
| - uses: asdf-vm/actions/setup@v3 | |
| - name: Run tests | |
| run: | | |
| poetry run poe test_ci_docs_v2 | |
| poetry run poe test_ci_docs_v1 | |
| - name: Generate coverage in XML | |
| run: | | |
| poetry run coverage xml | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| # ---------------------------------------------------------- # | |
| # .................RUN-DOCS-TESTS-WINDOWS................... # | |
| # ---------------------------------------------------------- # | |
| run-docs-tests-windows: | |
| if: ${{ github.event_name != 'pull_request' }} | |
| name: Docs Tests Windows | |
| needs: setup-tests | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [ "3.10", "3.14" ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@dc6353516c68da0f06325f42ad880f76a5e77ec9 | |
| with: | |
| toolchain: 1.83.0 | |
| - name: Download contracts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: contract-artifacts | |
| path: starknet_py/tests/e2e/mock/ | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| cache: 'pip' | |
| # ====================== SETUP PYTHON ====================== # | |
| - name: Install poetry | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install poetry | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'poetry' | |
| - name: Install dependencies | |
| run: | | |
| poetry install | |
| # ====================== SETUP DEVNET ====================== # | |
| - name: Cache devnet build | |
| id: windows-devnet-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ github.workspace }}\starknet_py\tests\e2e\devnet\bin | |
| key: ${{ runner.os }}-devnet-${{ env.DEVNET_SHA }} | |
| - name: Install devnet | |
| if: steps.windows-devnet-cache.outputs.cache-hit != 'true' | |
| run: | | |
| $DEVNET_INSTALL_DIR = "${{ github.workspace }}\starknet_py\tests\e2e\devnet" | |
| cargo install --git https://github.com/0xSpaceShard/starknet-devnet-rs.git --locked --rev ${{ env.DEVNET_SHA }} --root $DEVNET_INSTALL_DIR | |
| shell: pwsh | |
| # ====================== RUN TESTS ====================== # | |
| - name: Run tests | |
| run: | | |
| poetry run poe test_ci_docs_v2 | |
| poetry run poe test_ci_docs_v1 | |
| - name: Generate coverage in XML | |
| run: | | |
| poetry run coverage xml | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 |