Workspaces setup done in runtime in CI
What does this MR do and why?
This MR is the implementation of the Support for Workspaces to be setup in the runtime in the CI and also support using existing cluster - Refer #397005 (closed) and #414915 (closed)
Existing Test
The existing E2E test is moved under qa/qa/specs/features/ee/browser_ui/3_create/remote_development/without_setup/workspace_actions_without_setup_spec.rb
This test is in Quarantine and it is still used by the developers for local testing. This test may be removed in the future when its not needed. It test can be run using the - scripts/remote_development/run-e2e-tests.sh
Pre-requisites for this E2E test
- It requires two variables AGENT_NAME and DEVFILE_PROJECT to be declared
This E2E tests will do the following:
- It calls the shared_examples "workspaces actions"
- Uses the AGENT_NAME and DEVFILE_PROJECT variable values to create a new workspace
- After the new workspace is successfully running, it stops and then terminates it
This test can be run by
DEVFILE_PROJECT="devfile-test-project" AGENT_NAME="test-agent" bundle exec bin/qa Test::Instance::All "$TEST_INSTANCE_URL" -- --tag quarantine qa/specs/features/ee/browser_ui/3_create/remote_development/without_setup
New Test
The new E2E test is under qa/qa/specs/features/ee/browser_ui/3_create/remote_development/workspace_actions_spec.rb
This is the implementation to install and then create workspace from scratch
Pre-requisites for this E2E test
- This E2E test runs only on staging as of now, because it needs kubernetes agent and KAS to be running already (In staging this is already enabled)
- For gitlab-workspaces-proxy, it needs a Oauth application in the environment in which the test will run, so this oauth application is already created in staging, and the client id and secret are stored as CI Variables
- The workspaces will be launched in a new domain, *.workspaces.staging.gitlabqa.dev, so this new domain is registered and the corresponding cloud dns setup is done already (in GCP project group-qa-tests )
- The above domain needs SSL certificates, which created through certbot and is passed as WORKSPACES_DOMAIN_CERT, WORKSPACES_DOMAIN_KEY, WORKSPACES_WILDCARD_CERT and WORKSPACES_WILDCARD_KEY. It has validity of 3 months after which it needs to be renewed
- This test will use the WORKSPACES_CLUSTER_AVAILABLE CI variable to determine if the cluster needs to be created or existing cluster needs to be used ( #414915 (closed))
This E2E tests will do the following:
If WORKSPACES_CLUSTER_AVAILABLE=false (default case)
- It creates new kubernetes cluster in the GKE - in the test project "group-qa-tests"
- Installs helm, ingress-controller in the k8s cluster
- Installs Gitlab-Workspaces-proxy with the Oauth client id, secret, redirect uri and signing key. It also uses the certificates passed
- Gets the load balancer IP of the Ingress and updates the cloud dns domain with the IP
- Creates test group with two projects - agent project and devfile project (this contains the devfile for workspace initialisation)
- In the agent project adds the workspaces config yml file and creates a agent_token for installing the agent in the cluster
- Setup the above agent with the token in the cluster
- In the devfile project adds the devfile config yml file
- It calls the shared_examples "workspaces actions"
- Uses the agent name and devfile project name from the above setup to create a new workspace
- After the new workspace is successfully running, it stops and then terminates it
Finally, Once the test is complete the cluster will be deleted, the agent and agent_token will be removed.
If WORKSPACES_CLUSTER_AVAILABLE=true
- It uses existing kubernetes cluster with CI variables WORKSPACES_CLUSTER_NAME and WORKSPACES_CLUSTER_REGION
- Helm, ingress-controller, Gitlab-Workspaces-proxy will be installed already in this cluster and load balancer IP will be updated in the cloud dns domain
The next steps are same as above:
- Creates test group with two projects - agent project and devfile project (this contains the devfile for workspace initialisation)
- In the agent project add the workspaces config yml and create a agent_token for installing the agent in the cluster
- Setup the above agent with the token in the cluster
- In the devfile project add the devfile config yml
- It calls the shared_examples "workspaces actions"
- Uses the agent name and devfile project name from the above setup to create a new workspace
- After the new workspace is successfully running, it stops and then terminates it
Finally, Once the test is complete the cluster will remain and only the agent and agent_token will be removed.
New CI variables introduced in this change:
- WORKSPACES_PROXY_DOMAIN
- WORKSPACES_OAUTH_APP_ID
- WORKSPACES_OAUTH_APP_SECRET
- WORKSPACES_OAUTH_SIGNING_KEY
- WORKSPACES_DOMAIN_CERT
- WORKSPACES_DOMAIN_KEY
- WORKSPACES_WILDCARD_CERT
- WORKSPACES_WILDCARD_KEY
The MR to add these into terraform - https://gitlab.com/gitlab-org/quality/engineering-productivity-infrastructure/-/merge_requests/436
The below variables are not provisioned right now, and can be done once the cluster for the tests are in place
- WORKSPACES_CLUSTER_AVAILABLE
- WORKSPACES_CLUSTER_NAME
- WORKSPACES_CLUSTER_REGION
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
Output
nivethaprabakaran@Nivetha qa % bundle exec bin/qa Test::Instance::All https://staging.gitlab.com -- -- qa/specs/features/ee/browser_ui/3_create/remote_development/workspace_actions_spec.rb
2023-08-01 18:14:56 WARN Selenium [:logger_info] Details on how to use and modify Selenium logger:
https://selenium.dev/documentation/webdriver/troubleshooting/logging#ruby
2023-08-01 18:14:56 WARN Selenium applicable driver not found; attempting to install with Selenium Manager
2023-08-01 18:14:58 / CONF ::
==> Base URL: https://staging.gitlab.com
==> Browser: #<Selenium::WebDriver::Chrome::Driver:0x000000010cd35768>
==> Libraries: Chemlab::Vendor
[Aug 01 2023 18:14:58 IST (QA Tests)] INFO -- Caching token for username: gitlab-qa-bot, last six chars of token:KSTdjm
[Aug 01 2023 18:14:58 IST (QA Tests)] INFO -- Caching token for username: gitlab-qa, last six chars of token:abiBtU
[Aug 01 2023 18:14:58 IST (QA Tests)] INFO -- Browser: chrome
[Aug 01 2023 18:14:58 IST (QA Tests)] INFO -- Performing sanity check for environment!
Run options: exclude {:orchestrated=>true, :transient=>true, :sanity_feature_flags=>true, :geo=>true, :skip_live_env=>true}
Randomized with seed 2590
Create
Remote Development
when setup is done in runtime
behaves like workspaces actions
[Aug 01 2023 18:15:01 IST (QA Tests)] INFO -- Starting test: Create Remote Development when setup is done in runtime behaves like workspaces actions creates a new workspace and then stops and terminates it
checking for kubectl... yes
checking for gcloud... yes
[Aug 01 2023 18:15:01 IST (QA Tests)] INFO -- Executing: `gcloud auth activate-service-account automated-qa-tests@group-qa-tests-566cc6.iam.gserviceaccount.com --key-file /var/folders/96/qv364xss6h75crxtybswsp1c0000gn/T/gcloud-account-key20230801-68626-djhnv2`
.
[Aug 01 2023 18:15:02 IST (QA Tests)] INFO -- Executing: `gcloud container clusters create qa-cluster-20230801124502-90451dab --region europe-west4 --disk-size 15GB --num-nodes 1 && gcloud container clusters get-credentials --region europe-west4 qa-cluster-20230801124502-90451dab `
............
[Aug 01 2023 18:21:25 IST (QA Tests)] INFO -- Executing: `curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && chmod 700 get_helm.sh && DESIRED_VERSION=v3.7.0 ./get_helm.sh `
.
[Aug 01 2023 18:21:26 IST (QA Tests)] INFO -- ==> Retrieved a QA::Resource::Sandbox with full_path 'gitlab-qa-sandbox-group-3' via api in 0.6 seconds
[Aug 01 2023 18:21:28 IST (QA Tests)] INFO -- ==> Built a QA::Resource::Group with full_path 'gitlab-qa-sandbox-group-3/parent-group-to-test-remote-development-cbcce41978320fe4' via api in 2.54 seconds
[Aug 01 2023 18:21:30 IST (QA Tests)] INFO -- ==> Built a QA::Resource::Project with full_path 'gitlab-qa-sandbox-group-3/parent-group-to-test-remote-development-cbcce41978320fe4/agent-project-53d9fc1c6695ddbb' via api in 1.77 seconds
[Aug 01 2023 18:21:31 IST (QA Tests)] INFO -- ==> Built a QA::Resource::Clusters::Agent with name 'remotedev-5696df4e' via api in 0.49 seconds
[Aug 01 2023 18:21:31 IST (QA Tests)] INFO -- ==> Built a QA::Resource::Clusters::AgentToken with id '1024155' via api in 0.56 seconds
[Aug 01 2023 18:21:33 IST (QA Tests)] INFO -- ==> Built a QA::Resource::Repository::Commit via api in 1.73 seconds
[Aug 01 2023 18:21:35 IST (QA Tests)] INFO -- ==> Built a QA::Resource::Project with full_path 'gitlab-qa-sandbox-group-3/parent-group-to-test-remote-development-cbcce41978320fe4/devfile-project-e7c3718718279fb6' via api in 2.2 seconds
[Aug 01 2023 18:21:38 IST (QA Tests)] INFO -- ==> Built a QA::Resource::Repository::Commit via api in 2.26 seconds
[Aug 01 2023 18:21:38 IST (QA Tests)] INFO -- Executing: `helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo update && helm install ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx --create-namespace --version 4.3.0 `
.....................................................
[Aug 01 2023 18:22:26 IST (QA Tests)] INFO -- Executing: `helm repo add gitlab-workspaces-proxy https://gitlab.com/api/v4/projects/gitlab-org%2fremote-development%2fgitlab-workspaces-proxy/packages/helm/devel && helm repo update && helm upgrade --install gitlab-workspaces-proxy gitlab-workspaces-proxy/gitlab-workspaces-proxy --version 0.1.6 --namespace=gitlab-workspaces --create-namespace --set="auth.client_id=xxxxx" --set="auth.client_secret=xxxxx" --set="auth.host=https://staging.gitlab.com" --set="auth.redirect_uri=https://workspaces.staging.gitlabqa.dev/auth/callback" --set="auth.signing_key=123456789" --set="ingress.host.workspaceDomain=workspaces.staging.gitlabqa.dev" --set="ingress.host.wildcardDomain=*.workspaces.staging.gitlabqa.dev" --set="ingress.tls.workspaceDomainCert=xxxx" --set="ingress.tls.workspaceDomainKey=xxxx" --set="ingress.tls.wildcardDomainCert=xxxx" --set="ingress.tls.wildcardDomainKey=xxxx" --set="ingress.className=nginx" `
...............
[Aug 01 2023 18:22:40 IST (QA Tests)] INFO -- Executing: `helm repo add gitlab https://charts.gitlab.io && helm repo update && helm upgrade --install gitlab-agent gitlab/gitlab-agent --namespace "remotedev-5696df4e" --create-namespace --set image.tag=v16.0.0 --set config.token=xxxxxx --set config.kasAddress=wss://kas.staging.gitlab.com --set config.kasHeaders="{Cookie: gitlab_canary=false}" `
........................
[Aug 01 2023 18:22:50 IST (QA Tests)] INFO -- Executing: `kubectl -n ingress-nginx get svc ingress-nginx-controller -o jsonpath='{.status.loadBalancer.ingress[0].ip}'`
[Aug 01 2023 18:22:53 IST (QA Tests)] INFO -- Executing: `gcloud dns record-sets update workspaces.staging.gitlabqa.dev --rrdatas= --ttl=300 --type=A --zone=gitlabqa-dev `
..
[Aug 01 2023 18:22:54 IST (QA Tests)] INFO -- Executing: `gcloud dns record-sets update "*.workspaces.staging.gitlabqa.dev" --rrdatas= --ttl=300 --type=A --zone=gitlabqa-dev `
..
[Aug 01 2023 18:22:55 IST (QA Tests)] INFO -- filling :login_field with "gitlab-qa"
[Aug 01 2023 18:22:55 IST (QA Tests)] INFO -- clicking the coordinates of :login_field
[Aug 01 2023 18:23:01 IST (QA Tests)] INFO -- filling :password_field with "*****"
[Aug 01 2023 18:23:01 IST (QA Tests)] INFO -- clicking the coordinates of :password_field
[Aug 01 2023 18:23:06 IST (QA Tests)] WARN -- Potentially Slow Code 'wait_for_requests ' took 0.578s
[Aug 01 2023 18:23:06 IST (QA Tests)] WARN -- Potentially Slow Code 'find_element password_field' took 0.594s
[Aug 01 2023 18:23:11 IST (QA Tests)] INFO -- clicking :sign_in_button
[Aug 01 2023 18:23:15 IST (QA Tests)] WARN -- Potentially Slow Code 'click_element sign_in_button' took 3.858s
[Aug 01 2023 18:23:18 IST (QA Tests)] INFO -- clicking :nav_item_link
[Aug 01 2023 18:23:19 IST (QA Tests)] WARN -- Potentially Slow Code 'click_element nav_item_link' took 1.216s
[Aug 01 2023 18:23:21 IST (QA Tests)] WARN -- Potentially Slow Code 'wait_for_requests ' took 1.851s
[Aug 01 2023 18:23:21 IST (QA Tests)] WARN -- Potentially Slow Code 'all_elements workspace_list_item' took 1.858s
[Aug 01 2023 18:23:21 IST (QA Tests)] INFO -- clicking :list_new_workspace_button
[Aug 01 2023 18:23:21 IST (QA Tests)] INFO -- clicking :workspace_devfile_project_id_field
[Aug 01 2023 18:23:23 IST (QA Tests)] WARN -- Potentially Slow Code 'wait_for_requests ' took 1.425s
[Aug 01 2023 18:23:23 IST (QA Tests)] WARN -- Potentially Slow Code 'click_element workspace_devfile_project_id_field' took 1.479s
[Aug 01 2023 18:23:23 IST (QA Tests)] INFO -- Searching in dropdown: "devfile-project-e7c3718718279fb6"
[Aug 01 2023 18:23:27 IST (QA Tests)] WARN -- Potentially Slow Code 'wait_for_requests ' took 1.998s
[Aug 01 2023 18:23:27 IST (QA Tests)] WARN -- Potentially Slow Code 'find_element workspace_cluster_agent_id_field' took 2.006s
[Aug 01 2023 18:23:27 IST (QA Tests)] INFO -- clicking :save_workspace_button
[Aug 01 2023 18:25:03 IST (QA Tests)] INFO -- clicking :workspace_stop_button
[Aug 01 2023 18:25:23 IST (QA Tests)] INFO -- clicking :workspace_terminate_button
[Aug 01 2023 18:25:43 IST (QA Tests)] INFO -- Executing: `gcloud container clusters delete --region europe-west4 qa-cluster-20230801124502-90451dab --quiet --async `
[Aug 01 2023 18:25:48 IST (QA Tests)] INFO -- Removed a QA::Resource::Clusters::AgentToken with id '1024155'
[Aug 01 2023 18:25:48 IST (QA Tests)] INFO -- Removed a QA::Resource::Clusters::Agent with name 'remotedev-5696df4e'
[Aug 01 2023 18:25:51 IST (QA Tests)] INFO -- Removed a QA::Resource::Group with full_path 'gitlab-qa-sandbox-group-3/parent-group-to-test-remote-development-cbcce41978320fe4'
creates a new workspace and then stops and terminates it
Top 1 slowest examples (650.06 seconds, 100.0% of total time):
Create Remote Development when setup is done in runtime behaves like workspaces actions creates a new workspace and then stops and terminates it
650.06 seconds ./qa/specs/features/shared_examples/create_and_terminate_workspace_shared_examples.rb:5
Finished in 10 minutes 50 seconds (files took 5.68 seconds to load)
1 example, 0 failures
Randomized with seed 2590
How to set up and validate locally
Because there's new data-testid
s being introduced here and the test can only be run against Staging, a breakpoint will need to be introduced right after the new workspace listed and to manually add the data-testid
required to locate these elements.
The full list of variable and their values to run this spec can be found in 1password "Run workspaces tests against staging"
bundle exec bin/qa Test::Instance::All https://staging.gitlab.com -- -- qa/specs/features/ee/browser_ui/3_create/remote_development/workspace_actions_spec.rb
Numbered steps to set up and validate the change are strongly suggested.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Merge request reports
Activity
changed milestone to %16.2
added QA Quality featureenhancement test labels
assigned to @nprabakaran
added typefeature label
8 Warnings This merge request is quite big (515 lines changed), please consider splitting it into multiple merge requests. 7285289b: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. 795bee7d: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. 5b98573a: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. 3759ee5c: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. 3759ee5c: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. 043b06d3: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. featureaddition and featureenhancement merge requests normally have a documentation change. Consider adding a documentation update or confirming the documentation plan with the Technical Writer counterpart.
For more information, see:
- The Handbook page on merge request types.
- The definition of done documentation.
1 Message CHANGELOG missing: If you want to create a changelog entry for GitLab FOSS, add the
Changelog
trailer to the commit message you want to add to the changelog.If you want to create a changelog entry for GitLab EE, also add the
EE: true
trailer to your commit message.If this merge request doesn't need a CHANGELOG entry, feel free to ignore this message.
Reviewer roulette
Changes that require review have been detected!
Please refer to the table below for assigning reviewers and maintainers suggested by Danger in the specified category:
Category Reviewer Maintainer QA John McDonnell (
@john.mcdonnell
) (UTC+1, 4.5 hours behind@nprabakaran
)Chloe Liu (
@chloeliu
) (UTC-7, 12.5 hours behind@nprabakaran
)~"Create::IDE - Remote Development Scripts" Reviewer review is optional for ~"Create::IDE - Remote Development Scripts" David O'Regan (
@oregand
) (UTC-4, 9.5 hours behind@nprabakaran
)~"Tooling" Reviewer review is optional for ~"Tooling" Chad Woolley (
@cwoolley-gitlab
) (UTC-7, 12.5 hours behind@nprabakaran
)~"Create::IDE - Remote Development Backend" Reviewer review is optional for ~"Create::IDE - Remote Development Backend" Chloe Liu (
@chloeliu
) (UTC-7, 12.5 hours behind@nprabakaran
)To spread load more evenly across eligible reviewers, Danger has picked a candidate for each review slot, based on their timezone. Feel free to override these selections if you think someone else would be better-suited or use the GitLab Review Workload Dashboard to find other available reviewers.
To read more on how to use the reviewer roulette, please take a look at the Engineering workflow and code review guidelines. Please consider assigning a reviewer or maintainer who is a domain expert in the area of the merge request.
Once you've decided who will review this merge request, assign them as a reviewer! Danger does not automatically notify them for you.
If needed, you can retry the
danger-review
job that generated this comment.Generated by
DangerAllure report
allure-report-publisher
generated test report!e2e-test-on-gdk:
test report for 587a730bexpand test summary
+-----------------------------------------------------------------------+ | suites summary | +------------------+--------+--------+---------+-------+-------+--------+ | | passed | failed | skipped | flaky | total | result | +------------------+--------+--------+---------+-------+-------+--------+ | Manage | 13 | 0 | 1 | 11 | 14 | ❗ | | Govern | 36 | 0 | 0 | 3 | 36 | ❗ | | Verify | 8 | 0 | 0 | 0 | 8 | ✅ | | Create | 46 | 0 | 1 | 7 | 47 | ❗ | | Plan | 51 | 0 | 0 | 4 | 51 | ❗ | | Data Stores | 22 | 0 | 0 | 4 | 22 | ❗ | | Package | 0 | 0 | 1 | 0 | 1 | ➖ | | Monitor | 4 | 0 | 0 | 0 | 4 | ✅ | | Framework sanity | 0 | 0 | 1 | 0 | 1 | ➖ | +------------------+--------+--------+---------+-------+-------+--------+ | Total | 180 | 0 | 4 | 29 | 184 | ❗ | +------------------+--------+--------+---------+-------+-------+--------+
e2e-review-qa:
test report for 587a730bexpand test summary
+-----------------------------------------------------------------------+ | suites summary | +------------------+--------+--------+---------+-------+-------+--------+ | | passed | failed | skipped | flaky | total | result | +------------------+--------+--------+---------+-------+-------+--------+ | Create | 8 | 0 | 1 | 0 | 9 | ✅ | | Package | 0 | 0 | 1 | 0 | 1 | ➖ | | Govern | 2 | 0 | 0 | 0 | 2 | ✅ | | Monitor | 4 | 0 | 0 | 0 | 4 | ✅ | | Framework sanity | 0 | 0 | 1 | 0 | 1 | ➖ | | Plan | 3 | 0 | 1 | 0 | 4 | ✅ | | Manage | 1 | 0 | 0 | 0 | 1 | ✅ | | Data Stores | 2 | 0 | 0 | 0 | 2 | ✅ | +------------------+--------+--------+---------+-------+-------+--------+ | Total | 20 | 0 | 4 | 0 | 24 | ✅ | +------------------+--------+--------+---------+-------+-------+--------+
e2e-package-and-test:
test report for 587a730bexpand test summary
+-----------------------------------------------------------------------+ | suites summary | +------------------+--------+--------+---------+-------+-------+--------+ | | passed | failed | skipped | flaky | total | result | +------------------+--------+--------+---------+-------+-------+--------+ | Package | 232 | 0 | 11 | 0 | 243 | ✅ | | Create | 558 | 1 | 89 | 48 | 648 | ❌ | | Fulfillment | 8 | 0 | 72 | 0 | 80 | ✅ | | Manage | 159 | 0 | 12 | 26 | 171 | ❗ | | Govern | 155 | 0 | 15 | 9 | 170 | ❗ | | Data Stores | 117 | 0 | 3 | 0 | 120 | ✅ | | Verify | 144 | 0 | 15 | 3 | 159 | ❗ | | Plan | 246 | 0 | 10 | 0 | 256 | ✅ | | Monitor | 36 | 0 | 7 | 0 | 43 | ✅ | | Systems | 8 | 0 | 0 | 0 | 8 | ✅ | | Release | 18 | 0 | 0 | 0 | 18 | ✅ | | GitLab Metrics | 2 | 0 | 1 | 0 | 3 | ✅ | | Configure | 1 | 0 | 9 | 0 | 10 | ✅ | | Framework sanity | 0 | 0 | 5 | 0 | 5 | ➖ | | Analytics | 7 | 0 | 0 | 0 | 7 | ✅ | | Secure | 6 | 0 | 12 | 0 | 18 | ✅ | | ModelOps | 0 | 0 | 15 | 0 | 15 | ➖ | | Growth | 0 | 0 | 6 | 0 | 6 | ➖ | +------------------+--------+--------+---------+-------+-------+--------+ | Total | 1697 | 1 | 282 | 86 | 1980 | ❌ | +------------------+--------+--------+---------+-------+-------+--------+
mentioned in merge request !119736 (merged)
added 5594 commits
-
416f837a...66ce35a5 - 5591 commits from branch
master
- 41173b45 - Workspaces CI implementation
- f644dbe0 - Adding certs
- 7afe72f7 - Workspaces loading wait
Toggle commit list-
416f837a...66ce35a5 - 5591 commits from branch
- A deleted user
added frontend label
Bundle size analysis [beta]
This compares changes in bundle size for entry points between the commits d1c9ef00 and 7abf6f6c
Special assetsEntrypoint / Name Size before Size after Diff Diff in percent average 4.15 MB 4.15 MB - 0.0 % mainChunk 3.01 MB 3.01 MB - 0.0 %
Note: We do not have exact data for d1c9ef00. So we have used data from: d74af9c1.
The intended commit has no webpack pipeline, so we chose the last commit with one before it.Please look at the full report for more details
Read more about how this report works.
Generated by
Dangermentioned in issue #418988 (closed)
mentioned in issue #414915 (closed)
added 538 commits
-
542d0ed8...fac31682 - 535 commits from branch
master
- 9ca778a0 - Workspaces CI implementation
- ce90bdb3 - Adding certs
- 1172ae81 - Workspaces for new and existing cluster creation
Toggle commit list-
542d0ed8...fac31682 - 535 commits from branch
added 1 commit
- bbf9e9fc - Certificates for the workspaces domain in staging
added 1 commit
- 03be2535 - Certificates for the workspaces domain in staging
added 1 commit
- aed7cace - Certificates for the workspaces domain in staging
added 1 commit
- 57f87560 - Certificates for the workspaces domain in staging
changed milestone to %16.3
added missed:16.2 label
added 678 commits
-
57f87560...efdcedc0 - 674 commits from branch
master
- 1809eec9 - Workspaces CI implementation
- 197cc14b - Adding certs
- 410b9373 - Workspaces for new and existing cluster creation
- 99a39eee - Certificates for the workspaces domain in staging
Toggle commit list-
57f87560...efdcedc0 - 674 commits from branch
added 1 commit
- 8285a84a - Certificates for the workspaces domain in staging
added 892 commits
-
8285a84a...eb0f0465 - 888 commits from branch
master
- 5ddffc9f - Workspaces CI implementation
- a0a04901 - Adding certs
- 6fcd18bb - Workspaces for new and existing cluster creation
- bc1cbc7e - Certificates for the workspaces domain in staging
Toggle commit list-
8285a84a...eb0f0465 - 888 commits from branch
added 1 commit
- 3cfda422 - Certificates for the workspaces domain in staging
added 1 commit
- 9193d637 - Certificates for the workspaces domain in staging
added 1 commit
- dac88c12 - Certificates for the workspaces domain in staging
added 230 commits
-
dac88c12...e882a4cd - 226 commits from branch
master
- b6edd0b7 - Workspaces CI implementation
- e47902a0 - Adding certs
- bf43c1bd - Workspaces for new and existing cluster creation
- 127b8432 - Certificates for the workspaces domain in staging
Toggle commit list-
dac88c12...e882a4cd - 226 commits from branch
added 1 commit
- 223537c4 - Certificates for the workspaces domain in staging
added 1 commit
- a3e2e6b9 - Certificates for the workspaces domain in staging
added 1 commit
- 8c0d89c4 - Certificates for the workspaces domain in staging
requested review from @svistas
- Resolved by Anna Vovchenko
@thomasrandolph Can you please review this frontend changes, Thanks!
requested review from @thomasrandolph
@thomasrandolph
, thanks for approving this merge request.This is the first time the merge request is approved. To ensure full test coverage, a new pipeline will be started shortly.
For more info, please refer to the following links:
added pipeline:mr-approved label
requested review from @anna_vovchenko
- Resolved by Chloe Liu
issue (non-blocking) This test will fail if the left sidebar is collapsed, because it fails to find
user_avatar_content
:1) Create Remote Development when setup is already done behaves like workspaces actions creates a new workspace and then stops and terminates it Failure/Error: Flow::Login.sign_in QA::Page::Validatable::PageValidationError: user_avatar_content did not appear on QA::Page::Main::Menu as expected Shared Example Group: "workspaces actions" called from ./qa/specs/features/ee/browser_ui/3_create/remote_development/without_setup/workspace_actions_without_setup_spec.rb:46 # ./qa/page/validatable.rb:15:in `block in validate_elements_present!' # ./qa/page/validatable.rb:13:in `each' # ./qa/page/validatable.rb:13:in `validate_elements_present!' # ./qa/page/main/login.rb:266:in `sign_in_using_gitlab_credentials' # ./qa/page/main/login.rb:75:in `block in sign_in_using_credentials' # ./qa/page/main/login.rb:65:in `sign_in_using_credentials' # ./qa/flow/login.rb:32:in `block in sign_in' # ./qa/scenario/actable.rb:16:in `perform' # ./qa/flow/login.rb:28:in `sign_in' # ./qa/specs/features/ee/browser_ui/3_create/remote_development/without_setup/workspace_actions_without_setup_spec.rb:43:in `block (4 levels) in <module:QA>' # ./qa/specs/runner.rb:67:in `perform' # ./qa/scenario/template.rb:10:in `block in perform' # ./qa/scenario/template.rb:8:in `perform' # ./qa/scenario/template.rb:50:in `perform' # ./qa/scenario/template.rb:10:in `block in perform' # ./qa/scenario/template.rb:8:in `perform' # ./qa/scenario/bootable.rb:52:in `launch!'
@nprabakaran FYI, I had to cherry-pick the following commit to fix the local Out of Memory errors with starting workspaces:
git cherry-pick ae22ffd59a8c93303874136f61bb0f3719c303b4
.I'm not sure if this affects anything other than local dev, so it may be irrelevant to this MR running against an remote cluster, but it's probably a good idea to rebase all your existing branches for this to ensure that commit is included for testing.
praise I was able to get a successful local run of
scripts/remote_development/run-e2e-tests.sh
on this MR!Finished in 1 minute 57.47 seconds (files took 1 minute 18.54 seconds to load) 1 example, 0 failures
Thanks for your work on this, the E2E suite should now be usable locally for engineers to do regression testing.
- Resolved by Nivetha Prabakaran
issue (blocking, but can be done in follow-on MR as it's really related to #418988 (closed))
@nprabakaran - you said on internal slack that this MR should contain a fix for E2E test is failing as it cannot detect that th... (#418988 - closed)
I tested this with an existing workspace that was forced to have an "infinite spinner".
It got further than before, but still hangs on the
clicking :workspace_terminate_button
step, then times out after 3 minutes.This is reproducible, I just saw it happen twice in a row.
Here is the screenshot showing that the E2E workspace has already been deleted, and the "infinite spinner" workspace (starting with
XXX...
) is still shown:Here's the test output:
Create Remote Development when setup is already done behaves like workspaces actions [Aug 01 2023 20:14:04 MST (QA Tests)] INFO -- Starting test: Create Remote Development when setup is already done behaves like workspaces actions creates a new workspace and then stops and terminates it [Aug 01 2023 20:14:04 MST (QA Tests)] INFO -- filling :login_field with "root" [Aug 01 2023 20:14:04 MST (QA Tests)] INFO -- clicking the coordinates of :login_field [Aug 01 2023 20:14:05 MST (QA Tests)] INFO -- filling :password_field with "*****" [Aug 01 2023 20:14:05 MST (QA Tests)] INFO -- clicking the coordinates of :password_field [Aug 01 2023 20:14:05 MST (QA Tests)] INFO -- clicking :sign_in_button [Aug 01 2023 20:14:11 MST (QA Tests)] WARN -- Potentially Slow Code 'click_element sign_in_button' took 5.886s [Aug 01 2023 20:14:13 MST (QA Tests)] INFO -- clicking :nav_item_link [Aug 01 2023 20:14:14 MST (QA Tests)] WARN -- Potentially Slow Code 'click_element nav_item_link' took 1.281s [Aug 01 2023 20:14:14 MST (QA Tests)] INFO -- clicking :list_new_workspace_button [Aug 01 2023 20:14:14 MST (QA Tests)] INFO -- clicking :workspace_devfile_project_id_field [Aug 01 2023 20:14:15 MST (QA Tests)] WARN -- Potentially Slow Code 'wait_for_requests ' took 1.153s [Aug 01 2023 20:14:16 MST (QA Tests)] WARN -- Potentially Slow Code 'click_element workspace_devfile_project_id_field' took 1.187s [Aug 01 2023 20:14:16 MST (QA Tests)] INFO -- Searching in dropdown: "Gitlab Org / Gitlab Shell" [Aug 01 2023 20:14:17 MST (QA Tests)] WARN -- Potentially Slow Code 'wait_for_requests ' took 0.629s [Aug 01 2023 20:14:17 MST (QA Tests)] WARN -- Potentially Slow Code 'find_element workspace_cluster_agent_id_field' took 0.639s [Aug 01 2023 20:14:17 MST (QA Tests)] INFO -- clicking :save_workspace_button [Aug 01 2023 20:14:53 MST (QA Tests)] INFO -- clicking :workspace_stop_button [Aug 01 2023 20:15:09 MST (QA Tests)] INFO -- clicking :workspace_terminate_button [Aug 01 2023 20:18:13 MST (QA Tests)] INFO -- Saving screenshot.. creates a new workspace and then stops and terminates it (FAILED - 1) HTML screenshot: /Users/cwoolley/workspace/gitlab-development-kit/gitlab/qa/tmp/qa-test-2023-08-01-20-18-10-aa01e166a205f3f0/create_remote_development_when_setup_is_already_done_behaves_like_workspaces_act_2023-08-01-20-18-13.040.html Image screenshot: /Users/cwoolley/workspace/gitlab-development-kit/gitlab/qa/tmp/qa-test-2023-08-01-20-18-10-aa01e166a205f3f0/create_remote_development_when_setup_is_already_done_behaves_like_workspaces_act_2023-08-01-20-18-13.040.png Failures: 1) Create Remote Development when setup is already done behaves like workspaces actions creates a new workspace and then stops and terminates it Failure/Error: raise( WaitExceededError, "#{message || 'Wait'} failed after #{max_duration} #{'second'.pluralize(max_duration)}" ) QA::Support::Repeater::WaitExceededError: Page did not fully load. This could be due to an unending async request or loading icon. Shared Example Group: "workspaces actions" called from ./qa/specs/features/ee/browser_ui/3_create/remote_development/without_setup/workspace_actions_without_setup_spec.rb:46 # ./qa/support/repeater.rb:74:in `repeat_until' # ./qa/support/waiter.rb:20:in `wait_until' # ./qa/support/wait_for_requests.rb:11:in `wait_for_requests' # ./qa/ee/page/workspace/action.rb:26:in `block in terminate_workspace' # ./qa/page/base.rb:387:in `within_element' # ./qa/support/page/logging.rb:156:in `within_element' # ./qa/ee/page/workspace/action.rb:24:in `terminate_workspace' # ./qa/specs/features/shared_examples/create_and_terminate_workspace_shared_examples.rb:36:in `block (3 levels) in <module:QA>' # ./qa/scenario/actable.rb:16:in `perform' # ./qa/specs/features/shared_examples/create_and_terminate_workspace_shared_examples.rb:35:in `block (2 levels) in <module:QA>' # ./qa/specs/runner.rb:67:in `perform' # ./qa/scenario/template.rb:10:in `block in perform' # ./qa/scenario/template.rb:8:in `perform' # ./qa/scenario/template.rb:50:in `perform' # ./qa/scenario/template.rb:10:in `block in perform' # ./qa/scenario/template.rb:8:in `perform' # ./qa/scenario/bootable.rb:52:in `launch!' # ------------------ # --- Caused by: --- # QA::Support::Repeater::WaitExceededError: # Wait failed after 60 seconds # ./qa/support/repeater.rb:74:in `repeat_until' Top 1 slowest examples (248.85 seconds, 100.0% of total time): Create Remote Development when setup is already done behaves like workspaces actions creates a new workspace and then stops and terminates it 248.85 seconds ./qa/specs/features/shared_examples/create_and_terminate_workspace_shared_examples.rb:5 Finished in 4 minutes 8.9 seconds (files took 7.85 seconds to load) 1 example, 1 failure Failed examples: rspec ./qa/specs/features/ee/browser_ui/3_create/remote_development/without_setup/workspace_actions_without_setup_spec.rb:46 # Create Remote Development when setup is already done behaves like workspaces actions creates a new workspace and then stops and terminates it
added 1 commit
- 998471ac - Fix for infinite spinner issue and mirror refactor
added 1 commit
- 45cff321 - Fix for infinite spinner issue and mirror refactor
added 1 commit
- 7abf6f6c - Fix for infinite spinner issue and mirror refactor
mentioned in merge request !128195 (merged)
- Resolved by Nivetha Prabakaran
- Resolved by Chloe Liu
- Resolved by Nivetha Prabakaran
- Resolved by Sofia Vistas
- Resolved by Nivetha Prabakaran
- Resolved by Nivetha Prabakaran
- Resolved by Nivetha Prabakaran
- Resolved by Nivetha Prabakaran
- Resolved by Chloe Liu
- Resolved by Nivetha Prabakaran
- Resolved by Nivetha Prabakaran
- Resolved by Nivetha Prabakaran
- Resolved by Chloe Liu
removed review request for @anna_vovchenko
added 924 commits
Toggle commit listrequested review from @svistas
added 434 commits
Toggle commit listmentioned in issue #397005 (closed)
added 296 commits
Toggle commit listadded 1 commit
- 51ea8a51 - Fix for infinite spinner issue and mirror refactor
requested review from @chloeliu
removed review request for @svistas
- Resolved by Chloe Liu
- Resolved by Chloe Liu
- Resolved by Chloe Liu
removed review request for @chloeliu
added 206 commits
-
51ea8a51...f16c4721 - 200 commits from branch
master
- 043b06d3 - Workspaces CI implementation
- 3759ee5c - Adding certs
- 5b98573a - Workspaces for new and existing cluster creation
- 795bee7d - Certificates for the workspaces domain in staging
- 7285289b - Fix for infinite spinner issue and mirror refactor
- 587a730b - Raise error when workspace_name is empty
Toggle commit list-
51ea8a51...f16c4721 - 200 commits from branch
requested review from @chloeliu
requested review from @cwoolley-gitlab
enabled an automatic merge when the pipeline for 8c7bb3e2 succeeds
mentioned in commit 2b540678
added workflowstaging-canary label
added workflowcanary label and removed workflowstaging-canary label
added workflowstaging label and removed workflowcanary label
added workflowproduction label and removed workflowstaging label
mentioned in merge request !129293 (merged)
mentioned in issue #421935 (closed)
mentioned in issue #421934 (closed)
mentioned in issue gitlab-org/quality/pipeline-triage#212 (closed)
added workflowpost-deploy-db-staging label and removed workflowproduction label
added workflowpost-deploy-db-production label and removed workflowpost-deploy-db-staging label
added releasedcandidate label
added releasedpublished label and removed releasedcandidate label
mentioned in merge request !129914 (merged)
mentioned in merge request !130012 (merged)
mentioned in merge request gitlab-qa!1231 (merged)
added groupide rd-workflowignore labels
added devopscreate sectiondev labels
mentioned in issue #410173 (closed)