Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Commit 9e594f5

Browse files
authored
Merge pull request #92 from binance-chain/release/v0.31.5-binance.0
Release/v0.31.5 binance.0
2 parents ee4d6f7 + 9625a44 commit 9e594f5

319 files changed

Lines changed: 30644 additions & 5341 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.circleci/config.yml

Lines changed: 144 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,20 @@ version: 2
33
defaults: &defaults
44
working_directory: /go/src/github.com/tendermint/tendermint
55
docker:
6-
- image: circleci/golang:1.11.4
6+
- image: circleci/golang
77
environment:
88
GOBIN: /tmp/workspace/bin
99

1010
docs_update_config: &docs_update_config
1111
working_directory: ~/repo
1212
docker:
13-
- image: tendermint/docs_deployment
13+
- image: tendermintdev/jq_curl
1414
environment:
1515
AWS_REGION: us-east-1
1616

17+
release_management_docker: &release_management_docker
18+
machine: true
19+
1720
jobs:
1821
setup_dependencies:
1922
<<: *defaults
@@ -154,7 +157,7 @@ jobs:
154157
for pkg in $(go list github.com/tendermint/tendermint/... | circleci tests split --split-by=timings); do
155158
id=$(basename "$pkg")
156159
157-
GOCACHE=off go test -v -timeout 5m -race -coverprofile=/tmp/workspace/profiles/$id.out -covermode=atomic "$pkg" | tee "/tmp/logs/$id-$RANDOM.log"
160+
go test -v -timeout 5m -race -coverprofile=/tmp/workspace/profiles/$id.out -covermode=atomic "$pkg" | tee "/tmp/logs/$id-$RANDOM.log"
158161
done
159162
- persist_to_workspace:
160163
root: /tmp/workspace
@@ -192,7 +195,7 @@ jobs:
192195
name: run localnet and exit on failure
193196
command: |
194197
set -x
195-
docker run --rm -v "$PWD":/go/src/github.com/tendermint/tendermint -w /go/src/github.com/tendermint/tendermint golang:1.11.4 make build-linux
198+
docker run --rm -v "$PWD":/go/src/github.com/tendermint/tendermint -w /go/src/github.com/tendermint/tendermint golang make build-linux
196199
make localnet-start &
197200
./scripts/localnet-blocks-test.sh 40 5 10 localhost
198201
@@ -239,7 +242,121 @@ jobs:
239242
- run:
240243
name: Trigger website build
241244
command: |
242-
chamber exec tendermint -- start_website_build
245+
curl --silent \
246+
--show-error \
247+
-X POST \
248+
--header "Content-Type: application/json" \
249+
-d "{\"branch\": \"$CIRCLE_BRANCH\"}" \
250+
"https://circleci.com/api/v1.1/project/github/$CIRCLE_PROJECT_USERNAME/$WEBSITE_REPO_NAME/build?circle-token=$TENDERBOT_API_TOKEN" > response.json
251+
252+
RESULT=`jq -r '.status' response.json`
253+
MESSAGE=`jq -r '.message' response.json`
254+
255+
if [[ ${RESULT} == "null" ]] || [[ ${RESULT} -ne "200" ]]; then
256+
echo "CircleCI API call failed: $MESSAGE"
257+
exit 1
258+
else
259+
echo "Website build started"
260+
fi
261+
262+
prepare_build:
263+
<<: *defaults
264+
steps:
265+
- checkout
266+
- run:
267+
name: Get next release number
268+
command: |
269+
export LAST_TAG="`git describe --tags --abbrev=0 --match "${CIRCLE_BRANCH}.*"`"
270+
echo "Last tag: ${LAST_TAG}"
271+
if [ -z "${LAST_TAG}" ]; then
272+
export LAST_TAG="${CIRCLE_BRANCH}"
273+
echo "Last tag not found. Possibly fresh branch or feature branch. Setting ${LAST_TAG} as tag."
274+
fi
275+
export NEXT_TAG="`python -u scripts/release_management/bump-semver.py --version "${LAST_TAG}"`"
276+
echo "Next tag: ${NEXT_TAG}"
277+
echo "export CIRCLE_TAG=\"${NEXT_TAG}\"" > release-version.source
278+
- run:
279+
name: Build dependencies
280+
command: |
281+
make get_tools get_vendor_deps
282+
- persist_to_workspace:
283+
root: .
284+
paths:
285+
- "release-version.source"
286+
- save_cache:
287+
key: v1-release-deps-{{ .Branch }}-{{ .Revision }}
288+
paths:
289+
- "vendor"
290+
291+
build_artifacts:
292+
<<: *defaults
293+
parallelism: 4
294+
steps:
295+
- checkout
296+
- restore_cache:
297+
keys:
298+
- v1-release-deps-{{ .Branch }}-{{ .Revision }}
299+
- attach_workspace:
300+
at: /tmp/workspace
301+
- run:
302+
name: Build artifact
303+
command: |
304+
# Setting CIRCLE_TAG because we do not tag the release ourselves.
305+
source /tmp/workspace/release-version.source
306+
if test ${CIRCLE_NODE_INDEX:-0} == 0 ;then export GOOS=linux GOARCH=amd64 && export OUTPUT=build/tendermint_${GOOS}_${GOARCH} && make build && python -u scripts/release_management/zip-file.py ;fi
307+
if test ${CIRCLE_NODE_INDEX:-0} == 1 ;then export GOOS=darwin GOARCH=amd64 && export OUTPUT=build/tendermint_${GOOS}_${GOARCH} && make build && python -u scripts/release_management/zip-file.py ;fi
308+
if test ${CIRCLE_NODE_INDEX:-0} == 2 ;then export GOOS=windows GOARCH=amd64 && export OUTPUT=build/tendermint_${GOOS}_${GOARCH} && make build && python -u scripts/release_management/zip-file.py ;fi
309+
if test ${CIRCLE_NODE_INDEX:-0} == 3 ;then export GOOS=linux GOARCH=arm && export OUTPUT=build/tendermint_${GOOS}_${GOARCH} && make build && python -u scripts/release_management/zip-file.py ;fi
310+
- persist_to_workspace:
311+
root: build
312+
paths:
313+
- "*.zip"
314+
- "tendermint_linux_amd64"
315+
316+
release_artifacts:
317+
<<: *defaults
318+
steps:
319+
- checkout
320+
- attach_workspace:
321+
at: /tmp/workspace
322+
- run:
323+
name: Deploy to GitHub
324+
command: |
325+
# Setting CIRCLE_TAG because we do not tag the release ourselves.
326+
source /tmp/workspace/release-version.source
327+
echo "---"
328+
ls -la /tmp/workspace/*.zip
329+
echo "---"
330+
python -u scripts/release_management/sha-files.py
331+
echo "---"
332+
cat /tmp/workspace/SHA256SUMS
333+
echo "---"
334+
export RELEASE_ID="`python -u scripts/release_management/github-draft.py`"
335+
echo "Release ID: ${RELEASE_ID}"
336+
#Todo: Parallelize uploads
337+
export GOOS=linux GOARCH=amd64 && python -u scripts/release_management/github-upload.py --id "${RELEASE_ID}"
338+
export GOOS=darwin GOARCH=amd64 && python -u scripts/release_management/github-upload.py --id "${RELEASE_ID}"
339+
export GOOS=windows GOARCH=amd64 && python -u scripts/release_management/github-upload.py --id "${RELEASE_ID}"
340+
export GOOS=linux GOARCH=arm && python -u scripts/release_management/github-upload.py --id "${RELEASE_ID}"
341+
python -u scripts/release_management/github-upload.py --file "/tmp/workspace/SHA256SUMS" --id "${RELEASE_ID}"
342+
python -u scripts/release_management/github-publish.py --id "${RELEASE_ID}"
343+
344+
release_docker:
345+
<<: *release_management_docker
346+
steps:
347+
- checkout
348+
- attach_workspace:
349+
at: /tmp/workspace
350+
- run:
351+
name: Deploy to Docker Hub
352+
command: |
353+
# Setting CIRCLE_TAG because we do not tag the release ourselves.
354+
source /tmp/workspace/release-version.source
355+
cp /tmp/workspace/tendermint_linux_amd64 DOCKER/tendermint
356+
docker build --label="tendermint" --tag="tendermint/tendermint:${CIRCLE_TAG}" --tag="tendermint/tendermint:latest" "DOCKER"
357+
docker login -u "${DOCKERHUB_USER}" --password-stdin <<< "${DOCKERHUB_PASS}"
358+
docker push "tendermint/tendermint"
359+
docker logout
243360
244361
workflows:
245362
version: 2
@@ -277,3 +394,25 @@ workflows:
277394
- upload_coverage:
278395
requires:
279396
- test_cover
397+
release:
398+
jobs:
399+
- prepare_build
400+
- build_artifacts:
401+
requires:
402+
- prepare_build
403+
- release_artifacts:
404+
requires:
405+
- prepare_build
406+
- build_artifacts
407+
filters:
408+
branches:
409+
only:
410+
- /v[0-9]+\.[0-9]+/
411+
- release_docker:
412+
requires:
413+
- prepare_build
414+
- build_artifacts
415+
filters:
416+
branches:
417+
only:
418+
- /v[0-9]+\.[0-9]+/

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ shunit2
3535
addrbook.json
3636

3737
*/vendor
38+
.vendor-new/
3839
*/.glide
3940
.terraform
4041
terraform.tfstate

.golangci.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ linters:
99
- maligned
1010
- errcheck
1111
- staticcheck
12-
- dupl
13-
- ineffassign
1412
- interfacer
1513
- unconvert
1614
- goconst

0 commit comments

Comments
 (0)