Skip to content

Commit

Permalink
Merge branch 'main' into dev-with-foundry-commits
Browse files Browse the repository at this point in the history
  • Loading branch information
Karrq authored Aug 14, 2024
2 parents fce32a8 + ff5bf1d commit 00ac477
Show file tree
Hide file tree
Showing 347 changed files with 15,055 additions and 10,749 deletions.
4 changes: 4 additions & 0 deletions .github/scripts/matrices.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ 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
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
4 changes: 2 additions & 2 deletions .github/workflows/deny.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ name: deny

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

env:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/infrastructure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ name: Infrastructure tests
on:
push:
branches:
- dev
- main
pull_request:
branches:
- dev
- main

env:
CARGO_TERM_COLOR: always
Expand Down
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 }}
14 changes: 14 additions & 0 deletions .github/workflows/test-isolate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Daily CI job to run tests with isolation mode enabled by default

name: test-isolate

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

jobs:
nextest:
uses: ./.github/workflows/nextest.yml
with:
profile: isolate
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ name: test
on:
push:
branches:
- dev
- main
pull_request:
branches:
- dev
- main

concurrency:
cancel-in-progress: true
Expand Down
Loading

0 comments on commit 00ac477

Please sign in to comment.