Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ENH] - Move integration tests to its own test suit #2855

Open
viniciusdc opened this issue Nov 14, 2024 · 1 comment
Open

[ENH] - Move integration tests to its own test suit #2855

viniciusdc opened this issue Nov 14, 2024 · 1 comment

Comments

@viniciusdc
Copy link
Contributor

viniciusdc commented Nov 14, 2024

Feature description

Currently, our main integration tests for cloud provider deployments are tightly coupled to pytest for the deployment part. While this ensures integration with Python’s ecosystem, it makes maintenance more complex and error handling in CI more cumbersome.

The primary goal is to decouple the cloud provider deployment tests from pytest and move them into independent CI workflows—potentially using a matrix structure to improve organization and parallelization.

Our end goal is to refactor cloud deployment tests in CI so that they are:

  1. Decoupled the deployment steps from pytest and structured as independent workflows. Mostly removing the need for this function:

def deploy(request):
"""Deploy Nebari on the given cloud."""
ignore_warnings()
cloud = request.config.getoption("--cloud")
# initialize
deployment_dir = _get_or_create_deployment_directory(cloud)
config = render_config_partial(
project_name=deployment_dir.name,
namespace="dev",
nebari_domain=DOMAIN.format(cloud=cloud),
cloud_provider=cloud,
ci_provider="github-actions",
auth_provider="password",
)

Since most of that pre-default configs, can now be passed to nebari's using the new -s argument for config-sets, and we can store the yaml files under the test folder (see relevant issue #2865)
Standardized for running tests on a live cluster, since we primarily run the same tests already present in the local integration test;
4. (Stretch goal) Easily executable locally using a Makefile, allowing developers to run integration tests on an already running cluster without requiring complex manual setup.

Value and/or benefit

Help decrease the burden of testing and releasing. This also would be helpful to start our black-box testing steps.

Anything else?

No response

@viniciusdc
Copy link
Contributor Author

For now, just having the CI cloud deployments running outside of any python/pytest logic would be ideal, something as more straightforward as:

  • setup init files
  • setup deployment config options if any
  • run nebari deploy
  • run pytest test suit
  • run any teardown logic

Later on, if time allows, it would be great to have a makefile for setting up the environment for a user/developer to run the integration tests (pytest actual methods)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: New 🚦
Development

No branches or pull requests

3 participants