Refetch deployments on user interaction
What does this MR do and why?
Polling for the deployments block is configured for 4 minutes at the longest. While there is work to be done there refining the rate, we can assume that if the user triggers an action, we should refetch the deployments immediately after the request finishes.
This is done via the event hub, as otherwise we need to send a Vue event up too many layers of components.
Changelog: changed
Screenshots or screen recordings
Working on a screencap, but very testable in a review app for now.
How to set up and validate locally
- add the following
.gitlab-ci.yml
to a project for some deployments:
stages:
- deploy
- stop
image: alpine:latest
deploy-prod:
stage: deploy
script:
- sleep 60
- 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
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
- Make an MR
- Hit "deploy" under the deployment widget
- Watch it change
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.
For #323660 (closed)
Edited by Andrew Fontaine