/e2e-testing

Formal verification of Elastic-Agent and more using BDD

Primary LanguageGo

Build Status

End-2-End tests for the Observability projects

This repository contains:

  1. A CI Infrastructure to provision VMs where the tests will be executed at CI time.

  2. A Go library to provision services in the way of Docker containers. It will provide the services using Docker Compose files.

  3. A test framework to execute e2e tests for certain Observability projects:

  4. A collection of utilities and helpers used in tests.

If you want to start writing E2E tests, please jump to our quickstart guide here.

Building

This project utilizes goreleaser to build the cli binaries for all supported platforms. Please see goreleaser installation for instructions on making that available to you.

Once goreleaser is installed building the cli is as follows:

$ make build

This will put the built distribution inside of dist in the current working directory.

Contributing

pre-commit

This project uses pre-commit so, after installing it, please install the already configured pre-commit hooks we support, to enable pre-commit in your local git repository:

$ pre-commit install
pre-commit installed at .git/hooks/pre-commit

To understand more about the hooks we use, please take a look at pre-commit's configuration file.

Backports

This project requires backports to the existing active branches. Those branches are defined in the .backportrc.json and .mergify.yml files. In order to do so, there are two different approaches:

Mergify 🥇

This is the preferred approach. Backports are created automatically as long as the rules defined in .mergify.yml are fulfilled. From the user's point of view it's required only to attach a labels to the pull request that should be backported, and once it gets merged the automation happens under the hood.

Backportrc 👴

This is the traditional approach where the backports are created by the author who created the original pull request. For such, it's required to install backport and run the command in your terminal

$ backport  --label <YOUR_LABELS> --auto-assign --pr <YOUR_PR>