feat: EIP-7708 — synthetic ETH transfer/burn logs (Amsterdam) #30
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: CI | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main, develop ] | |
| jobs: | |
| build-and-test: | |
| name: Build and Test | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| zig-version: ['0.15.1'] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Zig | |
| uses: goto-bus-stop/setup-zig@v2 | |
| with: | |
| version: ${{ matrix.zig-version }} | |
| - name: Verify Zig installation | |
| run: zig version | |
| - name: Check formatting | |
| run: zig fmt --check src/ | |
| - name: Install dependencies | |
| run: make install-deps | |
| - name: Verify blst headers (macOS) | |
| if: runner.os == 'macOS' | |
| run: | | |
| if [ -f /tmp/blst/bindings/blst.h ]; then | |
| echo "✓ blst.h found at /tmp/blst/bindings/blst.h" | |
| ls -la /tmp/blst/bindings/blst.h | |
| elif [ -f /opt/homebrew/include/blst/blst.h ]; then | |
| echo "✓ blst.h found at /opt/homebrew/include/blst/blst.h" | |
| elif [ -f /usr/local/include/blst/blst.h ]; then | |
| echo "✓ blst.h found at /usr/local/include/blst/blst.h" | |
| else | |
| echo "✗ blst.h not found in expected locations" | |
| find /tmp/blst -name "blst.h" 2>/dev/null || echo "No blst.h in /tmp/blst" | |
| exit 1 | |
| fi | |
| - name: Build project | |
| run: make build | |
| - name: Run tests | |
| env: | |
| DYLD_LIBRARY_PATH: /opt/homebrew/lib:/usr/local/lib | |
| run: make test | |
| - name: Run examples | |
| run: | | |
| ./zig-out/bin/simple_contract | |
| ./zig-out/bin/gas_inspector_example | |
| ./zig-out/bin/precompile_example | |
| ./zig-out/bin/contract_deployment | |
| ./zig-out/bin/uniswap_reserves | |
| ./zig-out/bin/custom_opcodes | |
| ./zig-out/bin/database_components | |
| ./zig-out/bin/cheatcode_inspector | |
| - name: Run benchmarks | |
| run: ./zig-out/bin/zevm-bench | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Zig | |
| uses: goto-bus-stop/setup-zig@v2 | |
| with: | |
| version: '0.15.1' | |
| - name: Format check | |
| run: zig fmt --check src/ | |
| security: | |
| name: Security Scan | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Zig | |
| uses: goto-bus-stop/setup-zig@v2 | |
| with: | |
| version: '0.15.1' | |
| - name: Install dependencies | |
| run: make install-deps | |
| - name: Build with security checks | |
| run: | | |
| make build | |
| zig build -Doptimize=ReleaseSafe | |
| zig build -Doptimize=ReleaseFast | |
| benchmark: | |
| name: Performance Benchmark | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Zig | |
| uses: goto-bus-stop/setup-zig@v2 | |
| with: | |
| version: '0.15.1' | |
| - name: Install dependencies | |
| run: make install-deps | |
| - name: Build optimized version | |
| run: | | |
| make build | |
| zig build -Doptimize=ReleaseFast | |
| - name: Run benchmarks | |
| run: ./zig-out/bin/zevm-bench | |
| - name: Upload benchmark results | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: benchmark-results | |
| path: benchmark-results.json |