Merge pull request #4 from ultrasoundmoney/relayer-performance-measuring #12
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |