Skip to content

Commit

Permalink
Merge jbowen93/evmos into celestiaorg/evmos (#32)
Browse files Browse the repository at this point in the history
* Initial Optimint integration

* Makefile: use go install instead of go get

* Update evmosd invocation

* Update ethermint to get latest optimint-enabled version

* Add docker files to work with ephemeral cluster

* update init and copy it into docker container

* update init.sh and use in entrypoint.sh

* update optimint and ethermint dependencies

* Add docker files to work with ephemeral cluster

* update gh action to create debug image

* convert build script to gh action

* go mod tidy -compat=1.17 -e

* debug and non debug builds using meta tags

* use multi platform builds

* add qemu to debug

* update to use ethermint w/ optimint v0.1.2

* update docker/Dockerfile to cross compile

* update docker/debug.Dockerfile to cross compile

* use celestiaorg/ethermint v0.11.0+0.1.0-test

* move debug build to its own action, create docker build and test action

Co-authored-by: Tomasz Zdybał <tomek@zdybal.lap.pl>
  • Loading branch information
jbowen93 and tzdybal authored Mar 30, 2022
1 parent eb2822f commit 1e2e027
Show file tree
Hide file tree
Showing 12 changed files with 959 additions and 61 deletions.
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ client/docs/* linguist-documentation
docs/* linguist-documentation
x/**/spec/* linguist-documentation
**/*.pb.go linguist-generated
**/*.pb.gw.go linguist-generated
**/*.pb.gw.go linguist-generated
Original file line number Diff line number Diff line change
@@ -1,26 +1,36 @@
name: "docker-build"
name: docker-build-debug

on:
push:
branches:
- "main"
- '**'
tags:
- 'v*.*.*'
pull_request:
branches:
- 'main'
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
docker-build:
build:
runs-on: "ubuntu-latest"
permissions:
contents: write
packages: write
steps:
- name: "Checkout source code"
uses: "actions/checkout@v2"
- name: Set up Go
uses: actions/setup-go@v2
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
go-version: 1.17
- name: "Build"
run: "make build"
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=sha,suffix=-debug
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
Expand All @@ -34,6 +44,8 @@ jobs:
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64, linux/arm64
push: true
tags: ghcr.io/celestiaorg/celestia-node:latest
file: docker/Dockerfile
tags: ${{ steps.meta.outputs.tags }}
file: docker/debug.Dockerfile
97 changes: 97 additions & 0 deletions .github/workflows/docker-build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: docker-build-test

on:
push:
branches:
- '**'
tags:
- 'v*.*.*'
pull_request:
branches:
- 'main'
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build:
runs-on: "ubuntu-latest"
permissions:
contents: write
packages: write
steps:
- name: "Checkout source code"
uses: "actions/checkout@v2"
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=sha
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to GHCR
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64, linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
file: docker/Dockerfile

test:
needs: build
runs-on: ubuntu-latest
steps:
- name: Clone repo
uses: actions/checkout@v2
- name: Clone ephemeral-cluster repo
uses: actions/checkout@v2
with:
repository: celestiaorg/ephemeral-cluster
path: ephemeral-cluster
ref: chain
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.17
- name: "Setup Cluster"
run: |
export EVMOS_IMAGE_TAG=sha-$(git rev-parse --short "$GITHUB_SHA")
cd ephemeral-cluster
./debug-start-cluster.sh
- name: Clone ethermint repo
uses: actions/checkout@v2
with:
repository: celestiaorg/ethermint
path: ethermint
ref: v0.11.0+0.1.0
- name: move
run: |
mv ethermint ..
- name: "Test Cluster"
run: |
docker ps -a
echo "------------- docker logs core0 -------------"
docker logs core0
echo "------------- docker logs bridge0 -------------"
docker logs bridge0
echo "------------- docker logs light0 -------------"
docker logs light0
echo "------------- docker logs dalc0 -------------"
docker logs dalc0
echo "------------- docker logs evmos0 -------------"
docker logs evmos0
cd /home/runner/work/evmos/ethermint
MODE=rpc HOST=http://127.0.0.1:8545 go test ./tests/rpc/...
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,15 @@ dependency-graph.png

# Node.js
**/node_modules

tests/**/node_modules/*
tests-solidity/**/node_modules/*

# OpenZeppelin contracts
contracts/@openzeppelin/*

# Ethermint
ethermint

# Optimint
optimint

10 changes: 5 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -198,28 +198,28 @@ $(STATIK):
contract-tools:
ifeq (, $(shell which stringer))
@echo "Installing stringer..."
@go get golang.org/x/tools/cmd/stringer
@go install golang.org/x/tools/cmd/stringer
else
@echo "stringer already installed; skipping..."
endif

ifeq (, $(shell which go-bindata))
@echo "Installing go-bindata..."
@go get github.com/kevinburke/go-bindata/go-bindata
@go install github.com/kevinburke/go-bindata/go-bindata
else
@echo "go-bindata already installed; skipping..."
endif

ifeq (, $(shell which gencodec))
@echo "Installing gencodec..."
@go get github.com/fjl/gencodec
@go install github.com/fjl/gencodec
else
@echo "gencodec already installed; skipping..."
endif

ifeq (, $(shell which protoc-gen-go))
@echo "Installing protoc-gen-go..."
@go get github.com/fjl/gencodec github.com/golang/protobuf/protoc-gen-go
@go install github.com/fjl/gencodec github.com/golang/protobuf/protoc-gen-go
else
@echo "protoc-gen-go already installed; skipping..."
endif
Expand Down Expand Up @@ -269,7 +269,7 @@ docs-tools-stamp: docs-tools
go.sum: go.mod
echo "Ensure dependencies have not been modified ..." >&2
go mod verify
go mod tidy
go mod tidy -e

###############################################################################
### Documentation ###
Expand Down
37 changes: 37 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
FROM --platform=$BUILDPLATFORM golang:1.17 AS build-env

# Install dependencies
RUN apt-get update
RUN apt-get install git

# Set up env vars
ENV COSMOS_BUILD_OPTIONS nostrip

# Set working directory for the build
WORKDIR /src

COPY . .
RUN go mod download

# Make the binary
RUN env GOOS=$TARGETOS GOARCH=$TARGETARCH make build

# Final image
FROM debian

# Install ca-certificates
RUN apt-get update
RUN apt-get install jq -y

WORKDIR /root

COPY docker/entrypoint.sh .
COPY init.sh .

# Copy over binaries from the build-env
COPY --from=build-env /src/build/evmosd /usr/bin/evmosd

EXPOSE 26656 26657

ENTRYPOINT ["./entrypoint.sh"]
CMD ["evmosd"]
46 changes: 46 additions & 0 deletions docker/debug.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
FROM --platform=$BUILDPLATFORM golang:1.17 AS build-env

# Install dependencies
RUN apt-get update
RUN apt-get install git

# Set up env vars
ENV COSMOS_BUILD_OPTIONS nostrip

# Set working directory for the build
WORKDIR /src

COPY go.mod go.sum ./
RUN go mod download
COPY . .

# Build Delve
RUN env GOOS=$TARGETOS GOARCH=$TARGETARCH go install github.com/go-delve/delve/cmd/dlv@latest

# Add source files
COPY . .

# Make the binary
RUN env GOOS=$TARGETOS GOARCH=$TARGETARCH make build

# Final image
FROM debian

# Install ca-certificates
RUN apt-get update
RUN apt-get install jq -y


WORKDIR /root

COPY docker/entrypoint-debug.sh .
COPY init.sh .

# Copy over binaries from the build-env
COPY --from=build-env /src/build/evmosd /usr/bin/evmosd
COPY --from=build-env /go/bin/dlv /usr/bin/dlv

EXPOSE 26656 26657

ENTRYPOINT ["./entrypoint-debug.sh"]
CMD ["evmosd"]
11 changes: 11 additions & 0 deletions docker/entrypoint-debug.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh

set -e

if [ "$1" = 'dlv' ]; then
./init.sh

exec "$@" "--"
fi

exec "$@"
11 changes: 11 additions & 0 deletions docker/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh

set -e

if [ "$1" = 'evmosd' ]; then
./init.sh

exec "$@" "--"
fi

exec "$@"
Loading

0 comments on commit 1e2e027

Please sign in to comment.