Resolve "ArgoCD cypress tests looping" | SKIP UPDATE CHECK
General MR
Summary
-
🏗 Moved helm tests for application create and delete from Cypress-based testing to shell-script based testing.- This will allow us to more quickly and reliably confirm that Argo's key featureset is working post-deploy.
- Argo's UI changes its own URL with nearly every keystroke in the "create new application" form and this has proven very difficult to get Cypress to play along with.
-
✨ added atests/wait.sh
to confirm the argo CRDs areestablished
and that the argocd web server deployment rollout is complete before proceeding to our helm tests.-
⚠ this script makes heavy use ofcurl
retries♻ as theargocd-server
web service has been refusing connections left and right in CI despite being pretty good at eventually fulfilling requests.-
🔬 See this CI job log with 60 something "connection refused" log lines that nevertheless ran to completion in six minutes thanks tocurl
retries.
-
-
-
🔧 added a top-priorityService
atchart/tests/templates
that sits in front ofargocd-argocd-server
for the duration of our helm tests.- For some reason Argo's usual
Service
object isn't there during the current pipeline-templates CI flow'shelm test
runs so I'm adding this short-lived service as we have already done over in the gitlab package at chart/templates/tests.
- For some reason Argo's usual
Relevant logs/screenshots
wait.sh
Run
Successful
wait.sh
run if I specify a nonexistent CRD to wait on
Failing
Successful Cypress Run
Now with only a simple "can we log in?" test, but it still takes about 30 seconds locally.
tests/scripts/test.sh
run
Successful Creates an API token, creates an application, waits for that application to reach Healthy
status, and destroys that application. Elapsed time: 30 seconds.
Upgrade Notices
N/A
Closes #221 (closed)
Edited by Daniel Pritchett