Skip to content
Snippets Groups Projects

Add deployment approval UI MVC

Merged Andrew Fontaine requested to merge afontaine/deployment-approval into master
All threads resolved!

What does this MR do and why?

Sets up the ability for users to approve and reject deployments from within the environments page.

Current information shown is how many approvals are needed and how many are done, as well as who has approved and when.

A rejection short cuts to killing the deployment.

This is currently only in the phased out environment UI, but built in a way that it should be easy to drop into the new one.

Screenshots or screen recordings

Screencast_2022-03-07_14_53_04

Screencast_2022-03-07_14_53_55

How to set up and validate locally

  1. Enable runners in your GDK/Gitpod -- see instructions
  2. Enable the new environment table
Feature.enable(:new_environments_table)
  1. Then add the following .gitlab-ci.yml to a project for some deployments:
stages:
    - deploy
    - stop
image: alpine:latest

deploy-prod:
    stage: deploy
    script:
        - sleep 6000
        - echo "deploying prod"
    environment:
        name: production

deploy-staging:
    stage: deploy
    script:
        - echo "deploying staging"
    environment:
        name: staging
        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:
        - main


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

Run a pipeline to create the initial environments, then protect the staging environment in Settings > CI/CD.

Run another pipeline, and check the environments page.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

For #342180 (closed)

Edited by Andrew Fontaine

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
  • Alishan Ladhani removed review request for @ali-gitlab

    removed review request for @ali-gitlab

  • Rayana Verissimo
    • Resolved by Peter Hegman

      @afontaine thanks for adding the videos to the MR, this is really helpful! I'm spinning up my GDK/Gitpod, so my in depth review of the UI might take a while. Would you be able to post a video of the interface in a smaller viewport? I'm curious to see how the popover interaction adapts to ~400px wide screens.

  • added 1 commit

    • 2a7cb3cd - Add deployment approval UI MVC

    Compare with previous version

  • added 1 commit

    • 9e5aa83a - Add deployment approval UI MVC

    Compare with previous version

  • Andrew Fontaine requested review from @ali-gitlab

    requested review from @ali-gitlab

  • requested review from @rdickenson

  • Nicolas Dular
  • Nicolas Dular approved this merge request

    approved this merge request

  • Nicolas Dular removed review request for @nicolasdular

    removed review request for @nicolasdular

  • :wave: @nicolasdular, thanks for approving this merge request.

    This is the first time the merge request is approved. To ensure full test coverage, a new pipeline has been started.

    For more info, please refer to the following links:

  • added 1 commit

    • 8b711609 - Add deployment approval UI MVC

    Compare with previous version

  • added 1 commit

    • 47f36875 - Add deployment approval UI MVC

    Compare with previous version

  • Alishan Ladhani approved this merge request

    approved this merge request

  • Alishan Ladhani requested review from @shinya.maeda and removed review request for @ali-gitlab

    requested review from @shinya.maeda and removed review request for @ali-gitlab

  • Alishan Ladhani mentioned in merge request !82454 (merged)

    mentioned in merge request !82454 (merged)

  • Shinya Maeda approved this merge request

    approved this merge request

  • Shinya Maeda removed review request for @shinya.maeda

    removed review request for @shinya.maeda

  • added 1 commit

    • db069fc0 - Add deployment approval UI MVC

    Compare with previous version

  • Andrew Fontaine
  • added 1 commit

    • 706695f7 - Add deployment approval UI MVC

    Compare with previous version

  • Andrew Fontaine changed milestone to %14.9

    changed milestone to %14.9

  • requested review from @peterhegman

  • Bundle size analysis [beta]

    This compares changes in bundle size for entry points between the commits 76fad613 and d39dff98

    :sparkles: Special assets

    Entrypoint / Name Size before Size after Diff Diff in percent
    mainChunk 2.31 MB 2.3 MB -6.8 KB -0.3 %
    average 3.7 MB 3.69 MB -6.37 KB -0.2 %

    :tada: Significant Reduction: 2

    Expand
    Entrypoint / Name Size before Size after Diff Diff in percent
    pages.search.show 200.42 KB 178.8 KB -21.62 KB -10.8 %
    pages.groups.sso 88.22 KB 80.51 KB -7.71 KB -8.7 %

    Note: We do not have exact data for 76fad613. So we have used data from: 03638053.
    The target commit was too new, so we used the latest commit from master we have info on.
    It might help to rerun the bundle-size-review job
    This might mean that you have a few false positives in this report. If something unrelated to your code changes is reported, you can check this comparison in order to see if they caused this change.

    Please look at the full report for more details


    Read more about how this report works.

    Generated by :no_entry_sign: Danger

  • Rayana Verissimo removed review request for @rdickenson

    removed review request for @rdickenson

  • Rayana Verissimo approved this merge request

    approved this merge request

  • Rayana Verissimo removed review request for @rayana

    removed review request for @rayana

  • Peter Hegman
  • Peter Hegman
  • Peter Hegman
  • Peter Hegman removed review request for @peterhegman

    removed review request for @peterhegman

  • requested review from @peterhegman

  • added 1 commit

    • d39dff98 - Add deployment approval UI MVC

    Compare with previous version

  • Peter Hegman resolved all threads

    resolved all threads

  • Peter Hegman approved this merge request

    approved this merge request

  • Peter Hegman enabled an automatic merge when the pipeline for a7780ef4 succeeds

    enabled an automatic merge when the pipeline for a7780ef4 succeeds

  • merged

  • Peter Hegman mentioned in commit 06355b17

    mentioned in commit 06355b17

  • added workflowcanary label and removed workflowstaging label

  • added workflowproduction label and removed workflowcanary label

  • Please register or sign in to reply
    Loading