Revert "Revert "txFrame HashKeys (kMap) memory optimization (#3606)"… #5037
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
# Nimbus | |
# Copyright (c) 2021-2025 Status Research & Development GmbH | |
# Licensed under either of | |
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or | |
# http://www.apache.org/licenses/LICENSE-2.0) | |
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or | |
# http://opensource.org/licenses/MIT) | |
# at your option. This file may not be copied, modified, or distributed except | |
# according to those terms. | |
name: Nimbus verified proxy CI | |
on: | |
push: | |
branches: | |
- master | |
paths: | |
- '.github/workflows/nimbus_verified_proxy.yml' | |
- 'nimbus_verified_proxy/**' | |
- '!nimbus_verified_proxy/**.md' | |
- '!nimbus_verified_proxy/docs/**' | |
- 'execution_chain/db/**' | |
- 'vendor/**' | |
- 'Makefile' | |
- 'nimbus.nimble' | |
pull_request: | |
paths: | |
- '.github/workflows/nimbus_verified_proxy.yml' | |
- 'nimbus_verified_proxy/**' | |
- '!nimbus_verified_proxy/**.md' | |
- '!nimbus_verified_proxy/docs/**' | |
- 'execution_chain/db/**' | |
- 'vendor/**' | |
- 'Makefile' | |
- 'nimbus.nimble' | |
concurrency: # Cancel stale PR builds (but not push builds) | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
matrix_config: | |
uses: ./.github/workflows/matrix_config.yml | |
build: | |
needs: matrix_config | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJSON(needs.matrix_config.outputs.matrix) }} | |
defaults: | |
run: | |
shell: bash | |
name: '${{ matrix.os }}-${{ matrix.cpu }}' | |
runs-on: ${{ matrix.builder }} | |
steps: | |
- name: Checkout nimbus-eth1 | |
uses: actions/checkout@v4 | |
- id: shared-action | |
uses: ./.github/actions/shared | |
with: | |
llvm-mingw: true | |
nim-cache: true | |
rocksdb-cache: true | |
eest-cache: false | |
- name: Run verified proxy tests (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
gcc --version | |
DEFAULT_MAKE_FLAGS="-j${ncpu}" | |
mingw32-make ${DEFAULT_MAKE_FLAGS} nimbus_verified_proxy libverifproxy | |
build/nimbus_verified_proxy.exe --help | |
mingw32-make ${DEFAULT_MAKE_FLAGS} nimbus-verified-proxy-test | |
- name: Run verified proxy tests (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib" | |
DEFAULT_MAKE_FLAGS="-j${ncpu}" | |
env CC=gcc make ${DEFAULT_MAKE_FLAGS} nimbus_verified_proxy libverifproxy | |
build/nimbus_verified_proxy --help | |
# CC is needed to select correct compiler 32/64 bit | |
env CC=gcc CXX=g++ make ${DEFAULT_MAKE_FLAGS} nimbus-verified-proxy-test | |
- name: Run verified proxy tests (Macos) | |
if: runner.os == 'Macos' | |
run: | | |
DEFAULT_MAKE_FLAGS="-j${ncpu}" | |
make ${DEFAULT_MAKE_FLAGS} nimbus_verified_proxy libverifproxy | |
build/nimbus_verified_proxy --help | |
# "-static" option will not work for osx unless static system libraries are provided | |
make ${DEFAULT_MAKE_FLAGS} nimbus-verified-proxy-test | |
lint: | |
name: "Lint verified proxy" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 # In PR, has extra merge commit: ^1 = PR, ^2 = base | |
- name: Check nph formatting | |
# Pin nph to a specific version to avoid sudden style differences. | |
# Updating nph version should be accompanied with running the new | |
# version on the nimbus_verified_proxy directory. | |
run: | | |
VERSION="v0.6.1" | |
ARCHIVE="nph-linux_x64.tar.gz" | |
curl -L "https://github.com/arnetheduck/nph/releases/download/${VERSION}/${ARCHIVE}" -o ${ARCHIVE} | |
tar -xzf ${ARCHIVE} | |
./nph nimbus_verified_proxy/ | |
git diff --exit-code | |
- name: Check copyright year | |
if: ${{ !cancelled() }} && github.event_name == 'pull_request' | |
run: | | |
bash scripts/check_copyright_year.sh |