DeployHubProject / DeployHub-Pro

DeployHub Pro Pipeline Status Project
https://www.openmakesoftware.com/application-release-automation-for-continuous-delivery/
Other
11 stars 4 forks source link

get last successful app version #323

Open piyush94 opened 3 years ago

piyush94 commented 3 years ago

Is there a way to get the last application version of which deployment was successful from the API? We have the application name.

piyush94 commented 3 years ago

We are trying to automate the rollback to the last successful application version from Jenkins. Any suggestions?

sbtaylor15 commented 3 years ago

I know there is an API to get the last version. I need to check on grabbing the last successful one.

piyush94 commented 3 years ago

Getting the Latest version i checked. It works but one bug was there in Jenkins library. It takes last version in versions array as latest but the new versions were at the top in the array in the API response. So I changed the .last() to .first() in the groovy code.

piyush94 commented 3 years ago

Can't use .last() or .first() as well as the API response is not sorted.

"versions": [
      {
        "id": 513,
        "name": "cf-deploy;3_5_0_backend_dev_105",
        "summary": ""
      },
      {
        "id": 514,
        "name": "cf-deploy;3_5_0_backend_dev_106",
        "summary": ""
      },
      {
        "id": 517,
        "name": "cf-deploy;3_5_0_backend_dev_109",
        "summary": ""
      },
      {
        "id": 510,
        "name": "cf-deploy;3_5_0_frontend_qa_89",
        "summary": ""
      },
      {
        "id": 500,
        "name": "cf-deploy;prod_demo",
        "summary": ""
      }
    ],

Isn't there a built-in way in DeployHub to rollback to the last successful deployment?

sbtaylor15 commented 3 years ago

Added getLastSuccessfulAppVersion(String url, String userid, String pw, String applicationid) which will return the appid of the last successful application version.

Use the updateattrs branch for the groovy script and image ui-skin-v9.0.0.3088-gaa30fe0 for the new ui and image master-v9.0.0.2937-g5ae292f for the old ui

sbtaylor15 commented 3 years ago

Added envid as parameter to getLastSuccessfulAppVersion(String url, String userid, String pw, String applicationid, String envid).

Use the updateattrs branch for the groovy script and image ui-skin-v9.0.0.3090-gd18917f and master-v9.0.0.2939-g2cba1b0

piyush94 commented 3 years ago

The function call returns an array, the rollback application id is at which location. And in the passing parameter applicationid, is it the base version id or the latest id?

sbtaylor15 commented 3 years ago

@piyush94 We had the wrong return type on the groovy doc as an id.

You are right, that it's an array:

  1. application id for the latest successful deployment for the environment
  2. application name
  3. application id for latest version in version tree

You can pass in the application id of the app you just deployed or the app base version id.

piyush94 commented 3 years ago

@sbtaylor15 we are facing issue when creating application version from a branched application. From UI it works fine but from jenkins it doesn't. cfdeploy-error

From UI it creates app version from the latest version i.e cf-deploy;3_5_0_frontend_dev_144. But from jenkins it creates app version from cf-deploy;prod_demo. In jenkins we use newApplicationfunction.

sbtaylor15 commented 3 years ago

@piyush94 so you want cf-deploy;prod_demo have the parent of cf-deploy;3_5_0_frontend_dev_144, correct?

piyush94 commented 3 years ago

@sbtaylor15 the new version should come under cf-deploy;3_5_0_frontend_dev_144 which is the latest version as shown below. But Jenkins library is adding it under cf-deploy;prod_demo. image

Branching would remain.