Skip to content

Add polling and refetching to deployment details

Andrew Fontaine requested to merge afontaine/347538/polling into master

What does this MR do and why?

A refetch is explicitly fired when a deployment is approved or rejected, but otherwise polling is used to cover updates to the deployment.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screen_Recording_2024-02-28_at_12.21.37_PM

Screen_Recording_2024-02-28_at_12.21.54_PM

How to set up and validate locally

Enable the feature flag deployment_details_page 2. Add the following GitLab CI Yaml to a project

Click to expand
stages:
    - deploy
    - stop
image: alpine:latest

deploy-prod:
    stage: deploy
    script:
        - sleep 10
        - echo "deploying prod"
    environment:
        name: production
        url: postgres://example.com

deploy-staging:
    stage: deploy
    script:
        - echo "deploying staging I hope"
    environment:
        name: staging
        url: https://example.com
        on_stop: stop-staging
    when: manual

stop-staging:
  stage: stop
  script:
    - echo "stopping staging"
    - sleep 600
  environment:
    name: staging
    action: stop
  when: manual

deploy-development:
    stage: deploy
    script:
        - echo "deploying development"
    environment:
        name: development
        url: https://example.com
    when: manual

deploy-review:
    stage: deploy
    script:
        - echo "Deploying review/$CI_COMMIT_REF_NAME"
    environment:
        name: review/$CI_COMMIT_REF_NAME
        auto_stop_in: 1 week
    only:
        - branches
    except:
        - master
    when: manual


stop_review_app:
  script: stop-review-app
  stage: stop
  environment:
    name: review/$CI_COMMIT_REF_SLUG
    action: stop
  rules:
    - if: $CI_MERGE_REQUEST_ID
      when: manual
  1. Run pipelines to create environments/deployments
  2. Protect the Production environment by navigating to Settings > CI/CD and add at least one deployment rule and at least one approval rule.
  3. Run another pipeline.
  4. Navigate to http://<gdk-url>/<namespace>/<project>/-/environments/<environment id>/deployments/<deployment iid>

For #374538 (closed)

Merge request reports