Skip to content

Commit

Permalink
Merge pull request ethereum#511 from celo-org/timmoreton/geth_1.9
Browse files Browse the repository at this point in the history
Update to geth 1.9.8 + Announce v2
  • Loading branch information
Asa Oines authored Feb 18, 2020
2 parents 993c66c + 741a8e8 commit 6448359
Show file tree
Hide file tree
Showing 3,080 changed files with 363,022 additions and 948,604 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
263 changes: 138 additions & 125 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,85 +1,117 @@
version: 2

geth-defaults: &geth-defaults
docker:
- image: circleci/golang:1.12

rust-defaults: &rust-defaults
docker:
- image: circleci/rust:1.37.0

end-to-end-defaults: &end-to-end-defaults
docker:
- image: celohq/node10-gcloud
environment:
CELO_MONOREPO_BRANCH_TO_TEST: master

jobs:
unit-tests:
<<: *geth-defaults
working_directory: ~/repos/geth
steps:
- attach_workspace:
at: ~/repos
- run: build/env.sh go run build/ci.go test

coverage:
<<: *geth-defaults
working_directory: ~/repos/geth
steps:
- attach_workspace:
at: ~/repos
- run: build/env.sh go run build/ci.go test -coverage
- run: bash <(curl -s https://codecov.io/bash)

lint:
<<: *geth-defaults
version: 2.1
executors:
golang:
docker:
- image: circleci/golang:1.13
working_directory: ~/repos/geth
steps:
- checkout
- run: build/env.sh go run build/ci.go lint

bls-zexe:
<<: *rust-defaults
e2e:
docker:
- image: celohq/node10-gcloud
working_directory: ~/repos/celo-monorepo/packages/celotool
environment:
GO_VERSION: "1.13.7"
CELO_MONOREPO_BRANCH_TO_TEST: mc/geth1.9-final
jobs:
build-bls-zexe:
docker:
- image: circleci/rust:1.37.0
working_directory: ~/repos/geth
steps:
- checkout
- run:
name: Setup Rust language
command: |
set -euo pipefail
rustup install 1.37.0
rustup default 1.37.0
- run:
name: Compile bls-zexe
command: |
set -euo pipefail
export PATH=$PATH:$HOME/.cargo/bin
make bls-zexe
- persist_to_workspace:
root: ~/repos
paths:
- geth
build-geth:
executor: golang
steps:
- attach_workspace:
at: ~/repos
- restore_cache:
keys:
- go-mod-v1-{{ checksum "go.sum" }}
- run:
name: Build Geth
command: go run build/ci.go install
- save_cache:
key: go-mod-v1-{{ checksum "go.sum" }}
paths:
- "/go/pkg/mod"
- persist_to_workspace:
root: ~/repos
paths:
- geth
unit-tests:
executor: golang
steps:
- attach_workspace:
at: ~/repos
- restore_cache:
keys:
- go-mod-v1-{{ checksum "go.sum" }}
- run: go get github.com/jstemmer/go-junit-report
- run:
name: Run Tests
command: |
mkdir -p /tmp/test-results
trap "go-junit-report < /tmp/test-results/go-test.out > /tmp/test-results/go-test-report.xml" EXIT
go run build/ci.go test -v | tee /tmp/test-results/go-test.out
- store_artifacts:
path: /tmp/test-results
destination: raw-test-output

- store_test_results:
path: /tmp/test-results

coverage:
executor: golang
steps:
- attach_workspace:
at: ~/repos
- restore_cache:
keys:
- go-mod-v1-{{ checksum "go.sum" }}
- run: go run build/ci.go test -coverage
- run: bash <(curl -s https://codecov.io/bash)

lint:
executor: golang
steps:
- attach_workspace:
at: ~/repos
- run: go get github.com/jstemmer/go-junit-report
- run:
name: Run Linter
command: |
mkdir -p /tmp/test-results
go run build/ci.go ensure-linter
./build/cache/golangci-lint-1.23.6-linux-amd64/golangci-lint run --config .golangci.yml --out-format junit-xml ./... | tee /tmp/test-results/go-lint-report.xml
- store_artifacts:
path: /tmp/test-results
destination: raw-test-output
- store_test_results:
path: /tmp/test-results

android:
docker:
- image: celohq/android-client
user: circleci
- image: celohq/circleci:android-v1
working_directory: ~/repos/geth
steps:
- checkout
- run:
name: Compile android client
command: |
set -euo pipefail
# TODO(jeanregisser): Fix docker image so build works directly with circleci user
sudo chown -R circleci:circleci $HOME/.rustup $HOME/.cargo
export PATH=$PATH:$HOME/.cargo/bin
export NDK_VERSION=android-ndk-r19c
export ANDROID_NDK=/opt/android/${NDK_VERSION}
export ANDROID_HOME=/opt/android/sdk
make android
command: make android
- persist_to_workspace:
root: ~/repos
paths:
Expand All @@ -93,21 +125,19 @@ jobs:
- checkout
- run:
name: Setup Go language
command: HOMEBREW_NO_AUTO_UPDATE=1 brew install [email protected]
command: |
HOMEBREW_NO_AUTO_UPDATE=1 brew install go
# Check that homebrew installed the expected go version
if [[ "$(go version)" != "go version go1.13"* ]]; then
echo "go1.13 is required"
exit 1
fi
- run:
name: Setup Rust language
command: |
set -euo pipefail
curl https://sh.rustup.rs -sSf | sh -s -- -y
export PATH=$PATH:$HOME/.cargo/bin
rustup install 1.37.0
rustup default 1.37.0
command: curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain 1.37.0
- run:
name: Compile ios client
command: |
set -euo pipefail
export PATH="/usr/local/opt/[email protected]/bin:$HOME/.cargo/bin:$PATH"
make ios
command: make ios
- persist_to_workspace:
root: ~/repos
paths:
Expand All @@ -124,16 +154,15 @@ jobs:
at: ~/repos
- run: ./scripts/publish-mobile-client.sh ${CIRCLE_SHA1} ${NPM_TOKEN_FOR_CELO_CLIENT}

end-to-end-monorepo-checkout:
<<: *end-to-end-defaults
working_directory: ~/repos/celo-monorepo
checkout-monorepo:
executor: e2e
working_directory: ~/repos
steps:
- run:
name: Setup celo-monorepo
command: |
set -euo pipefail
export CELO_MONOREPO_DIR="$PWD"
git clone --depth 1 https://github.com/celo-org/celo-monorepo.git ${CELO_MONOREPO_DIR} -b ${CELO_MONOREPO_BRANCH_TO_TEST}
git clone --depth 1 https://github.com/celo-org/celo-monorepo.git celo-monorepo -b ${CELO_MONOREPO_BRANCH_TO_TEST}
cd celo-monorepo
yarn install || yarn install
# separate build to avoid ENOMEM in CI :(
yarn build --scope @celo/utils
Expand All @@ -144,92 +173,82 @@ jobs:
- run:
name: Setup Go language
command: |
set -euo pipefail
export CELO_MONOREPO_DIR="$PWD"
GO_LANG_DIR="${CELO_MONOREPO_DIR}/golang"
mkdir -p ${GO_LANG_DIR}
wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
tar xf go1.11.5.linux-amd64.tar.gz -C ${GO_LANG_DIR}
${GO_LANG_DIR}/go/bin/go version
mkdir -p ~/repos/golang
wget https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz
tar xf go${GO_VERSION}.linux-amd64.tar.gz -C ~/repos/golang
~/repos/golang/go/bin/go version
- persist_to_workspace:
root: ~/repos
paths:
- celo-monorepo
- golang

end-to-end-transfer-test:
<<: *end-to-end-defaults
working_directory: ~/repos
executor: e2e
steps:
- attach_workspace:
at: ~/repos
- run:
name: Geth transfer test
no_output_timeout: 15m
command: |
export CELO_MONOREPO_DIR="$HOME/repos/celo-monorepo"
export GO_LANG_DIR="$CELO_MONOREPO_DIR/golang"
${GO_LANG_DIR}/go/bin/go version
export PATH=${PATH}:${GO_LANG_DIR}/go/bin
cd ${CELO_MONOREPO_DIR}/packages/celotool
export PATH=${PATH}:~/repos/golang/go/bin
./ci_test_transfers.sh local ~/repos/geth
end-to-end-sync-test:
<<: *end-to-end-defaults
working_directory: ~/repos
executor: e2e
steps:
- attach_workspace:
at: ~/repos
- run:
name: Geth sync with a standalone node test
command: |
export CELO_MONOREPO_DIR="$HOME/repos/celo-monorepo"
export GO_LANG_DIR="$CELO_MONOREPO_DIR/golang"
${GO_LANG_DIR}/go/bin/go version
export PATH=${PATH}:${GO_LANG_DIR}/go/bin
cd ${CELO_MONOREPO_DIR}/packages/celotool
export PATH=${PATH}:~/repos/golang/go/bin
./ci_test_sync.sh local ~/repos/geth
end-to-end-blockchain-parameters-test:
<<: *end-to-end-defaults
working_directory: ~/repos
executor: e2e
steps:
- attach_workspace:
at: ~/repos
- run:
name: Geth sync with a standalone node test
name: Geth sync with a standalone nod~e test
command: |
export CELO_MONOREPO_DIR="$HOME/repos/celo-monorepo"
export GO_LANG_DIR="$CELO_MONOREPO_DIR/golang"
${GO_LANG_DIR}/go/bin/go version
export PATH=${PATH}:${GO_LANG_DIR}/go/bin
cd ${CELO_MONOREPO_DIR}/packages/celotool
export PATH=${PATH}:~/repos/golang/go/bin
./ci_test_blockchain_parameters.sh local ~/repos/geth
end-to-end-geth-governance-test:
<<: *end-to-end-defaults
executor: e2e
# Source: https://circleci.com/docs/2.0/configuration-reference/#resource_class
resource_class: medium+
working_directory: ~/repos
steps:
- attach_workspace:
at: ~/repos
- run:
name: Geth goverenance with a standalone node
no_output_timeout: "1200s"
command: |
export CELO_MONOREPO_DIR="$HOME/repos/celo-monorepo"
export GO_LANG_DIR="$CELO_MONOREPO_DIR/golang"
${GO_LANG_DIR}/go/bin/go version
export PATH=${PATH}:${GO_LANG_DIR}/go/bin
cd ${CELO_MONOREPO_DIR}/packages/celotool
export PATH=${PATH}:~/repos/golang/go/bin
./ci_test_governance.sh local ~/repos/geth
workflows:
version: 2
build:
jobs:
- bls-zexe
- lint
- build-bls-zexe
- checkout-monorepo
- build-geth:
requires:
- build-bls-zexe
- lint:
requires:
- build-geth
- unit-tests:
requires:
- build-geth
- coverage:
requires:
- build-geth
- android
- ios
- publish-mobile-client:
Expand All @@ -247,26 +266,20 @@ workflows:
filters:
branches:
only: master
- end-to-end-monorepo-checkout
- unit-tests:
requires:
- bls-zexe
- coverage:
requires:
- bls-zexe

- end-to-end-transfer-test:
requires:
- end-to-end-monorepo-checkout
- bls-zexe
- checkout-monorepo
- build-geth
- end-to-end-sync-test:
requires:
- end-to-end-monorepo-checkout
- bls-zexe
- checkout-monorepo
- build-geth
- end-to-end-blockchain-parameters-test:
requires:
- end-to-end-monorepo-checkout
- bls-zexe
- checkout-monorepo
- build-geth
- end-to-end-geth-governance-test:
requires:
- end-to-end-monorepo-checkout
- bls-zexe
- checkout-monorepo
- build-geth
4 changes: 0 additions & 4 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
**/.git
.git
!.git/HEAD
!.git/refs/heads
**/*_test.go

build/_workspace
Expand Down
3 changes: 1 addition & 2 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,4 @@
# Each line is a file pattern followed by one or more owners.

# default owners for everything in the repo.
* @asaj

* @asaj @timmoreton
Loading

0 comments on commit 6448359

Please sign in to comment.