Skip to content

Commit

Permalink
Merge pull request #5 from flashbots/rebase/2024-july
Browse files Browse the repository at this point in the history
merge upstream/main with origin
  • Loading branch information
zeroXbrock authored Jul 17, 2024
2 parents 4ec4e16 + d349906 commit 81c6853
Show file tree
Hide file tree
Showing 761 changed files with 48,558 additions and 33,257 deletions.
10 changes: 7 additions & 3 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
* @danipopes @evalir @mattsse

crates/anvil/ @evalir @mattsse
crates/evm/coverage/ @evalir @onbjerg
crates/anvil/ @danipopes @mattsse @evalir
crates/cheatcodes/ @danipopes @mattsse @klkvr @evalir
crates/evm/coverage/ @onbjerg
crates/fmt/ @rkrasiuk
crates/macros/impls/ @danipopes
crates/linking/ @klkvr
crates/macros/ @danipopes
crates/script/ @danipopes @mattsse @klkvr
crates/wallets/ @klkvr
6 changes: 5 additions & 1 deletion .github/scripts/matrices.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,12 @@ def __init__(
self.partition = partition


profile = os.environ.get("PROFILE")
is_pr = os.environ.get("EVENT_NAME") == "pull_request"
t_linux_x86 = Target("ubuntu-latest", "x86_64-unknown-linux-gnu", "linux-amd64")
# TODO: Figure out how to make this work
# t_linux_arm = Target("ubuntu-latest", "aarch64-unknown-linux-gnu", "linux-aarch64")
t_macos = Target("macos-latest", "x86_64-apple-darwin", "macosx-amd64")
t_macos = Target("macos-latest", "aarch64-apple-darwin", "macosx-aarch64")
t_windows = Target("windows-latest", "x86_64-pc-windows-msvc", "windows-amd64")
targets = [t_linux_x86, t_windows] if is_pr else [t_linux_x86, t_macos, t_windows]

Expand Down Expand Up @@ -119,6 +120,9 @@ def main():
s = f"{partition}/{case.n_partitions}"
name += f" ({s})"
flags += f" --partition count:{s}"

if profile == "isolate":
flags += " --features=isolate-by-default"
name += os_str

obj = Expanded(
Expand Down
4 changes: 2 additions & 2 deletions .github/scripts/prune-prereleases.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ module.exports = async ({ github, context }) => {

// Pruning rules:
// 1. only keep the earliest (by created_at) release of the month
// 2. to keep the newest 3 nightlies
// 2. to keep the newest 30 nightlies (to make sure nightlies are kept until the next monthly release)
// Notes:
// - This addresses https://github.com/foundry-rs/foundry/issues/6732
// - Name of the release may deviate from created_at due to the usage of different timezones.
Expand All @@ -47,7 +47,7 @@ module.exports = async ({ github, context }) => {
const groups = groupBy(nightlies, i => i.created_at.slice(0, 7));
const nightliesToPrune = Object.values(groups)
.reduce((acc, cur) => acc.concat(cur.slice(0, -1)), []) // rule 1
.slice(3); // rule 2
.slice(30); // rule 2

for (const nightly of nightliesToPrune) {
console.log(`Deleting nightly: ${nightly.tag_name}`);
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/bump-forge-std.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Daily CI job to update forge-std version used for tests if new release has been published

name: bump-forge-std

on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:

jobs:
update-tag:
name: update forge-std tag
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Fetch and update forge-std tag
run: curl 'https://api.github.com/repos/foundry-rs/forge-std/tags' | jq '.[0].commit.sha' -jr > testdata/forge-std-rev
- name: Create pull request
uses: peter-evans/create-pull-request@v5
with:
commit-message: "chore: bump forge-std version used for tests"
title: "chore(tests): bump forge-std version"
body: |
New release of forge-std has been published, bump forge-std version used in tests. Likely some fixtures need to be updated.
branch: chore/bump-forge-std
38 changes: 19 additions & 19 deletions .github/workflows/deny.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
name: deny

on:
push:
branches: [master]
paths: [Cargo.lock, deny.toml]
pull_request:
branches: [master]
paths: [Cargo.lock, deny.toml]
push:
branches: [master]
paths: [Cargo.lock, deny.toml]
pull_request:
branches: [master]
paths: [Cargo.lock, deny.toml]

env:
CARGO_TERM_COLOR: always
CARGO_TERM_COLOR: always

jobs:
cargo-deny:
name: cargo deny check
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check all
# Clear out arguments to not pass `--all-features` to `cargo deny`.
# many crates have an `openssl` feature which enables banned dependencies
arguments: ""
cargo-deny:
name: cargo deny check
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check all
# Clear out arguments to not pass `--all-features` to `cargo deny`.
# many crates have an `openssl` feature which enables banned dependencies
arguments: ""
103 changes: 50 additions & 53 deletions .github/workflows/dependencies.yml
Original file line number Diff line number Diff line change
@@ -1,64 +1,61 @@
# Automatically run `cargo update` periodically
# Runs `cargo update` periodically.

name: dependencies

on:
schedule:
# Run weekly
- cron: "0 0 * * SUN"
workflow_dispatch:
# Needed so we can run it manually
schedule:
# Run weekly
- cron: "0 0 * * SUN"
workflow_dispatch:
# Needed so we can run it manually

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: cargo-update
TITLE: "chore(deps): weekly `cargo update`"
BODY: |
Automation to keep dependencies in `Cargo.lock` current.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: cargo-update
TITLE: "chore(deps): weekly `cargo update`"
BODY: |
Automation to keep dependencies in `Cargo.lock` current.
<details><summary><strong>cargo update log</strong></summary>
<p>
<details><summary><strong>cargo update log</strong></summary>
<p>
```log
$cargo_update_log
```
```log
$cargo_update_log
```
</p>
</details>
</p>
</details>
jobs:
update:
name: Update
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly

- name: cargo update
# Remove first line that always just says "Updating crates.io index"
run:
cargo update --color never 2>&1 | sed '/crates.io index/d' | tee -a
cargo_update.log

- name: craft commit message and PR body
id: msg
run: |
export cargo_update_log="$(cat cargo_update.log)"
echo "commit_message<<EOF" >> $GITHUB_OUTPUT
printf "$TITLE\n\n$cargo_update_log\n" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "body<<EOF" >> $GITHUB_OUTPUT
echo "$BODY" | envsubst >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
add-paths: ./Cargo.lock
commit-message: ${{ steps.msg.outputs.commit_message }}
title: ${{ env.TITLE }}
body: ${{ steps.msg.outputs.body }}
branch: ${{ env.BRANCH }}
update:
name: Update
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly

- name: cargo update
# Remove first line that always just says "Updating crates.io index"
run: cargo update --color never 2>&1 | sed '/crates.io index/d' | tee -a cargo_update.log

- name: craft commit message and PR body
id: msg
run: |
export cargo_update_log="$(cat cargo_update.log)"
echo "commit_message<<EOF" >> $GITHUB_OUTPUT
printf "$TITLE\n\n$cargo_update_log\n" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "body<<EOF" >> $GITHUB_OUTPUT
echo "$BODY" | envsubst >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
add-paths: ./Cargo.lock
commit-message: ${{ steps.msg.outputs.commit_message }}
title: ${{ env.TITLE }}
body: ${{ steps.msg.outputs.body }}
branch: ${{ env.BRANCH }}
96 changes: 96 additions & 0 deletions .github/workflows/nextest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Reusable workflow for running tests via `cargo nextest`

name: nextest

on:
workflow_call:
inputs:
profile:
required: true
type: string

concurrency:
group: tests-${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always

jobs:
matrices:
name: build matrices
runs-on: ubuntu-latest
outputs:
test-matrix: ${{ steps.gen.outputs.test-matrix }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Generate matrices
id: gen
env:
EVENT_NAME: ${{ github.event_name }}
PROFILE: ${{ inputs.profile }}
run: |
output=$(python3 .github/scripts/matrices.py)
echo "::debug::test-matrix=$output"
echo "test-matrix=$output" >> $GITHUB_OUTPUT
test:
name: test ${{ matrix.name }}
runs-on: ${{ matrix.runner_label }}
timeout-minutes: 60
needs: matrices
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.matrices.outputs.test-matrix) }}
env:
ETH_RPC_URL: https://eth-mainnet.alchemyapi.io/v2/C3JEvfW6VgtqZQa-Qp1E-2srEiIc02sD
CARGO_PROFILE_DEV_DEBUG: 0
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.target }}
- uses: taiki-e/install-action@nextest

# External tests dependencies
- name: Setup Node.js
if: contains(matrix.name, 'external')
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install Bun
if: contains(matrix.name, 'external') && !contains(matrix.runner_label, 'windows')
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- name: Setup Python
if: contains(matrix.name, 'external')
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Install Vyper
if: contains(matrix.name, 'external')
run: pip install vyper~=0.4.0

- name: Forge RPC cache
uses: actions/cache@v3
with:
path: |
~/.foundry/cache
~/.config/.foundry/cache
key: rpc-cache-${{ hashFiles('crates/forge/tests/rpc-cache-keyfile') }}
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Setup Git config
run: |
git config --global user.name "GitHub Actions Bot"
git config --global user.email "<>"
git config --global url."https://github.com/".insteadOf "[email protected]:"
- name: Test
env:
SVM_TARGET_PLATFORM: ${{ matrix.svm_target_platform }}
run: cargo nextest run ${{ matrix.flags }}
Loading

0 comments on commit 81c6853

Please sign in to comment.