From 31c647838f2504a6e4b22274c7316054bef91794 Mon Sep 17 00:00:00 2001 From: Emilia Hane Date: Fri, 3 Jan 2025 16:47:09 +0100 Subject: [PATCH] chore(ci): strip CI to op-reth testing essentials (#17) **Description** Merges down and cleans up changes to ci from isthmus-devnet-0 branch. Ref https://github.com/ethereum-optimism/op-reth/issues/8. - Removes jobs: for L1, for deploying, some maintenance jobs - Removes cron jobs **Tests** **Additional context** **Metadata** --- .github/assets/hive/Dockerfile | 9 - .github/assets/hive/build_simulators.sh | 38 ---- .github/assets/hive/expected_failures.yaml | 53 ----- .github/assets/hive/load_images.sh | 25 --- .github/assets/hive/no_sim_build.diff | 52 ----- .github/assets/hive/parse.py | 43 ---- .github/assets/hive/run_simulator.sh | 38 ---- .github/assets/kurtosis_network_params.yaml | 13 -- .github/assets/label_pr.js | 57 ----- .github/workflows/bench.yml | 6 +- .github/workflows/book.yml | 135 ------------ .github/workflows/compact.yml | 6 +- .github/workflows/dependencies.yml | 61 ----- .github/workflows/docker-git.yml | 44 ---- .github/workflows/docker.yml | 47 ---- .github/workflows/hive.yml | 232 -------------------- .github/workflows/integration.yml | 8 +- .github/workflows/kurtosis-op.yml | 9 +- .github/workflows/kurtosis.yml | 67 ------ .github/workflows/label-pr.yml | 23 -- .github/workflows/lint.yml | 10 +- .github/workflows/prepare-reth.yml | 5 +- .github/workflows/release-dist.yml | 20 -- .github/workflows/release.yml | 197 ----------------- .github/workflows/stage.yml | 72 ------ .github/workflows/sync.yml | 17 +- .github/workflows/unit.yml | 37 ++-- .github/workflows/windows.yml | 34 +-- 28 files changed, 63 insertions(+), 1295 deletions(-) delete mode 100644 .github/assets/hive/Dockerfile delete mode 100755 .github/assets/hive/build_simulators.sh delete mode 100644 .github/assets/hive/expected_failures.yaml delete mode 100755 .github/assets/hive/load_images.sh delete mode 100644 .github/assets/hive/no_sim_build.diff delete mode 100644 .github/assets/hive/parse.py delete mode 100755 .github/assets/hive/run_simulator.sh delete mode 100644 .github/assets/kurtosis_network_params.yaml delete mode 100644 .github/assets/label_pr.js delete mode 100644 .github/workflows/book.yml delete mode 100644 .github/workflows/dependencies.yml delete mode 100644 .github/workflows/docker-git.yml delete mode 100644 .github/workflows/docker.yml delete mode 100644 .github/workflows/hive.yml delete mode 100644 .github/workflows/kurtosis.yml delete mode 100644 .github/workflows/label-pr.yml delete mode 100644 .github/workflows/release-dist.yml delete mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/stage.yml diff --git a/.github/assets/hive/Dockerfile b/.github/assets/hive/Dockerfile deleted file mode 100644 index 25b71bf21872..000000000000 --- a/.github/assets/hive/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM ubuntu - -COPY dist/reth /usr/local/bin - -COPY LICENSE-* ./ - -EXPOSE 30303 30303/udp 9001 8545 8546 -ENV RUST_LOG=debug -ENTRYPOINT ["/usr/local/bin/reth"] diff --git a/.github/assets/hive/build_simulators.sh b/.github/assets/hive/build_simulators.sh deleted file mode 100755 index b33f4db4ee79..000000000000 --- a/.github/assets/hive/build_simulators.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -# Create the hive_assets directory -mkdir hive_assets/ - -cd hivetests -go build . - -./hive -client reth # first builds and caches the client - -# Run each hive command in the background for each simulator and wait -echo "Building images" -./hive -client reth --sim "pyspec" -sim.timelimit 1s || true & -./hive -client reth --sim "ethereum/engine" -sim.timelimit 1s || true & -./hive -client reth --sim "devp2p" -sim.timelimit 1s || true & -./hive -client reth --sim "ethereum/rpc-compat" -sim.timelimit 1s || true & -./hive -client reth --sim "smoke/genesis" -sim.timelimit 1s || true & -./hive -client reth --sim "smoke/network" -sim.timelimit 1s || true & -./hive -client reth --sim "ethereum/sync" -sim.timelimit 1s || true & -wait - -# Run docker save in parallel and wait -echo "Saving images" -docker save hive/hiveproxy:latest -o ../hive_assets/hiveproxy.tar & -docker save hive/simulators/devp2p:latest -o ../hive_assets/devp2p.tar & -docker save hive/simulators/ethereum/engine:latest -o ../hive_assets/engine.tar & -docker save hive/simulators/ethereum/rpc-compat:latest -o ../hive_assets/rpc_compat.tar & -docker save hive/simulators/ethereum/pyspec:latest -o ../hive_assets/pyspec.tar & -docker save hive/simulators/smoke/genesis:latest -o ../hive_assets/smoke_genesis.tar & -docker save hive/simulators/smoke/network:latest -o ../hive_assets/smoke_network.tar & -docker save hive/simulators/ethereum/sync:latest -o ../hive_assets/ethereum_sync.tar & -wait - -# Make sure we don't rebuild images on the CI jobs -git apply ../.github/assets/hive/no_sim_build.diff -go build . -mv ./hive ../hive_assets/ diff --git a/.github/assets/hive/expected_failures.yaml b/.github/assets/hive/expected_failures.yaml deleted file mode 100644 index c1c7ff71cf8e..000000000000 --- a/.github/assets/hive/expected_failures.yaml +++ /dev/null @@ -1,53 +0,0 @@ -# https://github.com/paradigmxyz/reth/issues/7015 -# https://github.com/paradigmxyz/reth/issues/6332 -rpc-compat: - - debug_getRawBlock/get-invalid-number (reth) - - debug_getRawHeader/get-invalid-number (reth) - - debug_getRawReceipts/get-invalid-number (reth) - - debug_getRawTransaction/get-invalid-hash (reth) - - - eth_call/call-callenv (reth) - - eth_feeHistory/fee-history (reth) - - eth_getStorageAt/get-storage-invalid-key-too-large (reth) - - eth_getStorageAt/get-storage-invalid-key (reth) - - eth_getTransactionReceipt/get-access-list (reth) - - eth_getTransactionReceipt/get-blob-tx (reth) - - eth_getTransactionReceipt/get-dynamic-fee (reth) - -# https://github.com/paradigmxyz/reth/issues/8732 -engine-withdrawals: - - Withdrawals Fork On Genesis (Paris) (reth) - - Withdrawals Fork on Block 1 (Paris) (reth) - - Withdrawals Fork on Block 2 (Paris) (reth) - - Withdrawals Fork on Block 3 (Paris) (reth) - - Withdraw to a single account (Paris) (reth) - - Withdraw to two accounts (Paris) (reth) - - Withdraw many accounts (Paris) (reth) - - Withdraw zero amount (Paris) (reth) - - Empty Withdrawals (Paris) (reth) - - Corrupted Block Hash Payload (INVALID) (Paris) (reth) - - Withdrawals Fork on Block 1 - 8 Block Re-Org NewPayload (Paris) (reth) - - Withdrawals Fork on Block 1 - 8 Block Re-Org, Sync (Paris) (reth) - - Withdrawals Fork on Block 8 - 10 Block Re-Org NewPayload (Paris) (reth) - - Withdrawals Fork on Block 8 - 10 Block Re-Org Sync (Paris) (reth) - - Withdrawals Fork on Canonical Block 8 / Side Block 7 - 10 Block Re-Org (Paris) (reth) - - Withdrawals Fork on Canonical Block 8 / Side Block 7 - 10 Block Re-Org Sync (Paris) (reth) - - Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block Re-Org (Paris) (reth) - - Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block Re-Org Sync (Paris) (reth) - -engine-api: [] - -# https://github.com/paradigmxyz/reth/issues/8305 -# https://github.com/paradigmxyz/reth/issues/6217 -# https://github.com/paradigmxyz/reth/issues/8306 -# https://github.com/paradigmxyz/reth/issues/7144 -engine-cancun: - - Blob Transaction Ordering, Multiple Clients (Cancun) (reth) - - Invalid PayloadAttributes, Missing BeaconRoot, Syncing=True (Cancun) (reth) - - Invalid NewPayload, ExcessBlobGas, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth) - - Invalid NewPayload, VersionedHashes, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth) - - Invalid NewPayload, VersionedHashes Version, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth) - - Invalid NewPayload, Incomplete VersionedHashes, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth) - - Invalid NewPayload, Extra VersionedHashes, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth) - -sync: [] diff --git a/.github/assets/hive/load_images.sh b/.github/assets/hive/load_images.sh deleted file mode 100755 index 05e1cb9905fa..000000000000 --- a/.github/assets/hive/load_images.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -# List of tar files to load -IMAGES=( - "/tmp/hiveproxy.tar" - "/tmp/devp2p.tar" - "/tmp/engine.tar" - "/tmp/rpc_compat.tar" - "/tmp/pyspec.tar" - "/tmp/smoke_genesis.tar" - "/tmp/smoke_network.tar" - "/tmp/ethereum_sync.tar" - "/tmp/reth_image.tar" -) - -# Loop through the images and load them -for IMAGE_TAR in "${IMAGES[@]}"; do - echo "Loading image $IMAGE_TAR..." - docker load -i "$IMAGE_TAR" & -done - -wait - -docker image ls -a \ No newline at end of file diff --git a/.github/assets/hive/no_sim_build.diff b/.github/assets/hive/no_sim_build.diff deleted file mode 100644 index 6127a4ecb732..000000000000 --- a/.github/assets/hive/no_sim_build.diff +++ /dev/null @@ -1,52 +0,0 @@ -diff --git a/internal/libdocker/builder.go b/internal/libdocker/builder.go -index e4bf99b6..2023f7e2 100644 ---- a/internal/libdocker/builder.go -+++ b/internal/libdocker/builder.go -@@ -8,7 +8,6 @@ import ( - "io" - "io/fs" - "log/slog" -- "os" - "path/filepath" - "slices" - "strings" -@@ -49,25 +48,8 @@ func (b *Builder) BuildClientImage(ctx context.Context, client libhive.ClientDes - - // BuildSimulatorImage builds a docker image of a simulator. - func (b *Builder) BuildSimulatorImage(ctx context.Context, name string, buildArgs map[string]string) (string, error) { -- dir := b.config.Inventory.SimulatorDirectory(name) -- buildContextPath := dir -- buildDockerfile := "Dockerfile" -- -- // build context dir of simulator can be overridden with "hive_context.txt" file containing the desired build path -- if contextPathBytes, err := os.ReadFile(filepath.Join(filepath.FromSlash(dir), "hive_context.txt")); err == nil { -- buildContextPath = filepath.Join(dir, strings.TrimSpace(string(contextPathBytes))) -- if strings.HasPrefix(buildContextPath, "../") { -- return "", fmt.Errorf("cannot access build directory outside of Hive root: %q", buildContextPath) -- } -- if p, err := filepath.Rel(buildContextPath, filepath.Join(filepath.FromSlash(dir), "Dockerfile")); err != nil { -- return "", fmt.Errorf("failed to derive relative simulator Dockerfile path: %v", err) -- } else { -- buildDockerfile = p -- } -- } - tag := fmt.Sprintf("hive/simulators/%s:latest", name) -- err := b.buildImage(ctx, buildContextPath, buildDockerfile, tag, buildArgs) -- return tag, err -+ return tag, nil - } - - // BuildImage creates a container by archiving the given file system, -diff --git a/internal/libdocker/proxy.go b/internal/libdocker/proxy.go -index d3a14ae6..8779671e 100644 ---- a/internal/libdocker/proxy.go -+++ b/internal/libdocker/proxy.go -@@ -16,7 +16,7 @@ const hiveproxyTag = "hive/hiveproxy" - - // Build builds the hiveproxy image. - func (cb *ContainerBackend) Build(ctx context.Context, b libhive.Builder) error { -- return b.BuildImage(ctx, hiveproxyTag, hiveproxy.Source) -+ return nil - } - - // ServeAPI starts the API server. diff --git a/.github/assets/hive/parse.py b/.github/assets/hive/parse.py deleted file mode 100644 index ee75fdf55317..000000000000 --- a/.github/assets/hive/parse.py +++ /dev/null @@ -1,43 +0,0 @@ -import json -import yaml -import sys -import argparse - -# Argument parser setup -parser = argparse.ArgumentParser(description="Check for unexpected test results based on an exclusion list.") -parser.add_argument("report_json", help="Path to the hive report JSON file.") -parser.add_argument("--exclusion", required=True, help="Path to the exclusion YAML file.") -args = parser.parse_args() - -# Load hive JSON -with open(args.report_json, 'r') as file: - report = json.load(file) - -# Load exclusion YAML -with open(args.exclusion, 'r') as file: - exclusion_data = yaml.safe_load(file) - exclusions = exclusion_data.get(report['name'], []) - -# Collect unexpected failures and passes -unexpected_failures = [] -unexpected_passes = [] - -for test in report['testCases'].values(): - test_name = test['name'] - test_pass = test['summaryResult']['pass'] - if test_name in exclusions: - if test_pass: - unexpected_passes.append(test_name) - else: - if not test_pass: - unexpected_failures.append(test_name) - -# Check if there are any unexpected failures or passes and exit with error -if unexpected_failures or unexpected_passes: - if unexpected_failures: - print("Unexpected Failures:", unexpected_failures) - if unexpected_passes: - print("Unexpected Passes:", unexpected_passes) - sys.exit(1) - -print("Success.") \ No newline at end of file diff --git a/.github/assets/hive/run_simulator.sh b/.github/assets/hive/run_simulator.sh deleted file mode 100755 index 731c94c3f69b..000000000000 --- a/.github/assets/hive/run_simulator.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -# set -x - -cd hivetests/ - -sim="${1}" -limit="${2}" - -run_hive() { - hive --sim "${sim}" --sim.limit "${limit}" --sim.parallelism 4 --client reth 2>&1 | tee /tmp/log || true -} - -check_log() { - tail -n 1 /tmp/log | sed -r 's/\x1B\[[0-9;]*[mK]//g' -} - -attempt=0 -max_attempts=5 - -while [ $attempt -lt $max_attempts ]; do - run_hive - - # Check if no tests were run. sed removes ansi colors - if check_log | grep -q "suites=0"; then - echo "no tests were run, retrying in 10 seconds" - sleep 10 - attempt=$((attempt + 1)) - continue - fi - - # Check the last line of the log for "finished", "tests failed", or "test failed" - if check_log | grep -Eq "(finished|tests? failed)"; then - exit 0 - else - exit 1 - fi -done -exit 1 diff --git a/.github/assets/kurtosis_network_params.yaml b/.github/assets/kurtosis_network_params.yaml deleted file mode 100644 index e8cc1b51dc81..000000000000 --- a/.github/assets/kurtosis_network_params.yaml +++ /dev/null @@ -1,13 +0,0 @@ -participants: - - el_type: geth - cl_type: lighthouse - - el_type: reth - el_image: "ghcr.io/paradigmxyz/reth:kurtosis-ci" - cl_type: teku -additional_services: - - assertoor -assertoor_params: - run_block_proposal_check: true - run_transaction_test: true - run_blob_transaction_test: true - run_opcodes_transaction_test: true diff --git a/.github/assets/label_pr.js b/.github/assets/label_pr.js deleted file mode 100644 index 16ace2db0327..000000000000 --- a/.github/assets/label_pr.js +++ /dev/null @@ -1,57 +0,0 @@ -// Filter function for labels we do not want on PRs automatically. -function shouldIncludeLabel (label) { - const isStatus = label.startsWith('S-'); - const isTrackingIssue = label === 'C-tracking-issue'; - const isPreventStale = label === 'M-prevent-stale'; - const isDifficulty = label.startsWith('D-'); - - return !isStatus && !isTrackingIssue && !isPreventStale && !isDifficulty; -} - -// Get the issue number from an issue link in the forms ` ` or ` #`. -function getIssueLink (repoUrl, body) { - const urlPattern = new RegExp(`(close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved) ${repoUrl}/issues/(?\\d+)`, 'i') - const issuePattern = new RegExp(`(close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved) \#(?\\d+)`, 'i') - - const urlRe = body.match(urlPattern); - const issueRe = body.match(issuePattern); - if (urlRe?.groups?.issue_number) { - return urlRe.groups.issue_number - } else { - return issueRe?.groups?.issue_number - } -} - -module.exports = async ({ github, context }) => { - try { - const prNumber = context.payload.pull_request.number; - const prBody = context.payload.pull_request.body; - const repo = context.repo; - - const repoUrl = context.payload.repository.html_url; - const issueNumber = getIssueLink(repoUrl, prBody); - if (!issueNumber) { - console.log('No issue reference found in PR description.'); - return; - } - - const issue = await github.rest.issues.get({ - ...repo, - issue_number: issueNumber, - }); - - const issueLabels = issue.data.labels - .map(label => label.name) - .filter(shouldIncludeLabel); - if (issueLabels.length > 0) { - await github.rest.issues.addLabels({ - ...repo, - issue_number: prNumber, - labels: issueLabels, - }); - } - } catch (err) { - console.error('Failed to label PR'); - console.error(err); - } -} diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml index 0215bf304c11..86e12eccfe96 100644 --- a/.github/workflows/bench.yml +++ b/.github/workflows/bench.yml @@ -1,11 +1,7 @@ # Runs benchmarks. on: - pull_request: - # TODO: Disabled temporarily for https://github.com/CodSpeedHQ/runner/issues/55 - # merge_group: - push: - branches: [main] + workflow_dispatch: env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/book.yml b/.github/workflows/book.yml deleted file mode 100644 index 56d5c427466e..000000000000 --- a/.github/workflows/book.yml +++ /dev/null @@ -1,135 +0,0 @@ -# Documentation and mdbook related jobs. - -name: book - -on: - push: - branches: [main] - pull_request: - branches: [main] - merge_group: - -jobs: - test: - runs-on: ubuntu-latest - name: test - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - - - name: Install mdbook - run: | - mkdir mdbook - curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.14/mdbook-v0.4.14-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook - echo $(pwd)/mdbook >> $GITHUB_PATH - - - name: Install mdbook-template - run: | - mkdir mdbook-template - curl -sSL https://github.com/sgoudham/mdbook-template/releases/latest/download/mdbook-template-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook-template - echo $(pwd)/mdbook-template >> $GITHUB_PATH - - - name: Run tests - run: mdbook test - - lint: - runs-on: ubuntu-latest - name: lint - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - - - name: Install mdbook-linkcheck - run: | - mkdir mdbook-linkcheck - curl -sSL -o mdbook-linkcheck.zip https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/latest/download/mdbook-linkcheck.x86_64-unknown-linux-gnu.zip - unzip mdbook-linkcheck.zip -d ./mdbook-linkcheck - chmod +x $(pwd)/mdbook-linkcheck/mdbook-linkcheck - echo $(pwd)/mdbook-linkcheck >> $GITHUB_PATH - - - name: Run linkcheck - run: mdbook-linkcheck --standalone - - build: - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - - name: Install mdbook - run: | - mkdir mdbook - curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.14/mdbook-v0.4.14-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook - echo $(pwd)/mdbook >> $GITHUB_PATH - - - name: Install mdbook-template - run: | - mkdir mdbook-template - curl -sSL https://github.com/sgoudham/mdbook-template/releases/latest/download/mdbook-template-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook-template - echo $(pwd)/mdbook-template >> $GITHUB_PATH - - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - - name: Build book - run: mdbook build - - - name: Build docs - run: cargo docs --exclude "example-*" - env: - # Keep in sync with ./ci.yml:jobs.docs - RUSTDOCFLAGS: - --cfg docsrs --show-type-layout --generate-link-to-definition --enable-index-page - -Zunstable-options - - - name: Move docs to book folder - run: | - mv target/doc target/book/docs - - - name: Archive artifact - shell: sh - run: | - chmod -c -R +rX "target/book" | - while read line; do - echo "::warning title=Invalid file permissions automatically fixed::$line" - done - tar \ - --dereference --hard-dereference \ - --directory "target/book" \ - -cvf "$RUNNER_TEMP/artifact.tar" \ - --exclude=.git \ - --exclude=.github \ - . - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: github-pages - path: ${{ runner.temp }}/artifact.tar - retention-days: 1 - if-no-files-found: error - - deploy: - # Only deploy if a push to main - if: github.ref_name == 'main' && github.event_name == 'push' - runs-on: ubuntu-latest - needs: [test, lint, build] - - # Grant GITHUB_TOKEN the permissions required to make a Pages deployment - permissions: - pages: write - id-token: write - - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - - timeout-minutes: 60 - - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/.github/workflows/compact.yml b/.github/workflows/compact.yml index 484b27c820d0..806ad9493e80 100644 --- a/.github/workflows/compact.yml +++ b/.github/workflows/compact.yml @@ -6,7 +6,6 @@ # 4) deserialize previously generated test vectors on: - pull_request: merge_group: push: @@ -18,12 +17,11 @@ env: name: compact-codec jobs: compact-codec: - runs-on: - group: Reth + runs-on: ubuntu-latest strategy: matrix: bin: - - cargo run --bin reth --features "dev" + #- cargo run --bin reth --features "dev" - cargo run --bin op-reth --features "optimism dev" --manifest-path crates/optimism/bin/Cargo.toml steps: - uses: dtolnay/rust-toolchain@stable diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml deleted file mode 100644 index 4716486e688b..000000000000 --- a/.github/workflows/dependencies.yml +++ /dev/null @@ -1,61 +0,0 @@ -# Runs `cargo update` periodically. - -name: Update Dependencies - -on: - 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. - -
cargo update log -

- - ```log - $cargo_update_log - ``` - -

-
- -jobs: - 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<> $GITHUB_OUTPUT - printf "$TITLE\n\n$cargo_update_log\n" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - echo "body<> $GITHUB_OUTPUT - echo "$BODY" | envsubst >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 - with: - add-paths: ./Cargo.lock - commit-message: ${{ steps.msg.outputs.commit_message }} - title: ${{ env.TITLE }} - body: ${{ steps.msg.outputs.body }} - branch: ${{ env.BRANCH }} diff --git a/.github/workflows/docker-git.yml b/.github/workflows/docker-git.yml deleted file mode 100644 index 2e3ad59aea92..000000000000 --- a/.github/workflows/docker-git.yml +++ /dev/null @@ -1,44 +0,0 @@ -# Publishes the Docker image, only to be used with `workflow_dispatch`. The -# images from this workflow will be tagged with the git sha of the branch used -# and will NOT tag it as `latest`. - -name: docker-git - -on: - workflow_dispatch: {} - -env: - REPO_NAME: ${{ github.repository_owner }}/reth - IMAGE_NAME: ${{ github.repository_owner }}/reth - OP_IMAGE_NAME: ${{ github.repository_owner }}/op-reth - CARGO_TERM_COLOR: always - DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/reth - OP_DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/op-reth - DOCKER_USERNAME: ${{ github.actor }} - GIT_SHA: ${{ github.sha }} - -jobs: - build: - name: build and push - runs-on: ubuntu-20.04 - permissions: - packages: write - contents: read - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - uses: taiki-e/install-action@cross - - name: Log in to Docker - run: | - echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io --username ${DOCKER_USERNAME} --password-stdin - - name: Set up Docker builder - run: | - docker run --privileged --rm tonistiigi/binfmt --install arm64,amd64 - docker buildx create --use --name cross-builder - - name: Build and push the git-sha-tagged reth image - run: make PROFILE=maxperf GIT_SHA=$GIT_SHA docker-build-push-git-sha - - name: Build and push the git-sha-tagged op-reth image - run: make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME GIT_SHA=$GIT_SHA PROFILE=maxperf op-docker-build-push-git-sha diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index 7b6f0d51e9c9..000000000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Publishes the Docker image. - -name: docker - -on: - push: - tags: - - v* - -env: - REPO_NAME: ${{ github.repository_owner }}/reth - IMAGE_NAME: ${{ github.repository_owner }}/reth - OP_IMAGE_NAME: ${{ github.repository_owner }}/op-reth - CARGO_TERM_COLOR: always - DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/reth - OP_DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/op-reth - DOCKER_USERNAME: ${{ github.actor }} - -jobs: - build: - name: build and push - runs-on: ubuntu-20.04 - permissions: - packages: write - contents: read - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - uses: taiki-e/install-action@cross - - name: Log in to Docker - run: | - echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io --username ${DOCKER_USERNAME} --password-stdin - - name: Set up Docker builder - run: | - docker run --privileged --rm tonistiigi/binfmt --install arm64,amd64 - docker buildx create --use --name cross-builder - - name: Build and push reth image, tag as "latest" - run: make PROFILE=maxperf docker-build-push-latest - - name: Build and push reth image - run: make PROFILE=maxperf docker-build-push - - name: Build and push op-reth image, tag as "latest" - run: make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push-latest - - name: Build and push op-reth image - run: make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push diff --git a/.github/workflows/hive.yml b/.github/workflows/hive.yml deleted file mode 100644 index 334df715a263..000000000000 --- a/.github/workflows/hive.yml +++ /dev/null @@ -1,232 +0,0 @@ -# Runs `ethereum/hive` tests. - -name: hive - -on: - workflow_dispatch: - schedule: - # run every 12 hours - - cron: "0 */12 * * *" - -env: - CARGO_TERM_COLOR: always - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -jobs: - prepare-reth: - uses: ./.github/workflows/prepare-reth.yml - with: - image_tag: ghcr.io/paradigmxyz/reth:latest - binary_name: reth - - prepare-hive: - if: github.repository == 'paradigmxyz/reth' - timeout-minutes: 45 - runs-on: - group: Reth - steps: - - uses: actions/checkout@v4 - - name: Checkout hive tests - uses: actions/checkout@v4 - with: - repository: ethereum/hive - ref: master - path: hivetests - - - uses: actions/setup-go@v5 - with: - go-version: "^1.13.1" - - run: go version - - - name: Build hive assets - run: .github/assets/hive/build_simulators.sh - - - name: Upload hive assets - uses: actions/upload-artifact@v4 - with: - name: hive_assets - path: ./hive_assets - test: - timeout-minutes: 60 - strategy: - fail-fast: false - matrix: - # ethereum/rpc to be deprecated: - # https://github.com/ethereum/hive/pull/1117 - scenario: - - sim: smoke/genesis - - sim: smoke/network - - sim: ethereum/sync - - sim: devp2p - limit: discv4 - - sim: devp2p - limit: eth - include: - # status - - TestStatus - # get block headers - - TestGetBlockHeaders - - TestSimultaneousRequests - - TestSameRequestID - - TestZeroRequestID - # get block bodies - - TestGetBlockBodies - # malicious handshakes + status - - TestMaliciousHandshake - - TestMaliciousStatus - # test transactions - - TestLargeTxRequest - - TestTransaction - - TestInvalidTxs - - TestNewPooledTxs - - TestBlobViolations - - sim: ethereum/engine - limit: engine-exchange-capabilities - - sim: ethereum/engine - limit: engine-withdrawals - - sim: ethereum/engine - limit: engine-auth - - sim: ethereum/engine - limit: engine-api - - sim: ethereum/engine - limit: cancun - # eth_ rpc methods - - sim: ethereum/rpc-compat - include: - - eth_blockNumber - - eth_call - - eth_chainId - - eth_createAccessList - - eth_estimateGas - - eth_feeHistory - - eth_getBalance - - eth_getBlockBy - - eth_getBlockTransactionCountBy - - eth_getCode - - eth_getProof - - eth_getStorage - - eth_getTransactionBy - - eth_getTransactionCount - - eth_getTransactionReceipt - - eth_sendRawTransaction - - eth_syncing - # debug_ rpc methods - - debug_ - # Pyspec cancun jobs - # TODO: uncomment when https://github.com/ethereum/hive/issues/1147 is fixed - #- sim: pyspec - # include: [cancun/eip4844] - #- sim: pyspec - # include: [cancun/eip4788] - #- sim: pyspec - # include: [cancun/eip6780] - #- sim: pyspec - # include: [cancun/eip5656] - #- sim: pyspec - # include: [cancun/eip1153] - #- sim: pyspec - # include: [cancun/eip7516] - # Pyspec shanghai jobs - #- sim: pyspec - # include: [shanghai/eip3651] - #- sim: pyspec - # include: [shanghai/eip3855] - #- sim: pyspec - # include: [shanghai/eip3860] - #- sim: pyspec - # include: [shanghai/eip4895] - # Pyspec merge and earlier jobs - #- sim: pyspec - # include: [merge/] - #- sim: pyspec - # include: [berlin/] - #- sim: pyspec - # include: [istanbul/] - #- sim: pyspec - # include: [homestead/] - #- sim: pyspec - # include: [frontier/] - needs: - - prepare-reth - - prepare-hive - name: run ${{ matrix.scenario.sim }}${{ matrix.scenario.limit && format(' - {0}', matrix.scenario.limit) }} - runs-on: - group: Reth - permissions: - issues: write - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Download hive assets - uses: actions/download-artifact@v4 - with: - name: hive_assets - path: /tmp - - - name: Download reth image - uses: actions/download-artifact@v4 - with: - name: artifacts - path: /tmp - - - name: Load Docker images - run: .github/assets/hive/load_images.sh - - - name: Move hive binary - run: | - mv /tmp/hive /usr/local/bin - chmod +x /usr/local/bin/hive - - - name: Checkout hive tests - uses: actions/checkout@v4 - with: - repository: ethereum/hive - ref: master - path: hivetests - - - name: Run simulator - run: | - LIMIT="${{ matrix.scenario.limit }}" - TESTS="${{ join(matrix.scenario.include, '|') }}" - if [ -n "$LIMIT" ] && [ -n "$TESTS" ]; then - FILTER="$LIMIT/$TESTS" - elif [ -n "$LIMIT" ]; then - FILTER="$LIMIT" - elif [ -n "$TESTS" ]; then - FILTER="/$TESTS" - else - FILTER="/" - fi - echo "filter: $FILTER" - .github/assets/hive/run_simulator.sh "${{ matrix.scenario.sim }}" "$FILTER" - - - name: Parse hive output - run: | - find hivetests/workspace/logs -type f -name "*.json" ! -name "hive.json" | xargs -I {} python .github/assets/hive/parse.py {} --exclusion .github/assets/hive/expected_failures.yaml - - - name: Print simulator output - if: ${{ failure() }} - run: | - cat hivetests/workspace/logs/*simulator*.log - - - name: Print reth client logs - if: ${{ failure() }} - run: | - cat hivetests/workspace/logs/reth/client-*.log - notify-on-error: - needs: test - if: failure() - runs-on: - group: Reth - steps: - - name: Slack Webhook Action - uses: rtCamp/action-slack-notify@v2 - env: - SLACK_COLOR: ${{ job.status }} - SLACK_MESSAGE: "Failed run: https://github.com/paradigmxyz/reth/actions/runs/${{ github.run_id }}" - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 82bd5705a320..776b4b3ace7e 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -19,13 +19,15 @@ concurrency: jobs: test: name: test / ${{ matrix.network }} - runs-on: - group: Reth + runs-on: ubuntu-latest env: RUST_BACKTRACE: 1 strategy: matrix: - network: ["ethereum", "optimism"] + network: [ + #"ethereum", + "optimism" + ] timeout-minutes: 60 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/kurtosis-op.yml b/.github/workflows/kurtosis-op.yml index 85a8e706c6eb..5a6d65941ee8 100644 --- a/.github/workflows/kurtosis-op.yml +++ b/.github/workflows/kurtosis-op.yml @@ -4,9 +4,6 @@ name: kurtosis-op on: workflow_dispatch: - schedule: - # run every 12 hours - - cron: "0 */12 * * *" env: CARGO_TERM_COLOR: always @@ -29,8 +26,7 @@ jobs: strategy: fail-fast: false name: run kurtosis - runs-on: - group: Reth + runs-on: ubuntu-latest needs: - prepare-reth steps: @@ -84,8 +80,7 @@ jobs: notify-on-error: needs: test if: failure() - runs-on: - group: Reth + runs-on: ubuntu-latest steps: - name: Slack Webhook Action uses: rtCamp/action-slack-notify@v2 diff --git a/.github/workflows/kurtosis.yml b/.github/workflows/kurtosis.yml deleted file mode 100644 index ab0c95939c8e..000000000000 --- a/.github/workflows/kurtosis.yml +++ /dev/null @@ -1,67 +0,0 @@ -# Runs `assertoor` tests on a `kurtosis` testnet. - -name: kurtosis - -on: - workflow_dispatch: - schedule: - # run every 12 hours - - cron: "0 */12 * * *" - -env: - CARGO_TERM_COLOR: always - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -jobs: - prepare-reth: - uses: ./.github/workflows/prepare-reth.yml - with: - image_tag: ghcr.io/paradigmxyz/reth:kurtosis-ci - binary_name: reth - - test: - timeout-minutes: 60 - strategy: - fail-fast: false - name: run kurtosis - runs-on: - group: Reth - needs: - - prepare-reth - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Download reth image - uses: actions/download-artifact@v4 - with: - name: artifacts - path: /tmp - - - name: Load Docker image - run: | - docker load -i /tmp/reth_image.tar & - wait - docker image ls -a - - - name: Run kurtosis - uses: ethpandaops/kurtosis-assertoor-github-action@v1 - with: - ethereum_package_args: '.github/assets/kurtosis_network_params.yaml' - - notify-on-error: - needs: test - if: failure() - runs-on: - group: Reth - steps: - - name: Slack Webhook Action - uses: rtCamp/action-slack-notify@v2 - env: - SLACK_COLOR: ${{ job.status }} - SLACK_MESSAGE: "Failed run: https://github.com/paradigmxyz/reth/actions/runs/${{ github.run_id }}" - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml deleted file mode 100644 index 07727173531b..000000000000 --- a/.github/workflows/label-pr.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Label PRs - -on: - pull_request: - types: [opened] - -jobs: - label_prs: - runs-on: ubuntu-latest - permissions: - issues: write - pull-requests: write - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Label PRs - uses: actions/github-script@v7 - with: - script: | - const label_pr = require('./.github/assets/label_pr.js') - await label_pr({github, context}) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 418fd4cc4e68..f409206e5290 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -17,9 +17,9 @@ jobs: strategy: matrix: include: - - type: ethereum - args: --bin reth --workspace --lib --examples --tests --benches --locked - features: "ethereum asm-keccak jemalloc jemalloc-prof min-error-logs min-warn-logs min-info-logs min-debug-logs min-trace-logs" + #- type: ethereum + # args: --bin reth --workspace --lib --examples --tests --benches --locked + # features: "ethereum asm-keccak jemalloc jemalloc-prof min-error-logs min-warn-logs min-info-logs min-debug-logs min-trace-logs" - type: optimism args: --bin op-reth --workspace --lib --examples --tests --benches --locked features: "optimism asm-keccak jemalloc jemalloc-prof min-error-logs min-warn-logs min-info-logs min-debug-logs min-trace-logs" @@ -111,8 +111,8 @@ jobs: strategy: matrix: include: - - binary: reth - network: ethereum + #- binary: reth + # network: ethereum - binary: op-reth network: optimism steps: diff --git a/.github/workflows/prepare-reth.yml b/.github/workflows/prepare-reth.yml index 1b5f0e70cc96..cceaea9a5185 100644 --- a/.github/workflows/prepare-reth.yml +++ b/.github/workflows/prepare-reth.yml @@ -24,10 +24,9 @@ on: jobs: prepare-reth: - if: github.repository == 'paradigmxyz/reth' + if: github.repository == 'ethereum-optimism/op-reth' timeout-minutes: 45 - runs-on: - group: Reth + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: mkdir artifacts diff --git a/.github/workflows/release-dist.yml b/.github/workflows/release-dist.yml deleted file mode 100644 index f7df80e81f9f..000000000000 --- a/.github/workflows/release-dist.yml +++ /dev/null @@ -1,20 +0,0 @@ -# This workflow auto-publishes Reth to external package managers such as -# Homebrew when a release is published. - -name: release externally - -on: - release: - types: [published] - -jobs: - release-homebrew: - runs-on: ubuntu-latest - steps: - - name: Update Homebrew formula - uses: dawidd6/action-homebrew-bump-formula@v4 - with: - token: ${{ secrets.HOMEBREW }} - no_fork: true - tap: paradigmxyz/brew - formula: reth diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 5735ae6ef528..000000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,197 +0,0 @@ -# This workflow is modified from Lighthouse: -# https://github.com/sigp/lighthouse/blob/441fc1691b69f9edc4bbdc6665f3efab16265c9b/.github/workflows/release.yml - -name: release - -on: - push: - tags: - - v* - -env: - REPO_NAME: ${{ github.repository_owner }}/reth - OP_IMAGE_NAME: ${{ github.repository_owner }}/op-reth - IMAGE_NAME: ${{ github.repository_owner }}/reth - CARGO_TERM_COLOR: always - -jobs: - extract-version: - name: extract version - runs-on: ubuntu-latest - steps: - - name: Extract version - run: echo "VERSION=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_OUTPUT - id: extract_version - outputs: - VERSION: ${{ steps.extract_version.outputs.VERSION }} - - build: - name: build release - runs-on: ${{ matrix.configs.os }} - needs: extract-version - strategy: - matrix: - configs: - - target: x86_64-unknown-linux-gnu - os: ubuntu-20.04 - profile: maxperf - - target: aarch64-unknown-linux-gnu - os: ubuntu-20.04 - profile: maxperf - - target: x86_64-apple-darwin - os: macos-13 - profile: maxperf - - target: aarch64-apple-darwin - os: macos-14 - profile: maxperf - - target: x86_64-pc-windows-gnu - os: ubuntu-20.04 - profile: maxperf - build: - - command: build - binary: reth - - command: op-build - binary: op-reth - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - target: ${{ matrix.configs.target }} - - uses: taiki-e/install-action@cross - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - - name: Apple M1 setup - if: matrix.configs.target == 'aarch64-apple-darwin' - run: | - echo "SDKROOT=$(xcrun -sdk macosx --show-sdk-path)" >> $GITHUB_ENV - echo "MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx --show-sdk-platform-version)" >> $GITHUB_ENV - - - name: Build Reth - run: make PROFILE=${{ matrix.configs.profile }} ${{ matrix.build.command }}-${{ matrix.configs.target }} - - name: Move binary - run: | - mkdir artifacts - [[ "${{ matrix.configs.target }}" == *windows* ]] && ext=".exe" - mv "target/${{ matrix.configs.target }}/${{ matrix.configs.profile }}/${{ matrix.build.binary }}${ext}" ./artifacts - - - name: Configure GPG and create artifacts - env: - GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - run: | - export GPG_TTY=$(tty) - echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --batch --import - cd artifacts - tar -czf ${{ matrix.build.binary }}-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}.tar.gz ${{ matrix.build.binary }}* - echo "$GPG_PASSPHRASE" | gpg --passphrase-fd 0 --pinentry-mode loopback --batch -ab ${{ matrix.build.binary }}-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}.tar.gz - mv *tar.gz* .. - shell: bash - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.build.binary }}-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}.tar.gz - path: ${{ matrix.build.binary }}-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}.tar.gz - - - name: Upload signature - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.build.binary }}-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}.tar.gz.asc - path: ${{ matrix.build.binary }}-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}.tar.gz.asc - - draft-release: - name: draft release - needs: [build, extract-version] - runs-on: ubuntu-latest - env: - VERSION: ${{ needs.extract-version.outputs.VERSION }} - permissions: - # Required to post the release - contents: write - steps: - # This is necessary for generating the changelog. - # It has to come before "Download Artifacts" or else it deletes the artifacts. - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Download artifacts - uses: actions/download-artifact@v4 - - name: Generate full changelog - id: changelog - run: | - echo "CHANGELOG<> $GITHUB_OUTPUT - echo "$(git log --pretty=format:"- %s" $(git describe --tags --abbrev=0 ${{ env.VERSION }}^)..${{ env.VERSION }})" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - name: Create release draft - env: - GITHUB_USER: ${{ github.repository_owner }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # The formatting here is borrowed from Lighthouse (which is borrowed from OpenEthereum): - # https://github.com/openethereum/openethereum/blob/6c2d392d867b058ff867c4373e40850ca3f96969/.github/workflows/build.yml - run: | - body=$(cat <<- "ENDBODY" - ![image](https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-prod.png) - - ## Testing Checklist (DELETE ME) - - - [ ] Run on testnet for 1-3 days. - - [ ] Resync a mainnet node. - - [ ] Ensure all CI checks pass. - - ## Release Checklist (DELETE ME) - - - [ ] Ensure all crates have had their versions bumped. - - [ ] Write the summary. - - [ ] Fill out the update priority. - - [ ] Ensure all binaries have been added. - - [ ] Prepare release posts (Twitter, ...). - - ## Summary - - Add a summary, including: - - - Critical bug fixes - - New features - - Any breaking changes (and what to expect) - - ## Update Priority - - This table provides priorities for which classes of users should update particular components. - - | User Class | Priority | - |----------------------|-----------------| - | Payload Builders | | - | Non-Payload Builders | | - - *See [Update Priorities](https://paradigmxyz.github.io/reth/installation/priorities.html) for more information about this table.* - - ## All Changes - - ${{ steps.changelog.outputs.CHANGELOG }} - - ## Binaries - - [See pre-built binaries documentation.](https://paradigmxyz.github.io/reth/installation/binaries.html) - - The binaries are signed with the PGP key: `50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E` - - | System | Architecture | Binary | PGP Signature | - |:---:|:---:|:---:|:---| - | | x86_64 | [reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz.asc) | - | | aarch64 | [reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz.asc) | - | | x86_64 | [reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz.asc) | - | | x86_64 | [reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz.asc) | - | | aarch64 | [reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz.asc) | - | | | | | - | **System** | **Option** | - | **Resource** | - | | Docker | | [${{ env.IMAGE_NAME }}](https://github.com/paradigmxyz/reth/pkgs/container/reth) | - ENDBODY - ) - assets=() - for asset in ./*reth-*.tar.gz*; do - assets+=("$asset/$asset") - done - tag_name="${{ env.VERSION }}" - echo "$body" | gh release create --draft -t "Reth $tag_name" -F "-" "$tag_name" "${assets[@]}" diff --git a/.github/workflows/stage.yml b/.github/workflows/stage.yml deleted file mode 100644 index 60ffa8f73d72..000000000000 --- a/.github/workflows/stage.yml +++ /dev/null @@ -1,72 +0,0 @@ -# Runs all `stage run` commands. - -name: stage-test - -on: - pull_request: - merge_group: - push: - branches: [ main ] - -env: - CARGO_TERM_COLOR: always - FROM_BLOCK: 0 - TO_BLOCK: 50000 - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -jobs: - stage: - name: stage-run-test - # Only run stage commands test in merge groups - if: github.event_name == 'merge_group' - runs-on: - group: Reth - env: - RUST_LOG: info,sync=error - RUST_BACKTRACE: 1 - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: Build reth - run: | - cargo install --features asm-keccak,jemalloc --path bin/reth - - name: Run headers stage - run: | - reth stage run headers --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints - - name: Run bodies stage - run: | - reth stage run bodies --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints - - name: Run senders stage - run: | - reth stage run senders --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints - - name: Run execution stage - run: | - reth stage run execution --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints - - name: Run account-hashing stage - run: | - reth stage run account-hashing --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints - - name: Run storage hashing stage - run: | - reth stage run storage-hashing --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints - - name: Run hashing stage - run: | - reth stage run hashing --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints - - name: Run merkle stage - run: | - reth stage run merkle --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints - - name: Run transaction lookup stage - run: | - reth stage run tx-lookup --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints - - name: Run account history stage - run: | - reth stage run account-history --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints - - name: Run storage history stage - run: | - reth stage run storage-history --from ${{ env.FROM_BLOCK }} --to ${{ env.TO_BLOCK }} --commit --checkpoints diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index 531d04b2e489..fb246a981a5c 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -3,7 +3,7 @@ name: sync test on: - merge_group: + workflow_dispatch: env: CARGO_TERM_COLOR: always @@ -15,8 +15,7 @@ concurrency: jobs: sync: name: sync (${{ matrix.chain.bin }}) - runs-on: - group: Reth + runs-on: ubuntu-latest env: RUST_LOG: info,sync=error RUST_BACKTRACE: 1 @@ -24,12 +23,12 @@ jobs: strategy: matrix: chain: - - build: install - bin: reth - chain: mainnet - tip: "0x91c90676cab257a59cd956d7cb0bceb9b1a71d79755c23c7277a0697ccfaf8c4" - block: 100000 - unwind-target: "0x52e0509d33a988ef807058e2980099ee3070187f7333aae12b64d4d675f34c5a" + #- build: install + # bin: reth + # chain: mainnet + # tip: "0x91c90676cab257a59cd956d7cb0bceb9b1a71d79755c23c7277a0697ccfaf8c4" + # block: 100000 + # unwind-target: "0x52e0509d33a988ef807058e2980099ee3070187f7333aae12b64d4d675f34c5a" - build: install-op bin: op-reth chain: base diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index 4c927df8be00..99d6221dacbf 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -19,21 +19,20 @@ concurrency: jobs: test: name: test / ${{ matrix.type }} (${{ matrix.partition }}/${{ matrix.total_partitions }}) - runs-on: - group: Reth + runs-on: ubuntu-latest env: RUST_BACKTRACE: 1 strategy: matrix: include: - - type: ethereum - args: --features "asm-keccak ethereum" --locked - partition: 1 - total_partitions: 2 - - type: ethereum - args: --features "asm-keccak ethereum" --locked - partition: 2 - total_partitions: 2 + #- type: ethereum + # args: --features "asm-keccak ethereum" --locked + # partition: 1 + # total_partitions: 2 + #- type: ethereum + # args: --features "asm-keccak ethereum" --locked + # partition: 2 + # total_partitions: 2 - type: optimism args: --features "asm-keccak optimism" --locked --exclude reth --exclude reth-bench --exclude "example-*" --exclude "reth-ethereum-*" --exclude "*-ethereum" partition: 1 @@ -68,8 +67,8 @@ jobs: state: name: Ethereum state tests - runs-on: - group: Reth + if: false + runs-on: ubuntu-latest env: RUST_LOG: info,sync=error RUST_BACKTRACE: 1 @@ -93,14 +92,16 @@ jobs: doc: name: doc tests (${{ matrix.network }}) - runs-on: - group: Reth + runs-on: ubuntu-latest env: RUST_BACKTRACE: 1 timeout-minutes: 30 strategy: matrix: - network: ["ethereum", "optimism"] + network: [ + #"ethereum", + "optimism" + ] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable @@ -114,7 +115,11 @@ jobs: name: unit success runs-on: ubuntu-latest if: always() - needs: [test, state, doc] + needs: [ + test, + #state, + doc + ] timeout-minutes: 30 steps: - name: Decide whether the needed jobs succeeded or failed diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 03c491b368a6..765b04df2d64 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -6,27 +6,27 @@ on: push: branches: [main] pull_request: - branches: [main] + branches: [optimism] merge_group: jobs: - check-reth: - runs-on: ubuntu-20.04 - timeout-minutes: 60 + #check-reth: + # runs-on: ubuntu-20.04 + # timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - target: x86_64-pc-windows-gnu - - uses: taiki-e/install-action@cross - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: mingw-w64 - run: sudo apt-get install -y mingw-w64 - - name: Check Reth - run: cargo check --target x86_64-pc-windows-gnu + # steps: + # - uses: actions/checkout@v4 + # - uses: dtolnay/rust-toolchain@stable + # with: + # target: x86_64-pc-windows-gnu + # - uses: taiki-e/install-action@cross + # - uses: Swatinem/rust-cache@v2 + # with: + # cache-on-failure: true + # - name: mingw-w64 + # run: sudo apt-get install -y mingw-w64 + # - name: Check Reth + # run: cargo check --target x86_64-pc-windows-gnu check-op-reth: runs-on: ubuntu-20.04