Use cases

Below are the use cases you will be dealign with when you call the CD API of SOAJS:


  • call continuous delivery to change repository source

    • tag

    • branch & commit

  • call continuous delivery to change image source

    • image_tag

    • image_tag & image_name & image_prefix

  • you can also call to change both repository and image source

  • env_list is optional if not specified SOAJS will check all environments


Case1: Calling soajs CD to change the repository source:

  • key, cd_auth, name, version, type

  • branch

  • commit

Check all the env where this item is deployed from this branch and

  • if cd strategy is auto, rebuild and add notification

  • if cd strategy is notify, add notification

Add a ledger record with a complete report about what happened.


Case2: Calling soajs CD to change the repository source:

  • key, cd_auth, name, version, type

  • tag

Check all the env where this item is deployed from this tag and

  • if cd strategy is auto, rebuild and add notification

  • if cd strategy is notify, add notification

Add a ledger record with a complete report about what happened.


Case3: Calling soajs CD to change the image source:

  • key, cd_auth, name, version, type

  • image_tag

  • env_list

Check all the env from the env_list if this item is deployed from this image

  • if cd strategy is auto, rebuild(change to the provide image tag) and add notification

  • if cd strategy is notify, add notification

Add a ledger record with a complete report about what happened.


Case4: Calling soajs CD required with the following params:

  • key, cd_auth, name, version, type

  • branch

  • commit

  • image_tag (optional)

Check all the env where this item is deployed from this branch and

  • if cd strategy is auto, rebuild and add notification

    • if image tag is sent change it

  • if cd strategy is notify, add notification

Add a ledger record with a complete report about what happened.


Case5: Calling soajs CD required with the following params:

  • key, cd_auth, name, version, type

  • branch

  • commit

  • env_list

  • image_tag (optional)

Check all the env from the env_list if this item is deployed from this branch and

  • if cd strategy is auto, rebuild(get last commit) and add notification

    • if image tag is sent change it

  • if cd strategy is notify, add notification

  • if deployed from another branch in provided env do nothing

Add a ledger record with a complete report about what happened.


Case6: Calling soajs CD required with the following params:

  • key, cd_auth, name, version, type

  • tag

  • env_list

  • image_tag (optional)

Check all the env from the env_list if this item is deployed from a tag and

  • if cd strategy is auto, rebuild(change to the provide repository tag) and add notification

    • if image tag is sent change it

  • if cd strategy is notify, add notification

  • if deployed not from tag in provided env do nothing

Add a ledger record with a complete report about what happened.


Case7: Calling soajs CD required with the following params:

  • key, cd_auth, name, version, type

  • env_list

  • image_tag

  • image_name

  • image_prefix

Check all the env from the env_list if this item is deployed from this image

  • if cd strategy is auto, rebuild(change to the provide image tag, name and/or prefix) and add notification

  • if cd strategy is notify, add notification

Add a ledger record with a complete report about what happened.


On redeploy:

  • if image name or repository name do not match the saved deployment configuration of the item, do not allow redeployment

  • if image tag or repository (tag or branch) do not match the saved deployment configuration of the item, display a message and show the save configuration

On re-configure:

  • display if image info (prefix, name, tag) do not match

  • display if repository info (repo, branch or tag) do not match

  • all the remaining information will be driven from the save configuration

  • later on we will support discrepancy comparison for the following:

    • image info

    • repository info

    • volume info

    • ports info

    • env info

    • args info