fix: operation and sanity spec tests v1.5.0 #275
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 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 | |
| spec-test: | |
| name: spec test | |
| # 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: ${{ matrix.os }}-${{ 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 | |
| - name: Run spec tests - mainnet | |
| run: | | |
| zig build test:spec_tests -Dpreset=mainnet |