Skip to content

solana: multi-tenant deployment #3653

solana: multi-tenant deployment

solana: multi-tenant deployment #3653

Workflow file for this run

name: EVM CI
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
tags:
- 'v*\+evm'
env:
FOUNDRY_PROFILE: ci
# Cancel in-progress runs on new commits to same PR/branch
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: {}
defaults:
run:
working-directory: ./evm
jobs:
# Ensure contract version constants stay in sync and are bumped after release
check-version:
name: Check version
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
persist-credentials: false
- run: |
if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
./scripts/check-version --tag "${GITHUB_REF_NAME}"
else
# If this exact commit is already tagged as an EVM release, verify the
# tag matches. Otherwise, require a version bump only when src/ changed.
head_evm_tag="$(git tag --points-at HEAD --list 'v*+evm' | head -n1)"
if [[ -n "${head_evm_tag}" ]]; then
./scripts/check-version --tag "${head_evm_tag}"
elif git diff --quiet "origin/${GITHUB_BASE_REF:-main}...HEAD" -- src/; then
echo "No EVM source changes; skipping version-bump requirement"
./scripts/check-version
else
./scripts/check-version --require-newer-than-latest-tag
fi
fi
# Fast lint check - no build needed, runs in parallel with other jobs
lint:
name: forge fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@c7450ba673e133f5ee30098b3b54f444d3a2ca2d # v1
with:
version: v1.5.0
- name: Run Forge fmt
run: make lint
working-directory: ./evm
# Build and test
test:
name: forge test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
persist-credentials: false
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@c7450ba673e133f5ee30098b3b54f444d3a2ca2d # v1
with:
version: v1.5.0
- name: Run Forge build
run: make push0-test
- name: Run Forge tests
run: make forge-test
- name: Run size test
run: make size-test
- name: Build with via-ir for cache
run: forge build --via-ir
- name: Save forge build cache
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: |
evm/out
evm/cache
key: forge-via-ir-${{ hashFiles('evm/src/**/*.sol', 'evm/script/**/*.sol', 'evm/foundry.toml') }}
echidna:
name: echidna
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
persist-credentials: false
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@c7450ba673e133f5ee30098b3b54f444d3a2ca2d # v1
with:
version: v1.5.0
- name: Run Forge build
run: make build
working-directory: evm
- name: Run Echidna
uses: crytic/echidna-action@f7e374e42bf7131f7307a92f5549ed6b2fd17c9d # v2
with:
files: ./evm/echidna
config: evm/echidna.yaml
echidna-version: v2.3.0