feat: tree view state #630
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 | |
| pull_request: | |
| branches: | |
| - main | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }}-ci | |
| cancel-in-progress: true | |
| env: | |
| ZIG_VERSION: "0.14.1" | |
| jobs: | |
| zbuild: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| cache-key: ubuntu-latest-${{ env.ZIG_VERSION }} | |
| - name: Install zbuild | |
| run: | | |
| git clone https://github.com/ChainSafe/zbuild.git | |
| cd zbuild | |
| zig build -Doptimize=ReleaseFast | |
| sudo cp zig-out/bin/zbuild /usr/local/bin/zbuild | |
| - name: Verify zbuild | |
| run: zbuild version | |
| - name: Check if build.zig is sync'ed with zbuild.zon | |
| run: | | |
| zbuild sync | |
| git diff --exit-code | |
| build-test: | |
| name: build & test (${{ matrix.os }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - ubuntu-24.04-arm | |
| - macos-latest | |
| # - macos-13 # skip because hashtree does not support macos x64 yet | |
| # - windows-latest # TODO: https://github.com/ChainSafe/state-transition-z/issues/10 | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Install Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| cache-key: ${{ matrix.os }}-${{ env.ZIG_VERSION }} | |
| # Zig fmt is failing on windows and is redundant to run all platforms. So we run only on linux. | |
| - name: Check formatting | |
| if: matrix.os == 'ubuntu-latest' | |
| run: zig fmt --check . | |
| - name: Run hashing tests | |
| run: | | |
| zig build test:hashing | |
| - name: Run persistent_merkle_tree tests | |
| run: | | |
| zig build test:persistent_merkle_tree | |
| - name: Run ssz tests | |
| run: | | |
| zig build test:ssz | |
| - name: Run hex tests | |
| run: | | |
| zig build test:hex | |
| - name: Run config tests | |
| run: | | |
| zig build test:config | |
| - name: Run consensus-type tests | |
| run: | | |
| zig build test:consensus_types | |
| - name: Run preset tests | |
| run: | | |
| zig build test:preset | |
| - name: Run state-transition tests | |
| run: | | |
| zig build test:state_transition | |
| - name: Run Int Tests | |
| run: | | |
| zig build test:int | |
| build-test-slow: | |
| name: slow tests | |
| # It takes time to download and run these tests, so we only run them on ubuntu-latest | |
| runs-on: ubuntu-latest | |
| needs: build-test | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Install Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| cache-key: ubuntu-latest-${{ env.ZIG_VERSION }} | |
| - name: Restore spec tests cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: fixtures/era | |
| key: era-files-${{ hashFiles('build.zig') }} # downloaded era files defined in build.zig | |
| - name: Download era files | |
| run: | | |
| zig build run:download_era_files | |
| - name: Run slow int tests | |
| run: | | |
| zig build test:int_slow | |
| spec-test-ssz: | |
| name: spec tests - ssz | |
| # It takes time to download and run spec tests, so we only run them on ubuntu-latest | |
| runs-on: ubuntu-latest | |
| needs: build-test | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Install Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| cache-key: ubuntu-latest-${{ env.ZIG_VERSION }} | |
| - name: Restore spec tests cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: test/spec/spec_tests | |
| key: spec-test-data-${{ hashFiles('build.zig') }} # spec test version is defined in build.zig | |
| - name: Download spec tests | |
| run: | | |
| zig build run:download_spec_tests | |
| - name: Write ssz_generic spec tests | |
| run: | | |
| zig build run:write_ssz_generic_spec_tests | |
| - name: Write ssz_static spec tests | |
| run: | | |
| zig build run:write_ssz_static_spec_tests | |
| - name: Run ssz_generic spec tests | |
| run: | | |
| zig build test:ssz_generic_spec_tests | |
| - name: Run minimal ssz_static spec tests | |
| run: | | |
| zig build test:ssz_static_spec_tests -Dpreset=minimal | |
| - name: Run mainnet ssz_static spec tests | |
| run: | | |
| zig build test:ssz_static_spec_tests -Dpreset=mainnet | |
| spec-test-minimal: | |
| name: spec tests - minimal | |
| # It takes time to download and run spec tests, so we only run them on ubuntu-latest | |
| runs-on: ubuntu-latest | |
| needs: build-test | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Install Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| cache-key: ubuntu-latest-${{ env.ZIG_VERSION }} | |
| - name: Restore spec tests cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: test/spec/spec_tests | |
| key: spec-test-data-${{ hashFiles('build.zig') }} # spec test version is defined in build.zig | |
| - name: Download spec tests | |
| run: | | |
| zig build run:download_spec_tests | |
| - name: Write spec tests | |
| run: | | |
| zig build run:write_spec_tests | |
| - name: Run spec tests - minimal | |
| run: | | |
| zig build test:spec_tests -Dpreset=minimal | |
| spec-test-mainnet: | |
| name: spec tests - mainnet | |
| # It takes time to download and run spec tests, so we only run them on ubuntu-latest | |
| runs-on: ubuntu-latest | |
| needs: build-test | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Install Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| cache-key: ubuntu-latest-${{ env.ZIG_VERSION }} | |
| - name: Restore spec tests cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: test/spec/spec_tests | |
| key: spec-test-data-${{ hashFiles('build.zig') }} # spec test version is defined in build.zig | |
| - name: Download spec tests | |
| run: | | |
| zig build run:download_spec_tests | |
| - name: Write spec tests | |
| run: | | |
| zig build run:write_spec_tests | |
| - name: Run spec tests - mainnet | |
| run: | | |
| zig build test:spec_tests -Dpreset=mainnet |