Merge pull request #14330 from ethereum/parallelize-bytecode-compare

Generate CLI and Standard JSON bytecode reports in parallel
This commit is contained in:
Kamil Śliwak 2023-06-23 11:06:51 +02:00 committed by GitHub
commit f9a3c094a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -80,18 +80,30 @@ commands:
type: string type: string
steps: steps:
- run: mkdir test-cases/ - run: mkdir test-cases/
- run: cd test-cases && python3 ../scripts/isolate_tests.py ../test/ - run:
- run: cd test-cases && python3 ../scripts/bytecodecompare/prepare_report.py << parameters.binary_path >> --interface standard-json --report-file "../bytecode-report-<< parameters.label >>-json.txt" name: Prepare input files
- run: cd test-cases && python3 ../scripts/bytecodecompare/prepare_report.py << parameters.binary_path >> --interface cli --report-file "../bytecode-report-<< parameters.label >>-cli.txt" command: |
cd test-cases/
python3 ../scripts/isolate_tests.py ../test/
- run:
name: Generate bytecode report
command: |
cd test-cases/
interface=$(echo -e "standard-json\ncli" | circleci tests split)
echo "Selected interface: ${interface}"
python3 ../scripts/bytecodecompare/prepare_report.py \
<< parameters.binary_path >> \
--interface "$interface" \
--report-file "../bytecode-report-<< parameters.label >>-${interface}.txt"
- store_artifacts: - store_artifacts:
path: bytecode-report-<< parameters.label >>-json.txt path: bytecode-report-<< parameters.label >>-standard-json.txt
- store_artifacts: - store_artifacts:
path: bytecode-report-<< parameters.label >>-cli.txt path: bytecode-report-<< parameters.label >>-cli.txt
- persist_to_workspace: - persist_to_workspace:
root: . root: .
paths: paths:
- bytecode-report-<< parameters.label >>-json.txt - bytecode-report-<< parameters.label >>-*.txt
- bytecode-report-<< parameters.label >>-cli.txt
- matrix_notify_failure_unless_pr - matrix_notify_failure_unless_pr
install_python3: install_python3:
@ -1477,6 +1489,7 @@ jobs:
TERM: xterm TERM: xterm
MAKEFLAGS: -j 2 MAKEFLAGS: -j 2
LC_ALL: C LC_ALL: C
parallelism: 2 # For prepare_bytecode_report
steps: steps:
- checkout - checkout
- attach_workspace: - attach_workspace:
@ -1491,6 +1504,7 @@ jobs:
TERM: xterm TERM: xterm
MAKEFLAGS: -j 2 MAKEFLAGS: -j 2
LC_ALL: C LC_ALL: C
parallelism: 2 # For prepare_bytecode_report
steps: steps:
- checkout - checkout
- attach_workspace: - attach_workspace:
@ -1505,6 +1519,7 @@ jobs:
TERM: xterm TERM: xterm
MAKEFLAGS: -j 5 MAKEFLAGS: -j 5
LC_ALL: C LC_ALL: C
parallelism: 2 # For prepare_bytecode_report
steps: steps:
- checkout - checkout
- attach_workspace: - attach_workspace:
@ -1517,6 +1532,7 @@ jobs:
<<: *base_win <<: *base_win
environment: environment:
LC_ALL: C LC_ALL: C
parallelism: 2 # For prepare_bytecode_report
steps: steps:
# NOTE: For bytecode generation we need the input files to be byte-for-byte identical on all # NOTE: For bytecode generation we need the input files to be byte-for-byte identical on all
# platforms so line ending conversions must absolutely be disabled. # platforms so line ending conversions must absolutely be disabled.
@ -1553,13 +1569,13 @@ jobs:
environment: environment:
REPORT_FILES: | REPORT_FILES: |
bytecode-report-emscripten.txt bytecode-report-emscripten.txt
bytecode-report-ubuntu2004-static-json.txt bytecode-report-ubuntu2004-static-standard-json.txt
bytecode-report-ubuntu2004-static-cli.txt bytecode-report-ubuntu2004-static-cli.txt
bytecode-report-ubuntu-json.txt bytecode-report-ubuntu-standard-json.txt
bytecode-report-ubuntu-cli.txt bytecode-report-ubuntu-cli.txt
bytecode-report-osx-json.txt bytecode-report-osx-standard-json.txt
bytecode-report-osx-cli.txt bytecode-report-osx-cli.txt
bytecode-report-windows-json.txt bytecode-report-windows-standard-json.txt
bytecode-report-windows-cli.txt bytecode-report-windows-cli.txt
steps: steps:
- attach_workspace: - attach_workspace: