snowballtools-base-mirror/packages/deployer/test
Nabarun Gogoi 72f1abcdf6
Add CI to test web app deployment and undeployment (#174)
* Add a script to deploy test records

* Add checks for ApplicationDeploymentRecord and the deployment URL

* Add a CI workflow to run the app deployment test

* Update test deployment request record config

* Add test for deployment removal

* Update test deployment request record

* Increase max retries

* Add retries when checking if URL is up or down

* Rename test script

* Run webapp deployment test CI on PR

* Remove unnecessary jq installation step from CI

* Revert "Run webapp deployment test CI on PR"

This reverts commit 01f373501a.

* Add a step for Slack alerts on a CI failure

* Add a workflow dispatch for manual trigger

* Update workflow title and remove trigger on main

* Document deployment test setup

---------

Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-04-15 14:10:59 +05:30
..
records Add CI to test web app deployment and undeployment (#174) 2024-04-15 14:10:59 +05:30
README.md Add CI to test web app deployment and undeployment (#174) 2024-04-15 14:10:59 +05:30
test-webapp-deployment-undeployment.sh Add CI to test web app deployment and undeployment (#174) 2024-04-15 14:10:59 +05:30

deployer test

Check if the live web app deployer is in a working state

  • Web app repo used: https://github.com/snowball-tools-platform/test-progressive-web-app (main branch)
  • Config used: ../config.yml
  • The script test-webapp-deployment-undeployment.sh performs the following:
    • Create / update ApplicationRecord and ApplicationDeploymentRequest records with latest meta data from the repo
    • Fetch the latest version of deployment-test-app from registry and increment ApplicationRecord version
    • Publish the resulting ApplicationRecord record
    • Set names to the record and check name resolution
    • Publish the ApplicationDeploymentRequest record
    • Check that the deployment occurs
      • Check that a ApplicationDeploymentRecord is created
      • Check that the deployment record has correct ApplicationRecord id
      • Check that the URL present in deployment record is active
    • Create and publish a ApplicationDeploymentRemovalRequest record
    • Check that the deployment is removed
      • Check that a ApplicationDeploymentRemovalRecord is created
      • Check that the deployment URL goes down
  • The test script is run in a GitHub CI workflow that:
    • Is scheduled to run everyday on the default (main) branch or can be triggered manually
    • Sends Slack alerts to configured channels on failure