Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/assets/hive/expected_failures.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ engine-api: []
# no fix due to https://github.com/paradigmxyz/reth/issues/8732
engine-cancun:
- Invalid PayloadAttributes, Missing BeaconRoot, Syncing=True (Cancun) (reth)
- Invalid NewPayload, ExcessBlobGas, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)

sync: []

Expand Down
1 change: 1 addition & 0 deletions .github/assets/kurtosis_op_network_params.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ ethereum_package:
el_extra_params:
- "--rpc.eth-proof-window=100"
cl_type: teku
cl_image: "consensys/teku:25.4.0"
network_params:
preset: minimal
genesis_delay: 5
Expand Down
57 changes: 57 additions & 0 deletions .github/workflows/build-release-binaries.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: build release binaries

on:
workflow_dispatch:

env:
CARGO_TERM_COLOR: always

jobs:
build:
name: build release
runs-on: ${{ matrix.configs.os }}
strategy:
matrix:
configs:
- target: x86_64-unknown-linux-gnu
os: ubuntu-24.04
profile: maxperf
- target: aarch64-unknown-linux-gnu
os: ubuntu-24.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-24.04
profile: maxperf
build:
- command: build
binary: reth
- command: op-build
binary: op-reth
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.configs.target }}
- name: Install cross main
id: cross_main
run: |
cargo install cross --git https://github.com/cross-rs/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 }}
52 changes: 10 additions & 42 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- 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
Expand All @@ -16,45 +17,8 @@ env:
DOCKER_USERNAME: ${{ github.actor }}

jobs:
build-rc:
if: contains(github.ref, '-rc')
name: build and push as release candidate
runs-on: ubuntu-24.04
permissions:
packages: write
contents: read
strategy:
fail-fast: false
matrix:
build:
- name: "Build and push reth image"
command: "make IMAGE_NAME=$IMAGE_NAME DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME PROFILE=maxperf docker-build-push"
- name: "Build and push op-reth image"
command: "make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push"
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Install cross main
id: cross_main
run: |
cargo install cross --git https://github.com/cross-rs/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 ${{ matrix.build.name }}
run: ${{ matrix.build.command }}

build:
if: ${{ !contains(github.ref, '-rc') }}
name: build and push as latest
name: build and push
runs-on: ubuntu-24.04
permissions:
packages: write
Expand All @@ -63,10 +27,14 @@ jobs:
fail-fast: false
matrix:
build:
- name: "Build and push reth image"
command: "make IMAGE_NAME=$IMAGE_NAME DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME PROFILE=maxperf docker-build-push-latest"
- name: "Build and push op-reth image"
command: "make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push-latest"
- name: 'Build and push reth image'
command: 'make PROFILE=maxperf docker-build-push'
- name: 'Build and push reth image, tag as "latest"'
command: 'make PROFILE=maxperf docker-build-push-latest'
- name: 'Build and push op-reth image'
command: 'make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push'
- name: 'Build and push op-reth image, tag as "latest"'
command: 'make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push-latest'
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
Expand Down
51 changes: 4 additions & 47 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,56 +43,28 @@ jobs:
outputs:
VERSION: ${{ steps.extract_version.outputs.VERSION }}

check-version:
name: check version
runs-on: ubuntu-latest
needs: extract-version
if: ${{ github.event.inputs.dry_run != 'true' }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Verify crate version matches tag
# Check that the Cargo version starts with the tag,
# so that Cargo version 1.4.8 can be matched against both v1.4.8 and v1.4.8-rc.1
run: |
tag="${{ needs.extract-version.outputs.VERSION }}"
tag=${tag#v}
cargo_ver=$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version')
[[ "$tag" == "$cargo_ver"* ]] || { echo "Tag $tag doesn’t match the Cargo version $cargo_ver"; exit 1; }

build:
name: build release
runs-on: ${{ matrix.configs.os }}
needs: extract-version
continue-on-error: ${{ matrix.configs.allow_fail }}
strategy:
fail-fast: true
matrix:
configs:
- target: x86_64-unknown-linux-gnu
os: ubuntu-24.04
profile: maxperf
allow_fail: false
- target: aarch64-unknown-linux-gnu
os: ubuntu-24.04
profile: maxperf
allow_fail: false
- target: x86_64-apple-darwin
os: macos-13
profile: maxperf
allow_fail: false
- target: aarch64-apple-darwin
os: macos-14
profile: maxperf
allow_fail: false
- target: x86_64-pc-windows-gnu
os: ubuntu-24.04
profile: maxperf
allow_fail: false
- target: riscv64gc-unknown-linux-gnu
os: ubuntu-24.04
profile: maxperf
allow_fail: true
build:
- command: build
binary: reth
Expand Down Expand Up @@ -155,8 +127,8 @@ jobs:

draft-release:
name: draft release
runs-on: ubuntu-latest
needs: [build, extract-version]
runs-on: ubuntu-latest
if: ${{ github.event.inputs.dry_run != 'true' }}
env:
VERSION: ${{ needs.extract-version.outputs.VERSION }}
Expand All @@ -171,24 +143,13 @@ jobs:
fetch-depth: 0
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Generate full changelog
id: changelog
run: |
echo "CHANGELOG<<EOF" >> $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: |
prerelease_flag=""
if [[ "${GITHUB_REF}" == *-rc* ]]; then
prerelease_flag="--prerelease"
fi

body=$(cat <<- "ENDBODY"
![image](https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-prod.png)

Expand Down Expand Up @@ -225,10 +186,6 @@ jobs:

*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)
Expand Down Expand Up @@ -263,12 +220,12 @@ jobs:
assets+=("$asset/$asset")
done
tag_name="${{ env.VERSION }}"
echo "$body" | gh release create --draft $prerelease_flag -t "Reth $tag_name" -F "-" "$tag_name" "${assets[@]}"
echo "$body" | gh release create --draft -t "Reth $tag_name" -F "-" "$tag_name" "${assets[@]}"

dry-run-summary:
name: dry run summary
runs-on: ubuntu-latest
needs: [build, extract-version]
runs-on: ubuntu-latest
if: ${{ github.event.inputs.dry_run == 'true' }}
env:
VERSION: ${{ needs.extract-version.outputs.VERSION }}
Expand All @@ -285,4 +242,4 @@ jobs:
echo "- A draft release would be created"
echo ""
echo "### Next Steps"
echo "To perform a real release, push a git tag."
echo "To perform a real release, push a git tag."
Loading
Loading