-
Notifications
You must be signed in to change notification settings - Fork 28
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
17 changed files
with
729 additions
and
56 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
## 📝 Summary | ||
|
||
<!--- A general summary of your changes --> | ||
|
||
## ⛱ Motivation and Context | ||
|
||
<!--- Why is this change required? What problem does it solve? --> | ||
|
||
## 📚 References | ||
|
||
<!-- Any interesting external links to documentation, articles, tweets which add value to the PR --> | ||
|
||
--- | ||
|
||
## ✅ I have run these commands | ||
|
||
* [ ] `make lint` | ||
* [ ] `make test` | ||
* [ ] `go mod tidy` |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
name: Checks | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
|
||
jobs: | ||
test: | ||
name: Test | ||
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: Run unit tests and generate the coverage report | ||
run: make test-race | ||
|
||
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 gofumpt | ||
run: go install mvdan.cc/[email protected] | ||
|
||
- name: Install staticcheck | ||
run: go install honnef.co/go/tools/cmd/[email protected] | ||
|
||
- 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 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# name: Release | ||
|
||
# on: | ||
# push: | ||
# tags: | ||
# - 'v*' | ||
|
||
# jobs: | ||
# docker-image: | ||
# name: Publish Docker Image | ||
# runs-on: ubuntu-latest | ||
|
||
# steps: | ||
# - name: Checkout sources | ||
# uses: actions/checkout@v2 | ||
|
||
# - name: Set tag version | ||
# id: vars | ||
# run: echo ::set-output name=tag::${GITHUB_REF#refs/*/} | ||
|
||
# - name: Set up QEMU | ||
# uses: docker/setup-qemu-action@v2 | ||
|
||
# - name: Set up Docker Buildx | ||
# uses: docker/setup-buildx-action@v2 | ||
|
||
# - name: Login to DockerHub | ||
# uses: docker/login-action@v2 | ||
# with: | ||
# username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
# password: ${{ secrets.DOCKERHUB_TOKEN }} | ||
|
||
# - name: Build and push | ||
# uses: docker/build-push-action@v3 | ||
# with: | ||
# push: true | ||
# tags: flashbots/mev-boost:latest,flashbots/mev-boost:${{ steps.vars.outputs.tag }} | ||
# platforms: linux/amd64,linux/arm64 | ||
|
||
|
||
# github-release: | ||
# runs-on: ubuntu-latest | ||
# steps: | ||
# - name: Checkout sources | ||
# uses: actions/checkout@v2 | ||
|
||
# - name: Create release | ||
# id: create_release | ||
# uses: actions/create-release@v1 | ||
# env: | ||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | ||
# with: | ||
# tag_name: ${{ github.ref }} | ||
# release_name: ${{ github.ref }} | ||
# draft: false | ||
# prerelease: false |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Binaries for programs and plugins | ||
*.exe | ||
*.exe~ | ||
*.dll | ||
*.so | ||
*.dylib | ||
|
||
# Test binary, built with `go test -c` | ||
*.test | ||
|
||
# Output of the go coverage tool, specifically when used with LiteIDE | ||
*.out | ||
|
||
# Dependency directories (remove the comment below to include it) | ||
# vendor/ | ||
/out |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
linters: | ||
enable-all: true | ||
disable: | ||
- cyclop | ||
- forbidigo | ||
- funlen | ||
- gochecknoglobals | ||
- gochecknoinits | ||
- gocritic | ||
- godot | ||
- godox | ||
- gomnd | ||
- lll | ||
- nestif | ||
- nilnil | ||
- nlreturn | ||
- noctx | ||
- nonamedreturns | ||
- nosnakecase | ||
- paralleltest | ||
- revive | ||
- testpackage | ||
- unparam | ||
- varnamelen | ||
- wrapcheck | ||
- wsl | ||
- deadcode | ||
- varcheck | ||
|
||
# | ||
# Disabled because of generics: | ||
# | ||
- contextcheck | ||
- rowserrcheck | ||
- sqlclosecheck | ||
- structcheck | ||
- wastedassign | ||
|
||
# | ||
# Disabled because deprecated: | ||
# | ||
- exhaustivestruct | ||
- golint | ||
- ifshort | ||
- interfacer | ||
- maligned | ||
- scopelint | ||
|
||
linters-settings: | ||
# | ||
# The G108 rule throws a false positive. We're not actually vulnerable. If | ||
# you're not careful the profiling endpoint is automatically exposed on | ||
# /debug/pprof if you import net/http/pprof. See this link: | ||
# | ||
# https://mmcloughlin.com/posts/your-pprof-is-showing | ||
# | ||
gosec: | ||
excludes: | ||
- G108 | ||
|
||
tagliatelle: | ||
case: | ||
rules: | ||
json: snake | ||
|
||
gofumpt: | ||
extra-rules: true | ||
|
||
exhaustruct: | ||
exclude: | ||
# | ||
# Because it's easier to read without the other fields. | ||
# | ||
- 'GetPayloadsFilters' | ||
|
||
# | ||
# Structures outside our control that have a ton of settings. It doesn't | ||
# make sense to specify all of the fields. | ||
# | ||
- 'cobra.Command' | ||
- 'database.*Entry' | ||
- 'http.Server' | ||
- 'logrus.*Formatter' | ||
- 'Options' # redis | ||
|
||
# | ||
# Excluded because there are private fields (not capitalized) that are | ||
# not initialized. If possible, I think these should be altered. | ||
# | ||
- 'Datastore' | ||
- 'Housekeeper' | ||
- 'MockBeaconClient' | ||
- 'RelayAPI' | ||
- 'Webserver' |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# syntax=docker/dockerfile:1 | ||
FROM golang:1.20 as builder | ||
ARG VERSION | ||
WORKDIR /build | ||
ADD . /build/ | ||
RUN --mount=type=cache,target=/root/.cache/go-build CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags "-s -X main.version=${VERSION}" -v -o your-project main.go | ||
|
||
FROM alpine:latest | ||
WORKDIR /app | ||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ | ||
COPY --from=builder /build/your-project /app/your-project | ||
ENV LISTEN_ADDR=":8080" | ||
EXPOSE 8080 | ||
CMD ["/app/your-project"] |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
VERSION := $(shell git describe --tags --always --dirty="-dev") | ||
|
||
all: clean build | ||
|
||
v: | ||
@echo "Version: ${VERSION}" | ||
|
||
clean: | ||
rm -rf build/ out/ | ||
|
||
build: | ||
go build -trimpath -ldflags "-X main.version=${VERSION}" -v -o your-project main.go | ||
|
||
test: | ||
go test ./... | ||
|
||
test-race: | ||
go test -race ./... | ||
|
||
lint: | ||
gofmt -d -s . | ||
gofumpt -d -extra . | ||
go vet ./... | ||
staticcheck ./... | ||
golangci-lint run | ||
|
||
fmt: | ||
gofmt -s -w . | ||
gofumpt -extra -w . | ||
gci write . | ||
go mod tidy | ||
|
||
lt: lint test | ||
|
||
gofumpt: | ||
gofumpt -l -w -extra . | ||
|
||
cover: | ||
go test -coverprofile=/tmp/go-sim-lb.cover.tmp ./... | ||
go tool cover -func /tmp/go-sim-lb.cover.tmp | ||
unlink /tmp/go-sim-lb.cover.tmp | ||
|
||
cover-html: | ||
go test -coverprofile=/tmp/go-sim-lb.cover.tmp ./... | ||
go tool cover -html=/tmp/go-sim-lb.cover.tmp | ||
unlink /tmp/go-sim-lb.cover.tmp | ||
|
||
docker-image: | ||
DOCKER_BUILDKIT=1 docker build --platform linux/amd64 --build-arg VERSION=${VERSION} . -t your-project |
Oops, something went wrong.