Browse Source

test: add GitHub action for end-to-end tests (#5452)

Partial fix for #5291.
pull/5561/head
Erik Grinaker 4 years ago
committed by Erik Grinaker
parent
commit
4b3565fcaa
4 changed files with 50 additions and 2 deletions
  1. +38
    -0
      .github/workflows/e2e.yml
  2. +2
    -0
      test/e2e/README.md
  3. +2
    -2
      test/e2e/docker/Dockerfile
  4. +8
    -0
      test/e2e/runner/main.go

+ 38
- 0
.github/workflows/e2e.yml View File

@ -0,0 +1,38 @@
name: e2e-tests
# Runs the CI end-to-end test network on all pushes to master or release branches
# and every pull request, but only if any Go files have been changed.
on:
pull_request:
push:
branches:
- master
- release/**
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v2
- uses: technote-space/get-diff-action@v3
with:
SUFFIX_FILTER: |
.go
.mod
.sum
SET_ENV_NAME_INSERTIONS: 1
SET_ENV_NAME_LINES: 1
- name: Build
working-directory: test/e2e
# Run two make jobs in parallel, since we can't run steps in parallel.
run: make -j2 docker runner
- name: Run CI testnet
working-directory: test/e2e
run: sudo ./build/runner -f networks/ci.toml
- name: Emit logs on failure
if: ${{ failure() }}
working-directory: test/e2e
run: ./build/runner -f networks/ci.toml logs

+ 2
- 0
test/e2e/README.md View File

@ -36,6 +36,8 @@ The test runner has the following stages, which can also be executed explicitly
* `logs`: outputs all node logs. * `logs`: outputs all node logs.
* `tail`: tails (follows) node logs until cancelled.
## Tests ## Tests
Test cases are written as normal Go tests in `tests/`. They use a `testNode()` helper which executes each test as a parallel subtest for each node in the network. Test cases are written as normal Go tests in `tests/`. They use a `testNode()` helper which executes each test as a parallel subtest for each node in the network.


+ 2
- 2
test/e2e/docker/Dockerfile View File

@ -3,8 +3,8 @@
# instead of spending time compiling them. # instead of spending time compiling them.
FROM golang:1.15 FROM golang:1.15
RUN apt-get update -y && apt-get upgrade -y
RUN apt-get install -y libleveldb-dev librocksdb-dev
RUN apt-get -qq update -y && apt-get -qq upgrade -y >/dev/null
RUN apt-get -qq install -y libleveldb-dev librocksdb-dev >/dev/null
# Set up build directory /src/tendermint # Set up build directory /src/tendermint
ENV TENDERMINT_BUILD_OPTIONS badgerdb,boltdb,cleveldb,rocksdb ENV TENDERMINT_BUILD_OPTIONS badgerdb,boltdb,cleveldb,rocksdb


+ 8
- 0
test/e2e/runner/main.go View File

@ -167,6 +167,14 @@ func NewCLI() *CLI {
cli.root.AddCommand(&cobra.Command{ cli.root.AddCommand(&cobra.Command{
Use: "logs", Use: "logs",
Short: "Shows the testnet logs", Short: "Shows the testnet logs",
RunE: func(cmd *cobra.Command, args []string) error {
return execComposeVerbose(cli.testnet.Dir, "logs")
},
})
cli.root.AddCommand(&cobra.Command{
Use: "tail",
Short: "Tails the testnet logs",
RunE: func(cmd *cobra.Command, args []string) error { RunE: func(cmd *cobra.Command, args []string) error {
return execComposeVerbose(cli.testnet.Dir, "logs", "--follow") return execComposeVerbose(cli.testnet.Dir, "logs", "--follow")
}, },


Loading…
Cancel
Save