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

Feature/circleci rta #20769

Merged
merged 80 commits into from
Jun 6, 2024
Merged

Feature/circleci rta #20769

merged 80 commits into from
Jun 6, 2024

Conversation

dothebart
Copy link
Contributor

@dothebart dothebart commented Mar 20, 2024

Scope & Purpose

work on the ability to launch rta ui tests from circle-ci.

  • one codepath now used to download aux binaries
  • configuration switches added to enable and filter for test cases + deployments

added Switches:

  • ui:

    • off or not specified: disabled.
    • only : run just the enterprise UI tests => Skip community, ARM, testing.js tests
    • community: run the community UI tests as well
    • anything else: run enterprise UI tests
  • ui-testsuites: coma separated list of UI testsuites to run (if not all). Cavehead: to parallize, this repo needs to know the list of tests as default.

  • ui-deployments: corrosponds to --starter-mode from RTA, atm only SG is specified by default.

  • 🍕 New feature

@cla-bot cla-bot bot added the cla-signed label Mar 20, 2024
@dothebart dothebart force-pushed the feature/circleci-rta branch 2 times, most recently from 207fc1b to 763ea97 Compare March 21, 2024 10:40
Copy link
Contributor

@KVS85 KVS85 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

off should be added (set by default in case of empty ui value)

@@ -42,7 +51,7 @@ parameters:
# these are basically global constants
build-targets:
type: string
default: "arangod arangoimport arangoexport arangodump arangorestore arangobench frontend"
default: "arangod arangoimport arangoexport arangodump arangorestore arangobench frontend arangovpack"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need arangovpack here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RTA expects to find all binaries that are there in distribution packages. arangovpack is part of that. We probably should have tests for it?

@@ -233,6 +242,8 @@ jobs:
s3-prefix:
type: string
default: ""
arch:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which are possible? What is default?

Copy link
Contributor Author

@dothebart dothebart Jun 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is generated by generate_config.py:482; it will depend on the current target architecture.
Its string is later on adjusted to download the go aux-binaries.

.circleci/base_config.yml Outdated Show resolved Hide resolved
.circleci/generate_config.py Outdated Show resolved Hide resolved
Comment on lines 388 to 390
deployments = ['SG'
#"CL",
]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is "CL" commented out?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we run both by default or not? since its doubling the number of jobs. Basically a management decision.

Comment on lines +403 to +405
elif args.ui == "community":
add_rta_ui_test_jobs_to_workflow(args, workflow, build_config, build_job)
if args.ui == "only":
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we have logically inequal values within the same ui parameter?

Copy link
Contributor Author

@dothebart dothebart Jun 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • we will allways run enterprise.
  • if community we will run those as well.
  • if only we won't run testing.js tests that would be added below.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Questions/suggestions

  1. What is testing.js?
  2. what do you think about making ui an array, which can have any of these values: 'enterprise' | 'community' | 'ARM' | 'testing.js'. So if we want to run both, we will set it to ['enterprise', 'community'].

Copy link
Contributor Author

@dothebart dothebart Jun 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

testing.js is the framework which runs all the regular integration tests. Its using arangosh. Most of the time its probably not going to be of bigger interest for the person starting the UI tests - however the backend developers use them all the time.
The selenium tests are created under the python written RTA framework, which attempts to test installations and deployments - we use it during the release testing.
Regarding ARM, I don't think that running the tests on ARM yields different results, unless maybe we run them with instrumented binaries (which then tend to be slooouuwww)

@KVS85 KVS85 added this to the devel milestone Jun 5, 2024
@KVS85 KVS85 self-requested a review June 6, 2024 07:38
@KVS85 KVS85 merged commit a7f69dd into devel Jun 6, 2024
1 of 2 checks passed
@KVS85 KVS85 deleted the feature/circleci-rta branch June 6, 2024 07:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants