qdrvm / kagome

Kagome - C++20 implementation of Polkadot Host
https://kagome.readthedocs.io
Apache License 2.0
158 stars 33 forks source link

Zombie tests build pipeline rework #2159

Closed zerg-su closed 2 months ago

zerg-su commented 2 months ago

[//]: # ( Copyright Quadrivium LLC All Rights Reserved SPDX-License-Identifier: Apache-2.0 )

Referenced issues

Description of the Change

• Improved and fixed the Zombie tests pipeline. • Used apt packages for artifact transfer between steps. • Packages are built for kagome-dev, polkadot binaries, runtime caches. • Cloud infrastructure GCP is used for storing packages and Docker images. • More details can be read and questions can be asked in the documentation (https://docs.google.com/document/d/1fLZbhOBaMm3WTZe7MjUj9rjhIhyJ5YizUTXcwF8X1GQ/edit#heading=h.h7pwawor6wy6). • Ability to build packages and use the build on a local machine. • The build is based on the use of Makefiles to perform pipeline steps. • -Werror flag selector for the Zombie tests pipeline.

Possible Drawbacks

• The concept has changed (Docker images were used previously), it may take some time to get used to the new concept. • Some environment variables and a credentials file for GCP are required. • Currently, a built package is used for the runtime, but it has been observed that runtime caches may sometimes differ. It is necessary to ensure that no new runtime cache files appear after running Zombie tests.

Checklist Before Opening a PR

Before you open a Pull Request (PR), please make sure you've completed the following steps and confirm by answering 'Yes' to each item:

  1. Code is formatted: Have you run your code through clang-format to ensure it adheres to the project's coding standards? [Yes]
  2. Code is documented: Have you added comments and documentation to your code according to the guidelines in the project's contributing guidelines? [Yes]
  3. Self-review: Have you reviewed your own code to ensure it is free of typos, syntax errors, logical errors, and unresolved TODOs or FIXME without linking to an issue? [Yes]
  4. Zombienet Tests: Have you ensured that the zombienet tests are passing? Zombienet is a network simulation and testing tool used in this project. It's important to ensure that these tests pass to maintain the stability and reliability of the project. [Yes]