Skip to content
Snippets Groups Projects

Workspaces setup done in runtime in CI

Merged Nivetha Prabakaran requested to merge np-workspaces-ci into master
All threads resolved!

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

  1. It requires two variables AGENT_NAME and DEVFILE_PROJECT to be declared

This E2E tests will do the following:

  1. It calls the shared_examples "workspaces actions"
  2. Uses the AGENT_NAME and DEVFILE_PROJECT variable values to create a new workspace
  3. 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

  1. 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)
  2. 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
  3. 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 )
  4. 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
  5. 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)

  1. It creates new kubernetes cluster in the GKE - in the test project "group-qa-tests"
  2. Installs helm, ingress-controller in the k8s cluster
  3. Installs Gitlab-Workspaces-proxy with the Oauth client id, secret, redirect uri and signing key. It also uses the certificates passed
  4. Gets the load balancer IP of the Ingress and updates the cloud dns domain with the IP
  5. Creates test group with two projects - agent project and devfile project (this contains the devfile for workspace initialisation)
  6. In the agent project adds the workspaces config yml file and creates a agent_token for installing the agent in the cluster
  7. Setup the above agent with the token in the cluster
  8. In the devfile project adds the devfile config yml file
  9. It calls the shared_examples "workspaces actions"
  10. Uses the agent name and devfile project name from the above setup to create a new workspace
  11. 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

  1. It uses existing kubernetes cluster with CI variables WORKSPACES_CLUSTER_NAME and WORKSPACES_CLUSTER_REGION
  2. 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:

  1. Creates test group with two projects - agent project and devfile project (this contains the devfile for workspace initialisation)
  2. In the agent project add the workspaces config yml and create a agent_token for installing the agent in the cluster
  3. Setup the above agent with the token in the cluster
  4. In the devfile project add the devfile config yml
  5. It calls the shared_examples "workspaces actions"
  6. Uses the agent name and devfile project name from the above setup to create a new workspace
  7. 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-testids 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.

Edited by Nivetha Prabakaran

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Nivetha Prabakaran changed milestone to %16.2

    changed milestone to %16.2

  • Contributor
    8 Warnings
    :warning: This merge request is quite big (515 lines changed), please consider splitting it into multiple merge requests.
    :warning: 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.
    :warning: 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.
    :warning: 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.
    :warning: 3759ee5c: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines.
    :warning: 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.
    :warning: 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.
    :warning:

    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:

    1 Message
    :book: 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 current availability (@john.mcdonnell) (UTC+1, 4.5 hours behind @nprabakaran) Chloe Liu current availability (@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 current availability (@oregand) (UTC-4, 9.5 hours behind @nprabakaran)
    ~"Tooling" Reviewer review is optional for ~"Tooling" Chad Woolley current availability (@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 current availability (@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 :repeat: danger-review job that generated this comment.

    Generated by :no_entry_sign: Danger

  • Contributor

    Allure report

    allure-report-publisher generated test report!

    e2e-test-on-gdk: :exclamation: test report for 587a730b

    expand 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: :white_check_mark: test report for 587a730b

    expand 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: :x: test report for 587a730b

    expand 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  | ❌     |
    +------------------+--------+--------+---------+-------+-------+--------+
  • Nivetha Prabakaran mentioned in merge request !119736 (merged)

    mentioned in merge request !119736 (merged)

  • Nivetha Prabakaran added 5594 commits

    added 5594 commits

    Compare with previous version

  • A deleted user added frontend label

    added frontend label

  • Contributor

    Bundle size analysis [beta]

    This compares changes in bundle size for entry points between the commits d1c9ef00 and 7abf6f6c

    :sparkles: Special assets

    Entrypoint / 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 :no_entry_sign: Danger

  • added 1 commit

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • mentioned in issue #418988 (closed)

  • Nivetha Prabakaran changed the description

    changed the description

  • mentioned in issue #414915 (closed)

  • Nivetha Prabakaran added 538 commits

    added 538 commits

    Compare with previous version

  • added 2 commits

    • fba722ac - Workspaces for new and existing cluster creation
    • c2b6055c - Certificates for the workspaces domain in staging

    Compare with previous version

  • added 1 commit

    • bbf9e9fc - Certificates for the workspaces domain in staging

    Compare with previous version

  • added 1 commit

    • 03be2535 - Certificates for the workspaces domain in staging

    Compare with previous version

  • added 1 commit

    • aed7cace - Certificates for the workspaces domain in staging

    Compare with previous version

  • added 1 commit

    • 57f87560 - Certificates for the workspaces domain in staging

    Compare with previous version

  • 🤖 GitLab Bot 🤖 changed milestone to %16.3

    changed milestone to %16.3

  • Nivetha Prabakaran added 678 commits

    added 678 commits

    Compare with previous version

  • Nivetha Prabakaran changed title from Draft: Workspaces CI implementation to Draft: Workspaces setup done in runtime

    changed title from Draft: Workspaces CI implementation to Draft: Workspaces setup done in runtime

  • Nivetha Prabakaran changed the description

    changed the description

  • Nivetha Prabakaran changed the description

    changed the description

  • Nivetha Prabakaran changed the description

    changed the description

  • added 1 commit

    • 8285a84a - Certificates for the workspaces domain in staging

    Compare with previous version

  • Nivetha Prabakaran added 892 commits

    added 892 commits

    Compare with previous version

  • added 1 commit

    • 3cfda422 - Certificates for the workspaces domain in staging

    Compare with previous version

  • added 1 commit

    • 9193d637 - Certificates for the workspaces domain in staging

    Compare with previous version

  • Nivetha Prabakaran changed the description

    changed the description

  • added 1 commit

    • dac88c12 - Certificates for the workspaces domain in staging

    Compare with previous version

  • Nivetha Prabakaran added 230 commits

    added 230 commits

    Compare with previous version

  • added 1 commit

    • 223537c4 - Certificates for the workspaces domain in staging

    Compare with previous version

  • Nivetha Prabakaran changed the description

    changed the description

  • added 1 commit

    • a3e2e6b9 - Certificates for the workspaces domain in staging

    Compare with previous version

  • added 1 commit

    • 8c0d89c4 - Certificates for the workspaces domain in staging

    Compare with previous version

  • Nivetha Prabakaran changed the description

    changed the description

  • Nivetha Prabakaran marked this merge request as ready

    marked this merge request as ready

  • Nivetha Prabakaran changed title from Draft: Workspaces setup done in runtime to Workspaces setup done in runtime in CI

    changed title from Draft: Workspaces setup done in runtime to Workspaces setup done in runtime in CI

  • Nivetha Prabakaran requested review from @svistas

    requested review from @svistas

  • requested review from @thomasrandolph

  • Nivetha Prabakaran changed the description

    changed the description

  • Thomas Randolph approved this merge request

    approved this merge request

  • :wave: @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:

  • 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:

      Screenshot_2023-08-01_at_8.16.45_PM

      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

    Compare with previous version

  • added 1 commit

    • 45cff321 - Fix for infinite spinner issue and mirror refactor

    Compare with previous version

  • added 1 commit

    • 7abf6f6c - Fix for infinite spinner issue and mirror refactor

    Compare with previous version

  • Nivetha Prabakaran changed the description

    changed the description

  • Nivetha Prabakaran mentioned in merge request !128195 (merged)

    mentioned in merge request !128195 (merged)

  • Sofia Vistas
  • Sofia Vistas
  • Sofia Vistas
  • Sofia Vistas
  • Sofia Vistas
  • Sofia Vistas
  • Nivetha Prabakaran changed the description

    changed the description

  • Sofia Vistas
  • Anna Vovchenko removed review request for @anna_vovchenko

    removed review request for @anna_vovchenko

  • Nivetha Prabakaran changed the description

    changed the description

  • Nivetha Prabakaran changed the description

    changed the description

  • Nivetha Prabakaran added 924 commits

    added 924 commits

    • 7abf6f6c...8e5c96f4 - 919 commits from branch master
    • cdd699ff - Workspaces CI implementation
    • 3843b8b0 - Adding certs
    • 5b306ef9 - Workspaces for new and existing cluster creation
    • 3900538b - Certificates for the workspaces domain in staging
    • 06606aca - Fix for infinite spinner issue and mirror refactor

    Compare with previous version

  • Nivetha Prabakaran requested review from @svistas

    requested review from @svistas

  • Nivetha Prabakaran added 434 commits

    added 434 commits

    • 06606aca...974a1706 - 429 commits from branch master
    • d87555ac - Workspaces CI implementation
    • 09546dd3 - Adding certs
    • 11bee432 - Workspaces for new and existing cluster creation
    • 72a77fb4 - Certificates for the workspaces domain in staging
    • 1ead3a53 - Fix for infinite spinner issue and mirror refactor

    Compare with previous version

  • mentioned in issue #397005 (closed)

  • Nivetha Prabakaran added 296 commits

    added 296 commits

    • 1ead3a53...20739fe6 - 291 commits from branch master
    • 3870589b - Workspaces CI implementation
    • 3b52268e - Adding certs
    • c94aeadb - Workspaces for new and existing cluster creation
    • a089b70a - Certificates for the workspaces domain in staging
    • d221ff12 - Fix for infinite spinner issue and mirror refactor

    Compare with previous version

  • added 1 commit

    • 51ea8a51 - Fix for infinite spinner issue and mirror refactor

    Compare with previous version

  • Sofia Vistas approved this merge request

    approved this merge request

  • Sofia Vistas requested review from @chloeliu

    requested review from @chloeliu

  • Sofia Vistas removed review request for @svistas

    removed review request for @svistas

  • Chloe Liu
  • Chloe Liu
  • Chloe Liu
  • Chloe Liu removed review request for @chloeliu

    removed review request for @chloeliu

  • Nivetha Prabakaran added 206 commits

    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

    Compare with previous version

  • Nivetha Prabakaran requested review from @chloeliu

    requested review from @chloeliu

  • Chloe Liu approved this merge request

    approved this merge request

  • Chloe Liu requested review from @cwoolley-gitlab

    requested review from @cwoolley-gitlab

  • Chad Woolley approved this merge request

    approved this merge request

  • Chloe Liu resolved all threads

    resolved all threads

  • Chloe Liu enabled an automatic merge when the pipeline for 8c7bb3e2 succeeds

    enabled an automatic merge when the pipeline for 8c7bb3e2 succeeds

  • merged

  • Chloe Liu mentioned in commit 2b540678

    mentioned in commit 2b540678

  • added workflowstaging label and removed workflowcanary label

  • Richard Chong mentioned in merge request !129293 (merged)

    mentioned in merge request !129293 (merged)

  • mentioned in issue #421935 (closed)

  • mentioned in issue #421934 (closed)

  • Nivetha Prabakaran mentioned in merge request !129914 (merged)

    mentioned in merge request !129914 (merged)

  • Nivetha Prabakaran mentioned in merge request !130012 (merged)

    mentioned in merge request !130012 (merged)

  • mentioned in merge request gitlab-qa!1231 (merged)

  • mentioned in issue #410173 (closed)

  • Please register or sign in to reply
    Loading