Update dependency: web/k-web-theme #11299
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: 'Test PR' | |
| on: | |
| pull_request: | |
| branches: | |
| - 'master' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| kevm-pyk-code-quality-checks: | |
| name: 'Code Quality Checks' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 'Check out code' | |
| uses: actions/checkout@v4 | |
| - name: 'Setup Python 3.10' | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| - name: 'Get uv release' | |
| id: uv_release | |
| run: | | |
| echo uv_version=$(cat deps/uv_release) >> "${GITHUB_OUTPUT}" | |
| - name: 'Install uv' | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ steps.uv_release.outputs.uv_version }} | |
| - name: 'Run code quality checks' | |
| run: make -C kevm-pyk check | |
| - name: 'Run pyupgrade' | |
| run: make -C kevm-pyk pyupgrade | |
| kevm-pyk-unit-tests: | |
| needs: kevm-pyk-code-quality-checks | |
| name: 'Unit Tests' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 'Check out code' | |
| uses: actions/checkout@v4 | |
| - name: 'Get uv release' | |
| id: uv_release | |
| run: | | |
| echo uv_version=$(cat deps/uv_release) >> "${GITHUB_OUTPUT}" | |
| - name: 'Install uv' | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ steps.uv_release.outputs.uv_version }} | |
| - name: 'Run unit tests' | |
| run: make -C kevm-pyk cov-unit | |
| kevm-pyk-profile: | |
| needs: kevm-pyk-code-quality-checks | |
| name: 'Profiling' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 'Check out code' | |
| uses: actions/checkout@v4 | |
| - name: 'Get uv release' | |
| id: uv_release | |
| run: | | |
| echo uv_version=$(cat deps/uv_release) >> "${GITHUB_OUTPUT}" | |
| - name: 'Install uv' | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ steps.uv_release.outputs.uv_version }} | |
| - name: 'Run profiling' | |
| run: | | |
| make -C kevm-pyk profile | |
| test-concrete-execution: | |
| name: 'Conformance Tests' | |
| needs: kevm-pyk-code-quality-checks | |
| runs-on: [self-hosted, linux, normal] | |
| timeout-minutes: 45 | |
| steps: | |
| - name: 'Check out code' | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: 'Set up Docker' | |
| uses: ./.github/actions/with-docker | |
| with: | |
| container-name: kevm-ci-concrete-${{ github.sha }} | |
| - name: 'Build targets' | |
| run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'CXX=clang++-14 uv --project kevm-pyk run -- kdist --verbose build -j`nproc` evm-semantics.haskell evm-semantics.kllvm evm-semantics.kllvm-runtime' | |
| - name: 'Test integration' | |
| run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'make test-integration' | |
| - name: 'Test conformance' | |
| run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'make test-conformance' | |
| - name: 'Test execution-spec-tests' | |
| run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'make test-fixtures' | |
| - name: 'Test llvm krun' | |
| run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'make test-interactive' | |
| - name: 'Tear down Docker' | |
| if: always() | |
| run: | | |
| docker stop --time=0 kevm-ci-concrete-${{ github.sha }} | |
| test-prove: | |
| name: 'Proofs: ${{ matrix.name }}' | |
| needs: kevm-pyk-code-quality-checks | |
| runs-on: [self-hosted, linux, fast] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: 'Rules (booster)' | |
| test-suite: 'test-prove-rules' | |
| test-args: | |
| timeout: 100 | |
| parallel: 6 | |
| - name: 'Rules (booster-dev)' | |
| test-suite: 'test-prove-rules' | |
| test-args: '--use-booster-dev' | |
| timeout: 45 | |
| parallel: 6 | |
| - name: 'Functional' | |
| test-suite: 'test-prove-functional' | |
| test-args: | |
| timeout: 45 | |
| parallel: 2 | |
| - name: 'Optimizations' | |
| test-suite: 'test-prove-optimizations' | |
| test-args: | |
| timeout: 45 | |
| parallel: 1 | |
| - name: 'Summarization' | |
| test-suite: 'test-prove-summaries' | |
| test-args: | |
| timeout: 45 | |
| parallel: 4 | |
| - name: 'DSS' | |
| test-suite: 'test-prove-dss' | |
| test-args: | |
| timeout: 45 | |
| parallel: 1 | |
| timeout-minutes: ${{ matrix.timeout }} | |
| steps: | |
| - name: 'Check out code' | |
| uses: actions/checkout@v4 | |
| - name: 'Check out select submodules' | |
| run: | | |
| set -eux | |
| git submodule update --init --recursive -- kevm-pyk/src/kevm_pyk/kproj/plugin | |
| - name: 'Set up Docker' | |
| uses: ./.github/actions/with-docker | |
| with: | |
| container-name: kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }} | |
| - name: 'Build distribution' | |
| run: docker exec -u github-user kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }} /bin/bash -c 'CXX=clang++-14 uv --project kevm-pyk run -- kdist --verbose build -j`nproc` evm-semantics.plugin evm-semantics.haskell evm-semantics.haskell-summary' | |
| - name: 'Run proofs' | |
| run: docker exec -u github-user kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }} /bin/bash -c "make ${{ matrix.test-suite }} PYTEST_ARGS='-vv ${{ matrix.test-args }}' PYTEST_PARALLEL=${{ matrix.parallel }}" | |
| - name: 'Tear down Docker' | |
| if: always() | |
| run: | | |
| docker stop --time=0 kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }} | |
| nix: | |
| name: 'Nix' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - runner: normal | |
| - runner: ARM64 | |
| needs: kevm-pyk-code-quality-checks | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 60 | |
| steps: | |
| - name: 'Check out code' | |
| uses: actions/checkout@v4 | |
| with: | |
| # Check out pull request HEAD instead of merge commit. | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| - name: 'Check out select submodules' | |
| run: | | |
| set -eux | |
| git submodule update --init --recursive -- kevm-pyk/src/kevm_pyk/kproj/plugin | |
| - name: 'Build KEVM' | |
| run: GC_DONT_GC=1 nix build --extra-experimental-features 'nix-command flakes' --print-build-logs | |
| - name: 'Test KEVM' | |
| run: GC_DONT_GC=1 nix build --extra-experimental-features 'nix-command flakes' --print-build-logs .#kevm-test |