diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 1df8f6a62..000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,265 +0,0 @@ -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@v4 - 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 - installer-parallel: true - - run: poetry config installer.modern-installation false - - 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 - - # 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@v4 - 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 - installer-parallel: true - - run: poetry config installer.modern-installation false - - 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 - run: make test-unit - - name: Upload coverage report to codecov - uses: codecov/codecov-action@v3 - with: - 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@v4 - 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 - installer-parallel: true - - run: poetry config installer.modern-installation false - - 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: Install Scarb - uses: software-mansion/setup-scarb@v1 - with: - tool-versions: ./cairo1_contracts/mock_pragma/.tool-versions #TODO: support multiple tool-versions files - - 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: | - make fetch-ssj-artifacts - cp .env.example .env - make run-katana & 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 - ref: v0.2.2 - - 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/fixtures/ERC20.json build/common - - name: Set up Python - uses: actions/setup-python@v4 - 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@v4 - 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 - installer-parallel: true - - run: poetry config installer.modern-installation false - - 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" diff --git a/.github/workflows/update-rpc.yml b/.github/workflows/update-rpc.yml index 0ef733d37..134aa4dd4 100644 --- a/.github/workflows/update-rpc.yml +++ b/.github/workflows/update-rpc.yml @@ -4,16 +4,17 @@ name: Update Submodule # release: # types: [published] -on: [pull_request] +on: + push: + branches: + - cw/release-to-rpc -permissions: - contents: read - pull-requests: write +permissions: read-all jobs: update-submodule: runs-on: ubuntu-latest - + permissions: write-all steps: - name: Checkout Kakarot-RPC Repository uses: actions/checkout@v4 @@ -23,17 +24,24 @@ jobs: path: kakarot-rpc - name: Update Submodule + env: + # GH_TOKEN is a secret defined in the github repository settings and not the default GITHUB_TOKEN + GH_TOKEN: ${{ secrets.GH_TOKEN }} run: | + cd kakarot-rpc git config --global user.email "actions@github.com" git config --global user.name "GitHub Actions" - cd kakarot-rpc/lib/kakarot - echo "Current directory: $(pwd)" + git submodule update --recursive --init + cd lib/kakarot git fetch --tags export release_tag=$(git tag --sort=-creatordate | head -n 1) git checkout $release_tag cd ../.. git checkout -b kakarot-$release_tag git add lib/kakarot + git status git commit -m "Update kakarot to $release_tag" - gh pr create -B main -H kakarot-$release_tag --title 'Update Kakarot to $release_tag' - cd - + git push --set-upstream origin kakarot-$release_tag + git diff origin/main + git log --oneline -n 5 + gh pr create --title 'Update Kakarot to $release_tag' --body 'Update Kakarot to $release_tag'