test: clean up E2E test volumes using a container (#5509)

This commit is contained in:
Erik Grinaker
2020-10-15 20:59:16 +02:00
committed by Erik Grinaker
parent 8ebb39eed6
commit 4e2e487c7a
3 changed files with 21 additions and 2 deletions

View File

@@ -29,7 +29,7 @@ jobs:
- name: Run testnets in group ${{ matrix.group }}
working-directory: test/e2e
run: sudo ./run-multiple.sh networks/nightly/*-group${{ matrix.group }}-*.toml
run: ./run-multiple.sh networks/nightly/*-group${{ matrix.group }}-*.toml
- name: Notify Slack on failure
uses: rtCamp/action-slack-notify@e9db0ef

View File

@@ -29,7 +29,7 @@ jobs:
- name: Run CI testnet
working-directory: test/e2e
run: sudo ./build/runner -f networks/ci.toml
run: ./build/runner -f networks/ci.toml
if: "env.GIT_DIFF != ''"
- name: Emit logs on failure

View File

@@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"os"
"path/filepath"
e2e "github.com/tendermint/tendermint/test/e2e/pkg"
)
@@ -21,6 +22,24 @@ func Cleanup(testnet *e2e.Testnet) error {
}
logger.Info("Removing Docker containers and networks")
err = execCompose(testnet.Dir, "stop")
if err != nil {
return err
}
// On Linux, some local files in the volume will be owned by root since Tendermint
// runs as root inside the container, so we need to clean them up from within a
// container running as root too.
absDir, err := filepath.Abs(testnet.Dir)
if err != nil {
return err
}
err = execDocker("run", "--entrypoint", "", "-v", fmt.Sprintf("%v:/network", absDir),
"tendermint/e2e-node", "sh", "-c", "rm -rf /network/*/")
if err != nil {
return err
}
err = execCompose(testnet.Dir, "down")
if err != nil {
return err