Browse Source

ci: migrate test_cover (#4869)

Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
Co-authored-by: Ismail Khoffi <Ismail.Khoffi@gmail.com>
pull/5015/head
Marko 5 years ago
committed by GitHub
parent
commit
062764ae72
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 135 additions and 1620 deletions
  1. +0
    -1550
      .circleci/codecov.sh
  2. +0
    -64
      .circleci/config.yml
  3. +101
    -0
      .github/workflows/coverage.yml
  4. +32
    -4
      .github/workflows/tests.yml
  5. +2
    -2
      version/version.go

+ 0
- 1550
.circleci/codecov.sh
File diff suppressed because it is too large
View File


+ 0
- 64
.circleci/config.yml View File

@ -36,7 +36,6 @@ commands:
name: "Running test"
command: |
bash << parameters.script_path >>
jobs:
setup_dependencies:
executor: golang
@ -79,36 +78,6 @@ jobs:
- run_test:
script_path: test/persist/test_failure_indices.sh
test_cover:
executor: golang
parallelism: 4
steps:
- restore_cache:
name: "Restore source code cache"
keys:
- go-src-v1-{{ .Revision }}
- checkout
- restore_cache:
name: "Restore go module cache"
keys:
- go-mod-v2-{{ checksum "go.sum" }}
- run:
name: "Run tests"
command: |
export VERSION="$(git describe --tags --long | sed 's/v\(.*\)/\1/')"
export GO111MODULE=on
mkdir -p /tmp/logs /tmp/workspace/profiles
for pkg in $(go list github.com/tendermint/tendermint/... | circleci tests split --split-by=timings); do
id=$(basename "$pkg")
go test -timeout 7m -mod=readonly -race -coverprofile=/tmp/workspace/profiles/$id.out -covermode=atomic "$pkg" | tee "/tmp/logs/$id-$RANDOM.log"
done
- persist_to_workspace:
root: /tmp/workspace
paths:
- "profiles/*"
- store_artifacts:
path: /tmp/logs
test_p2p:
environment:
GOBIN: /home/circleci/.go_workspace/bin
@ -127,31 +96,6 @@ jobs:
- store_artifacts:
path: /home/circleci/project/test/p2p/logs
upload_coverage:
executor: golang
steps:
- attach_workspace:
at: /tmp/workspace
- restore_cache:
name: "Restore source code cache"
keys:
- go-src-v1-{{ .Revision }}
- checkout
- restore_cache:
name: "Restore go module cache"
keys:
- go-mod-v2-{{ checksum "go.sum" }}
- run:
name: gather
command: |
echo "mode: atomic" > coverage.txt
for prof in $(ls /tmp/workspace/profiles/); do
tail -n +2 /tmp/workspace/profiles/"$prof" >> coverage.txt
done
- run:
name: upload
command: bash .circleci/codecov.sh -f coverage.txt
deploy_docs:
executor: docs
steps:
@ -256,7 +200,6 @@ jobs:
export GOOS=linux GOARCH=arm && python -u scripts/release_management/github-upload.py --id "${RELEASE_ID}"
python -u scripts/release_management/github-upload.py --file "/tmp/workspace/SHA256SUMS" --id "${RELEASE_ID}"
python -u scripts/release_management/github-publish.py --id "${RELEASE_ID}"
release_docker:
machine:
image: ubuntu-1604:201903-01
@ -274,7 +217,6 @@ jobs:
docker login -u "${DOCKERHUB_USER}" --password-stdin \<<< "${DOCKERHUB_PASS}"
docker push "tendermint/tendermint"
docker logout
reproducible_builds:
executor: golang
steps:
@ -350,9 +292,6 @@ workflows:
only:
- docs-staging
- setup_dependencies
- test_cover:
requires:
- setup_dependencies
- test_persistence:
requires:
- setup_dependencies
@ -360,9 +299,6 @@ workflows:
- test_p2p:
name: test_p2p_ipv6
ipv: 6
- upload_coverage:
requires:
- test_cover
- reproducible_builds:
filters:
branches:


+ 101
- 0
.github/workflows/coverage.yml View File

@ -0,0 +1,101 @@
name: Test Coverage
on:
pull_request:
push:
branches:
- master
- release/**
jobs:
split-test-files:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Create a file with all the pkgs
run: go list ./... > pkgs.txt
- name: Split pkgs into 4 files
run: split -n l/4 --additional-suffix=.txt ./pkgs.txt
# cache multiple
- uses: actions/upload-artifact@v2
with:
name: '${{ github.sha }}-aa'
path: ./xaa.txt
- uses: actions/upload-artifact@v2
with:
name: '${{ github.sha }}-ab'
path: ./xab.txt
- uses: actions/upload-artifact@v2
with:
name: '${{ github.sha }}-ac'
path: ./xac.txt
- uses: actions/upload-artifact@v2
with:
name: '${{ github.sha }}-ad'
path: ./xad.txt
test-coverage-part-1:
runs-on: ubuntu-latest
needs: split-test-files
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: '${{ github.sha }}-aa'
- name: test & coverage report creation
run: |
cat xaa.txt | xargs go test -mod=readonly -timeout 8m -race -coverprofile=coverage.txt -covermode=atomic
- uses: codecov/codecov-action@v1
with:
file: ./coverage.txt
fail_ci_if_error: true
test-coverage-part-2:
runs-on: ubuntu-latest
needs: split-test-files
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: '${{ github.sha }}-ab'
- name: test & coverage report creation
run: |
cat xab.txt | xargs go test -mod=readonly -timeout 5m -race -coverprofile=coverage.txt -covermode=atomic
- uses: codecov/codecov-action@v1
with:
file: ./coverage.txt
fail_ci_if_error: true
test-coverage-part-3:
runs-on: ubuntu-latest
needs: split-test-files
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: '${{ github.sha }}-ac'
- name: test & coverage report creation
run: |
cat xac.txt | xargs go test -mod=readonly -timeout 5m -race -coverprofile=coverage.txt -covermode=atomic
- uses: codecov/codecov-action@v1
with:
file: ./coverage.txt
fail_ci_if_error: true
test-coverage-part-4:
runs-on: ubuntu-latest
needs: split-test-files
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: '${{ github.sha }}-ad'
- name: test & coverage report creation
run: |
cat xad.txt | xargs go test -mod=readonly -timeout 5m -race -coverprofile=coverage.txt -covermode=atomic
- uses: codecov/codecov-action@v1
with:
file: ./coverage.txt
fail_ci_if_error: true

+ 32
- 4
.github/workflows/tests.yml View File

@ -38,11 +38,18 @@ jobs:
- name: install
run: make install install_abci
if: "env.GIT_DIFF != ''"
- uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
if: "env.GIT_DIFF != ''"
# Cache bin
- uses: actions/cache@v1
with:
path: ~/go/bin
key: ${{ runner.os }}-go-tm-binary
key: ${{ runner.os }}-${{ github.head_ref }}-tm-binary
if: "env.GIT_DIFF != ''"
test_abci_apps:
@ -62,10 +69,17 @@ jobs:
- name: Set GOBIN
run: |
echo "::add-path::$(go env GOPATH)/bin"
- uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
if: "env.GIT_DIFF != ''"
- uses: actions/cache@v1
with:
path: ~/go/bin
key: ${{ runner.os }}-go-tm-binary
key: ${{ runner.os }}-${{ github.head_ref }}-tm-binary
if: "env.GIT_DIFF != ''"
- name: test_abci_apps
run: abci/tests/test_app/test.sh
@ -89,10 +103,17 @@ jobs:
- name: Set GOBIN
run: |
echo "::add-path::$(go env GOPATH)/bin"
- uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
if: "env.GIT_DIFF != ''"
- uses: actions/cache@v1
with:
path: ~/go/bin
key: ${{ runner.os }}-go-tm-binary
key: ${{ runner.os }}-${{ github.head_ref }}-tm-binary
if: "env.GIT_DIFF != ''"
- run: abci/tests/test_cli/test.sh
shell: bash
@ -115,10 +136,17 @@ jobs:
- name: Set GOBIN
run: |
echo "::add-path::$(go env GOPATH)/bin"
- uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
if: "env.GIT_DIFF != ''"
- uses: actions/cache@v1
with:
path: ~/go/bin
key: ${{ runner.os }}-go-tm-binary
key: ${{ runner.os }}-${{ github.head_ref }}-tm-binary
if: "env.GIT_DIFF != ''"
- name: test_apps
run: test/app/test.sh


+ 2
- 2
version/version.go View File

@ -20,11 +20,11 @@ const (
// Must be a string because scripts like dist.sh read this file.
// XXX: Don't change the name of this variable or you will break
// automation :)
TMCoreSemVer = "0.33.5"
// ABCISemVer is the semantic version of the ABCI library
ABCISemVer = "0.17.0"
ABCISemVer = "0.17.0"
ABCIVersion = ABCISemVer
)


Loading…
Cancel
Save