mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #14140 from ethereum/foundry-ci-setup
Foundry ci setup
This commit is contained in:
commit
f32f35f8f1
@ -93,6 +93,73 @@ commands:
|
||||
- bytecode-report-<< parameters.label >>-cli.txt
|
||||
- matrix_notify_failure_unless_pr
|
||||
|
||||
install_python3:
|
||||
description: "Install python3 and given packages."
|
||||
parameters:
|
||||
packages:
|
||||
description: "List of extra Python packages to be installed (separated by space)."
|
||||
type: string
|
||||
default: ""
|
||||
steps:
|
||||
- run:
|
||||
name: Install python and dependencies
|
||||
command: |
|
||||
sudo apt update
|
||||
sudo apt install python3 python3-pip --assume-yes --no-install-recommends
|
||||
if [[ "<< parameters.packages >>" != "" ]]
|
||||
then
|
||||
echo "Installing additional packages..."
|
||||
python3 -m pip install --user << parameters.packages >>
|
||||
fi
|
||||
|
||||
install_foundry:
|
||||
description: "Install Foundry."
|
||||
parameters:
|
||||
version:
|
||||
type: string
|
||||
default: "nightly"
|
||||
install_path:
|
||||
type: string
|
||||
default: /home/circleci/bin
|
||||
steps:
|
||||
- run:
|
||||
name: Setup Foundry environment variables
|
||||
command: |
|
||||
FOUNDRY_REPO="foundry-rs/foundry"
|
||||
FOUNDRY_VERSION="<< parameters.version >>"
|
||||
FOUNDRY_RELEASE_SHA=$(curl \
|
||||
--silent \
|
||||
--fail \
|
||||
--show-error \
|
||||
"https://api.github.com/repos/${FOUNDRY_REPO}/git/refs/tags/${FOUNDRY_VERSION}" \
|
||||
| jq --raw-output .object.sha \
|
||||
)
|
||||
echo "export FOUNDRY_REPO=$FOUNDRY_REPO" >> "$BASH_ENV"
|
||||
echo "export FOUNDRY_VERSION=$FOUNDRY_VERSION" >> "$BASH_ENV"
|
||||
echo "export FOUNDRY_RELEASE_TAG='nightly-${FOUNDRY_RELEASE_SHA}'" >> "$BASH_ENV"
|
||||
# Save commit sha for caching
|
||||
echo "$FOUNDRY_RELEASE_SHA" > /tmp/workspace/foundry-release-sha
|
||||
- restore_cache:
|
||||
keys:
|
||||
- foundry-<< parameters.version >>-{{ arch }}-{{ checksum "/tmp/workspace/foundry-release-sha" }}
|
||||
# WARNING! If you edit anything between here and save_cache, remember to invalidate the cache manually.
|
||||
- run:
|
||||
name: Install foundry
|
||||
command: |
|
||||
! forge --version 2> /dev/null
|
||||
curl \
|
||||
--fail \
|
||||
--location \
|
||||
--output /tmp/foundry.tar.gz \
|
||||
"https://github.com/${FOUNDRY_REPO}/releases/download/${FOUNDRY_RELEASE_TAG}/foundry_${FOUNDRY_VERSION}_linux_amd64.tar.gz"
|
||||
cd "<< parameters.install_path >>"
|
||||
tar --extract --gzip --file /tmp/foundry.tar.gz --one-top-level
|
||||
ln --symbolic --force foundry/{forge,anvil,cast,chisel} .
|
||||
- save_cache:
|
||||
key: foundry-<< parameters.version >>-{{ arch }}-{{ checksum "/tmp/workspace/foundry-release-sha" }}
|
||||
paths:
|
||||
- << parameters.install_path >>
|
||||
|
||||
defaults:
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
@ -701,14 +768,8 @@ jobs:
|
||||
<<: *base_cimg_small
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Install pip
|
||||
command: |
|
||||
sudo apt -q update
|
||||
sudo apt install -y python3-pip
|
||||
- run:
|
||||
name: Install pylint and dependencies of the scripts that will be linted
|
||||
command: python3 -m pip install
|
||||
- install_python3:
|
||||
packages: >
|
||||
pylint
|
||||
z3-solver
|
||||
pygments-lexer-solidity
|
||||
@ -756,12 +817,8 @@ jobs:
|
||||
<<: *base_cimg_small
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Z3 python deps
|
||||
command: |
|
||||
sudo apt-get -qq update
|
||||
sudo apt-get -qy install python3-pip
|
||||
pip3 install --user z3-solver
|
||||
- install_python3:
|
||||
packages: z3-solver
|
||||
- run: *run_proofs
|
||||
- matrix_notify_failure_unless_pr
|
||||
|
||||
@ -1231,6 +1288,9 @@ jobs:
|
||||
- checkout
|
||||
- attach_workspace:
|
||||
at: /tmp/workspace
|
||||
- install_foundry
|
||||
- install_python3:
|
||||
packages: requests
|
||||
- run:
|
||||
name: Install lsof
|
||||
command: |
|
||||
@ -1277,15 +1337,11 @@ jobs:
|
||||
c_ext_benchmarks:
|
||||
<<: *base_node_small
|
||||
steps:
|
||||
- install_python3:
|
||||
packages: requests
|
||||
- checkout
|
||||
- attach_workspace:
|
||||
at: .
|
||||
- run:
|
||||
name: Install dependencies of helper scripts
|
||||
command: |
|
||||
sudo apt update
|
||||
sudo apt install python3-pip --assume-yes --no-install-recommends
|
||||
python3 -m pip install requests --user
|
||||
- run:
|
||||
name: Combine benchmark reports
|
||||
command: cat reports/externalTests/benchmark-*.json | scripts/externalTests/merge_benchmarks.sh > reports/externalTests/all-benchmarks.json
|
||||
|
Loading…
Reference in New Issue
Block a user