diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 0000000000..6598e00166 --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,51 @@ +name: Tests E2E +# Tests Race workflow runs unit tests with the race detector +# This workflow is run on pushes to main & every Pull Requests where a .go, .mod, .sum have been changed +on: + pull_request: + push: + branches: + - main + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-go@v3 + with: + go-version: 1.18 + - uses: technote-space/get-diff-action@v6.1.0 + id: git_diff + with: + PATTERNS: | + **/**.go + **/go.mod + **/go.sum + key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }} + - name: Build + if: env.GIT_DIFF + run: GOARCH=${{ matrix.go-arch }} LEDGER_ENABLED=false make build + + + test-e2e: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-go@v3 + with: + go-version: 1.18 + - uses: technote-space/get-diff-action@v6.1.0 + with: + PATTERNS: | + **/**.go + go.mod + go.sum + - name: e2e tests + if: env.GIT_DIFF + run: | + cd tests/e2e && go test ./... -mod=readonly -timeout 30m -race -tags='e2e' diff --git a/.github/workflows/test-race.yml b/.github/workflows/test-race.yml deleted file mode 100644 index f793539d6e..0000000000 --- a/.github/workflows/test-race.yml +++ /dev/null @@ -1,138 +0,0 @@ -name: Tests Race -# Tests Race workflow runs unit tests with the race detector -# This workflow is run on pushes to main & every Pull Requests where a .go, .mod, .sum have been changed -on: - pull_request: - push: - branches: - - main - -permissions: - contents: read - -jobs: - cleanup-runs: - runs-on: buildjet-4vcpu-ubuntu-2004 - steps: - - uses: rokroskar/workflow-run-cleanup-action@master - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - if: "!startsWith(github.ref, 'refs/tags/') && github.ref != 'refs/heads/main'" - - install-tparse: - runs-on: buildjet-4vcpu-ubuntu-2004 - steps: - - uses: actions/setup-go@v3 - with: - go-version: 1.18 - - name: Display go version - run: go version - - name: install tparse - run: go install github.com/mfridman/tparse@v0.8.3 - - uses: actions/cache@v3 - with: - path: ~/go/bin - key: ${{ runner.os }}-go-tparse-binary - - build: - runs-on: buildjet-4vcpu-ubuntu-2004 - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 - with: - go-version: 1.18 - - uses: technote-space/get-diff-action@v6.1.0 - id: git_diff - with: - PATTERNS: | - **/**.go - **/go.mod - **/go.sum - - name: Get data from Go build cache - uses: actions/cache@v3 - # if: env.GIT_DIFF - if: ${{ false }} - with: - path: | - ~/go/pkg/mod - ~/.cache/golangci-lint - ~/.cache/go-build - key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }} - - name: Build - if: env.GIT_DIFF - run: GOARCH=${{ matrix.go-arch }} LEDGER_ENABLED=false make build - - - name: Build cosmovisor - if: env.GIT_DIFF - run: GOARCH=${{ matrix.go-arch }} LEDGER_ENABLED=false make cosmovisor - - split-test-files: - runs-on: buildjet-4vcpu-ubuntu-2004 - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 - with: - go-version: 1.18 - - name: Create a file with all core Cosmos SDK pkgs - run: go list ./... > pkgs.txt - - name: Split pkgs into 4 files - run: split -d -n l/4 pkgs.txt pkgs.txt.part. - # cache multiple - - uses: actions/upload-artifact@v3 - with: - name: "${{ github.sha }}-00" - path: ./pkgs.txt.part.00 - - uses: actions/upload-artifact@v3 - with: - name: "${{ github.sha }}-01" - path: ./pkgs.txt.part.01 - - uses: actions/upload-artifact@v3 - with: - name: "${{ github.sha }}-02" - path: ./pkgs.txt.part.02 - - uses: actions/upload-artifact@v3 - with: - name: "${{ github.sha }}-03" - path: ./pkgs.txt.part.03 - - test-race: - runs-on: buildjet-4vcpu-ubuntu-2004 - needs: split-test-files - strategy: - fail-fast: false - matrix: - part: ["00", "01", "02", "03"] - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 - with: - go-version: 1.18 - - uses: technote-space/get-diff-action@v6.1.0 - with: - PATTERNS: | - **/**.go - go.mod - go.sum - - name: Get data from Go build cache - uses: actions/cache@v3 - # if: env.GIT_DIFF - if: ${{ false }} - with: - path: | - ~/go/pkg/mod - ~/.cache/golangci-lint - ~/.cache/go-build - key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }} - - uses: actions/download-artifact@v3 - if: env.GIT_DIFF - with: - name: "${{ github.sha }}-${{ matrix.part }}" - - name: test & coverage report creation - if: env.GIT_DIFF - run: | - xargs --arg-file=pkgs.txt.part.${{ matrix.part }} go test -mod=readonly -timeout 30m -race -tags='cgo ledger test_ledger_mock' - - uses: actions/upload-artifact@v3 - if: env.GIT_DIFF - with: - name: "${{ github.sha }}-${{ matrix.part }}-race-output" - path: ./${{ matrix.part }}-race-output.txt diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 357ae8efb9..c1a26183a0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -157,7 +157,7 @@ jobs: if: env.GIT_DIFF - name: test & coverage report creation run: | - cat pkgs.txt.part.${{ matrix.part }} | xargs go test -mod=readonly -timeout 30m -coverprofile=${{ matrix.part }}profile.out -covermode=atomic -tags='norace ledger test_ledger_mock' + cat pkgs.txt.part.${{ matrix.part }} | xargs go test -mod=readonly -race -timeout 30m -coverprofile=${{ matrix.part }}profile.out -covermode=atomic -tags='ledger test_ledger_mock' if: env.GIT_DIFF - uses: actions/upload-artifact@v3 with: diff --git a/client/rpc/rpc_test.go b/client/rpc/rpc_test.go index e1d947977e..21dbd2b8cd 100644 --- a/client/rpc/rpc_test.go +++ b/client/rpc/rpc_test.go @@ -1,6 +1,3 @@ -//go:build norace -// +build norace - package rpc_test import ( diff --git a/server/grpc/server_test.go b/server/grpc/server_test.go index 26c09102af..a6fba07b0d 100644 --- a/server/grpc/server_test.go +++ b/server/grpc/server_test.go @@ -1,6 +1,3 @@ -//go:build norace -// +build norace - package grpc_test import ( diff --git a/simapp/testutil_network_test.go b/simapp/testutil_network_test.go index ae34608bcd..520326455e 100644 --- a/simapp/testutil_network_test.go +++ b/simapp/testutil_network_test.go @@ -1,6 +1,3 @@ -//go:build norace -// +build norace - package simapp_test import ( diff --git a/tests/e2e/auth/client/testutil/cli_test.go b/tests/e2e/auth/client/testutil/cli_test.go index 6078b9119b..74a642b584 100644 --- a/tests/e2e/auth/client/testutil/cli_test.go +++ b/tests/e2e/auth/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/auth/vesting/client/testutil/cli_test.go b/tests/e2e/auth/vesting/client/testutil/cli_test.go index 2851649038..b1e5d88765 100644 --- a/tests/e2e/auth/vesting/client/testutil/cli_test.go +++ b/tests/e2e/auth/vesting/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/authz/client/testutil/cli_test.go b/tests/e2e/authz/client/testutil/cli_test.go index b01d117e3e..ada6786e5a 100644 --- a/tests/e2e/authz/client/testutil/cli_test.go +++ b/tests/e2e/authz/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/bank/client/testutil/cli_test.go b/tests/e2e/bank/client/testutil/cli_test.go index 7d5bbbf189..d121354d38 100644 --- a/tests/e2e/bank/client/testutil/cli_test.go +++ b/tests/e2e/bank/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/client/grpc/tmservice/service_test.go b/tests/e2e/client/grpc/tmservice/service_test.go index d3e3c8240b..f75b15347d 100644 --- a/tests/e2e/client/grpc/tmservice/service_test.go +++ b/tests/e2e/client/grpc/tmservice/service_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package tmservice_test diff --git a/tests/e2e/crisis/client/testsuite/cli_test.go b/tests/e2e/crisis/client/testsuite/cli_test.go index dcbcc51749..26af9843ef 100644 --- a/tests/e2e/crisis/client/testsuite/cli_test.go +++ b/tests/e2e/crisis/client/testsuite/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testsuite diff --git a/tests/e2e/distribution/client/testutil/cli_test.go b/tests/e2e/distribution/client/testutil/cli_test.go index eb0b664ce4..ba7dfb8231 100644 --- a/tests/e2e/distribution/client/testutil/cli_test.go +++ b/tests/e2e/distribution/client/testutil/cli_test.go @@ -1,3 +1,6 @@ +//go:build e2e +// +build e2e + package testutil import ( diff --git a/tests/e2e/evidence/client/testutil/cli_test.go b/tests/e2e/evidence/client/testutil/cli_test.go index ee638f222a..bd3956fdd7 100644 --- a/tests/e2e/evidence/client/testutil/cli_test.go +++ b/tests/e2e/evidence/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/feegrant/client/testutil/cli_test.go b/tests/e2e/feegrant/client/testutil/cli_test.go index 22b697d3c6..de33b7fba3 100644 --- a/tests/e2e/feegrant/client/testutil/cli_test.go +++ b/tests/e2e/feegrant/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/genutil/client/testutil/cli_test.go b/tests/e2e/genutil/client/testutil/cli_test.go index fa008da1de..2f228207f2 100644 --- a/tests/e2e/genutil/client/testutil/cli_test.go +++ b/tests/e2e/genutil/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/gov/client/testutil/cli_test.go b/tests/e2e/gov/client/testutil/cli_test.go index 943b8f2f8e..6941bce382 100644 --- a/tests/e2e/gov/client/testutil/cli_test.go +++ b/tests/e2e/gov/client/testutil/cli_test.go @@ -1,3 +1,6 @@ +//go:build e2e +// +build e2e + package testutil import ( diff --git a/tests/e2e/group/client/testutil/cli_test.go b/tests/e2e/group/client/testutil/cli_test.go index 5778b1bb7f..d592f50ef7 100644 --- a/tests/e2e/group/client/testutil/cli_test.go +++ b/tests/e2e/group/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/mint/client/testutil/cli_test.go b/tests/e2e/mint/client/testutil/cli_test.go index ed4a8f7ef0..103577875d 100644 --- a/tests/e2e/mint/client/testutil/cli_test.go +++ b/tests/e2e/mint/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/nft/client/testutil/cli_test.go b/tests/e2e/nft/client/testutil/cli_test.go index 2aef33ab9c..68451fb200 100644 --- a/tests/e2e/nft/client/testutil/cli_test.go +++ b/tests/e2e/nft/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/params/client/testutil/cli_test.go b/tests/e2e/params/client/testutil/cli_test.go index a31730e165..41b155354c 100644 --- a/tests/e2e/params/client/testutil/cli_test.go +++ b/tests/e2e/params/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/server/export_test.go b/tests/e2e/server/export_test.go index 44ad35e0b9..2452bd2836 100644 --- a/tests/e2e/server/export_test.go +++ b/tests/e2e/server/export_test.go @@ -1,3 +1,6 @@ +//go:build e2e +// +build e2e + package server_test import ( diff --git a/tests/e2e/slashing/client/testutil/cli_test.go b/tests/e2e/slashing/client/testutil/cli_test.go index ae3939f776..f019f5a7fc 100644 --- a/tests/e2e/slashing/client/testutil/cli_test.go +++ b/tests/e2e/slashing/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/staking/client/testutil/cli_test.go b/tests/e2e/staking/client/testutil/cli_test.go index 398097d2d8..3bfc2f15ed 100644 --- a/tests/e2e/staking/client/testutil/cli_test.go +++ b/tests/e2e/staking/client/testutil/cli_test.go @@ -1,5 +1,5 @@ -//go:build norace -// +build norace +//go:build e2e +// +build e2e package testutil diff --git a/tests/e2e/upgrade/client/testutil/cli_test.go b/tests/e2e/upgrade/client/testutil/cli_test.go index b8d5eed13d..6e431b1378 100644 --- a/tests/e2e/upgrade/client/testutil/cli_test.go +++ b/tests/e2e/upgrade/client/testutil/cli_test.go @@ -1,3 +1,6 @@ +//go:build e2e +// +build e2e + package testutil import ( diff --git a/x/auth/tx/service_test.go b/x/auth/tx/service_test.go index eb7cc44f7b..c9708f08b0 100644 --- a/x/auth/tx/service_test.go +++ b/x/auth/tx/service_test.go @@ -1,5 +1,3 @@ -// build +norace - package tx_test import (