Update dependency: deps/k_release #10574
This file contains 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: 'Install Poetry' | |
uses: Gr1N/setup-poetry@v9 | |
- 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: 'Install Poetry' | |
uses: Gr1N/setup-poetry@v9 | |
- 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: 'Install Poetry' | |
uses: Gr1N/setup-poetry@v9 | |
- 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 kevm-pyk' | |
run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'make poetry' | |
- name: 'Build targets' | |
run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'CXX=clang++-14 poetry -C 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 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: 8 | |
- 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: '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 kevm-pyk' | |
run: docker exec -u github-user kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }} /bin/bash -c 'make poetry' | |
- name: 'Build distribution' | |
run: docker exec -u github-user kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }} /bin/bash -c 'CXX=clang++-14 poetry -C kevm-pyk run kdist --verbose build -j`nproc` evm-semantics.plugin evm-semantics.haskell' | |
- 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: macos-13 | |
- 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: 'Install Nix' | |
if: ${{ matrix.runner == 'macos-13' }} | |
uses: cachix/install-nix-action@v25 | |
with: | |
install_url: https://releases.nixos.org/nix/nix-2.19.3/install | |
extra_nix_config: | | |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | |
substituters = http://cache.nixos.org https://cache.iog.io | |
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= | |
- name: 'Install Cachix' | |
if: ${{ matrix.runner == 'macos-13' }} | |
uses: cachix/cachix-action@v14 | |
with: | |
name: k-framework | |
- 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 |