From 065918d1cddaae0894bd32c3ed485960d02060ba Mon Sep 17 00:00:00 2001 From: Sam Kleinman Date: Tue, 7 Dec 2021 10:11:23 -0500 Subject: [PATCH] ci: cleanup build/test targets (#7393) --- .github/workflows/build.yml | 82 +++++++++++++++++++++++ .github/workflows/coverage.yml | 100 ----------------------------- .github/workflows/docker.yml | 2 +- .github/workflows/fuzz-nightly.yml | 2 +- .github/workflows/tests.yml | 99 ++++++++++------------------ 5 files changed, 118 insertions(+), 167 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/coverage.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..f119ec04c --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,82 @@ +name: Build +# Tests runs different tests (test_abci_apps, test_abci_cli, test_apps) +# This workflow runs on every push to master or release branch and every pull requests +# All jobs will pass without running if no *{.go, .mod, .sum} files have been modified +on: + pull_request: + push: + branches: + - master + - release/** + +jobs: + build: + name: Build + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + goarch: ["arm", "amd64"] + goos: ["linux"] + timeout-minutes: 5 + steps: + - uses: actions/setup-go@v2 + with: + go-version: "1.17" + - uses: actions/checkout@v2.4.0 + - uses: technote-space/get-diff-action@v5 + with: + PATTERNS: | + **/**.go + "!test/" + go.mod + go.sum + Makefile + - name: install + run: GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} make build + if: "env.GIT_DIFF != ''" + + test_abci_cli: + runs-on: ubuntu-latest + needs: build + timeout-minutes: 5 + steps: + - uses: actions/setup-go@v2 + with: + go-version: "1.17" + - uses: actions/checkout@v2.4.0 + - uses: technote-space/get-diff-action@v5 + with: + PATTERNS: | + **/**.go + go.mod + go.sum + - name: install + run: make install_abci + if: "env.GIT_DIFF != ''" + - run: abci/tests/test_cli/test.sh + shell: bash + if: "env.GIT_DIFF != ''" + + test_apps: + runs-on: ubuntu-latest + needs: build + timeout-minutes: 5 + steps: + - uses: actions/setup-go@v2 + with: + go-version: "1.17" + - uses: actions/checkout@v2.4.0 + - uses: technote-space/get-diff-action@v5 + with: + PATTERNS: | + **/**.go + go.mod + go.sum + - name: install + run: make install + if: "env.GIT_DIFF != ''" + - name: test_apps + run: test/app/test.sh + shell: bash + if: "env.GIT_DIFF != ''" diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml deleted file mode 100644 index 960598ad6..000000000 --- a/.github/workflows/coverage.yml +++ /dev/null @@ -1,100 +0,0 @@ -name: Test Coverage -on: - pull_request: - push: - paths: - - "**.go" - branches: - - master - - release/** - -jobs: - build-linux: - name: Build - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - goarch: ["arm", "amd64"] - timeout-minutes: 5 - steps: - - uses: actions/setup-go@v2 - with: - go-version: "1.17" - - uses: actions/checkout@v2.4.0 - - uses: technote-space/get-diff-action@v5 - with: - PATTERNS: | - **/**.go - "!test/" - go.mod - go.sum - Makefile - - name: install - run: GOOS=linux GOARCH=${{ matrix.goarch }} make build - if: "env.GIT_DIFF != ''" - - tests: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - part: ["00", "01", "02", "03"] - steps: - - uses: actions/setup-go@v2 - with: - go-version: "1.17" - - uses: actions/checkout@v2.4.0 - - uses: technote-space/get-diff-action@v5 - with: - PATTERNS: | - **/**.go - "!test/" - go.mod - go.sum - Makefile - - name: test & coverage report creation - run: | - make test-group-${{ matrix.part }} NUM_SPLIT=4 - if: env.GIT_DIFF - - uses: actions/upload-artifact@v2 - with: - name: "${{ github.sha }}-${{ matrix.part }}-coverage" - path: ./build/${{ matrix.part }}.profile.out - - upload-coverage-report: - runs-on: ubuntu-latest - needs: tests - steps: - - uses: actions/checkout@v2.4.0 - - uses: technote-space/get-diff-action@v5 - with: - PATTERNS: | - **/**.go - "!test/" - go.mod - go.sum - Makefile - - uses: actions/download-artifact@v2 - with: - name: "${{ github.sha }}-00-coverage" - if: env.GIT_DIFF - - uses: actions/download-artifact@v2 - with: - name: "${{ github.sha }}-01-coverage" - if: env.GIT_DIFF - - uses: actions/download-artifact@v2 - with: - name: "${{ github.sha }}-02-coverage" - if: env.GIT_DIFF - - uses: actions/download-artifact@v2 - with: - name: "${{ github.sha }}-03-coverage" - if: env.GIT_DIFF - - run: | - cat ./*profile.out | grep -v "mode: set" >> coverage.txt - if: env.GIT_DIFF - - uses: codecov/codecov-action@v2.1.0 - with: - file: ./coverage.txt - if: env.GIT_DIFF diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 033a7c46f..dffc28689 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,4 +1,4 @@ -name: Build & Push +name: Docker # Build & Push rebuilds the tendermint docker image on every push to master and creation of tags # and pushes the image to https://hub.docker.com/r/interchainio/simapp/tags on: diff --git a/.github/workflows/fuzz-nightly.yml b/.github/workflows/fuzz-nightly.yml index d38e1f785..e1167e2c8 100644 --- a/.github/workflows/fuzz-nightly.yml +++ b/.github/workflows/fuzz-nightly.yml @@ -1,5 +1,5 @@ # Runs fuzzing nightly. -name: fuzz-nightly +name: Fuzz Tests on: workflow_dispatch: # allow running workflow manually schedule: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index df069382c..d8aa5e71f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,19 +1,20 @@ -name: Tests -# Tests runs different tests (test_abci_apps, test_abci_cli, test_apps) -# This workflow runs on every push to master or release branch and every pull requests -# All jobs will pass without running if no *{.go, .mod, .sum} files have been modified +name: Test on: pull_request: push: + paths: + - "**.go" branches: - master - release/** jobs: - build: - name: Build + tests: runs-on: ubuntu-latest - timeout-minutes: 5 + strategy: + fail-fast: false + matrix: + part: ["00", "01", "02", "03"] steps: - uses: actions/setup-go@v2 with: @@ -23,84 +24,52 @@ jobs: with: PATTERNS: | **/**.go + "!test/" go.mod go.sum - - name: install - run: make install install_abci - if: "env.GIT_DIFF != ''" - - uses: actions/cache@v2.1.7 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- + Makefile + - name: Run Go Tests + run: | + make test-group-${{ matrix.part }} NUM_SPLIT=4 if: env.GIT_DIFF - # Cache binaries for use by other jobs - - uses: actions/cache@v2.1.7 + - uses: actions/upload-artifact@v2 with: - path: ~/go/bin - key: ${{ runner.os }}-${{ github.sha }}-tm-binary - if: env.GIT_DIFF + name: "${{ github.sha }}-${{ matrix.part }}-coverage" + path: ./build/${{ matrix.part }}.profile.out - test_abci_cli: + upload-coverage-report: runs-on: ubuntu-latest - needs: build - timeout-minutes: 5 + needs: tests steps: - - uses: actions/setup-go@v2 - with: - go-version: "1.17" - uses: actions/checkout@v2.4.0 - uses: technote-space/get-diff-action@v5 with: PATTERNS: | **/**.go + "!test/" go.mod go.sum - - uses: actions/cache@v2.1.7 + Makefile + - uses: actions/download-artifact@v2 with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- + name: "${{ github.sha }}-00-coverage" if: env.GIT_DIFF - - uses: actions/cache@v2.1.7 + - uses: actions/download-artifact@v2 with: - path: ~/go/bin - key: ${{ runner.os }}-${{ github.sha }}-tm-binary - if: env.GIT_DIFF - - run: abci/tests/test_cli/test.sh - shell: bash + name: "${{ github.sha }}-01-coverage" if: env.GIT_DIFF - - test_apps: - runs-on: ubuntu-latest - needs: build - timeout-minutes: 5 - steps: - - uses: actions/setup-go@v2 + - uses: actions/download-artifact@v2 with: - go-version: "1.17" - - uses: actions/checkout@v2.4.0 - - uses: technote-space/get-diff-action@v5 - with: - PATTERNS: | - **/**.go - go.mod - go.sum - - uses: actions/cache@v2.1.7 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- + name: "${{ github.sha }}-02-coverage" if: env.GIT_DIFF - - uses: actions/cache@v2.1.7 + - uses: actions/download-artifact@v2 with: - path: ~/go/bin - key: ${{ runner.os }}-${{ github.sha }}-tm-binary + name: "${{ github.sha }}-03-coverage" if: env.GIT_DIFF - - name: test_apps - run: test/app/test.sh - shell: bash + - run: | + cat ./*profile.out | grep -v "mode: set" >> coverage.txt + if: env.GIT_DIFF + - uses: codecov/codecov-action@v2.1.0 + with: + file: ./coverage.txt if: env.GIT_DIFF