Skip to content

Merge pull request #4 from ultrasoundmoney/relayer-performance-measuring #12

Merge pull request #4 from ultrasoundmoney/relayer-performance-measuring

Merge pull request #4 from ultrasoundmoney/relayer-performance-measuring #12

Workflow file for this run

name: Go
on:
push:
branches: [ main ]
pull_request:
env:
CGO_CFLAGS_ALLOW: "-O -D__BLST_PORTABLE__"
CGO_CFLAGS: "-O -D__BLST_PORTABLE__"
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ^1.20
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Install golangci-lint
run: go install github.com/golangci/golangci-lint/cmd/[email protected]
- name: Lint
run: make lint
- name: Ensure go mod tidy runs without changes
run: |
go mod tidy
git diff-index HEAD
git diff-index --quiet HEAD
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v3
with:
go-version: ^1.20
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Test
run: go test ./core ./miner/... ./internal/ethapi/... ./les/... ./builder/... ./eth/block-validation/... --run "TestValidateBuilderSubmissionV2"
- name: Build
run: make geth
e2e:
name: End to End
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v3
with:
go-version: ^1.20
id: go
- name: Use Node.js 12.x
uses: actions/setup-node@v1
with:
node-version: 12.x
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Build
run: make geth
- name: Check out the e2e code repo
uses: actions/checkout@v2
with:
repository: flashbots/mev-geth-demo
ref: no-megabundles
path: e2e
- run: cd e2e && yarn install
- name: Run single node e2e
run: |
cd e2e
GETH=`pwd`/../build/bin/geth ./run.sh &
sleep 15
yarn run demo-simple
yarn run e2e-reverting-bundles
yarn run demo-contract
pkill -9 geth || true
- name: Run private tx with two nodes
run: |
cd e2e
GETH=`pwd`/../build/bin/geth ./run.sh &
# Second node, not mining
P2P_PORT=30302 DATADIR=datadir2 HTTP_PORT=8546 AUTH_PORT=8552 MINER_ARGS='--nodiscover' GETH=`pwd`/../build/bin/geth ./run.sh &
sleep 15
DATADIR1=datadir DATADIR2=datadir2 GETH=`pwd`/../build/bin/geth ./peer_nodes.sh
sleep 15
yarn run demo-private-tx
pkill -9 geth || true
docker:
runs-on: ubuntu-latest
needs: [build, lint, e2e]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: alextes
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract short SHA
run: echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c 1-7)" >> $GITHUB_ENV
- name: Build (without push)
uses: docker/build-push-action@v4
if: github.event_name == 'pull_request'
with:
context: .
push: false
tags: |
ultrasoundorg/builder:${{ env.SHORT_SHA }}
ultrasoundorg/builder:latest
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build and push
uses: docker/build-push-action@v4
if: github.event_name == 'push'
with:
context: .
push: true
tags: |
ultrasoundorg/builder:${{ env.SHORT_SHA }}
ultrasoundorg/builder:latest
cache-from: type=gha
cache-to: type=gha,mode=max