Best practices for provisioning


#1

Are there any recommendations/best practices to keep track of what has been provisioned in a given tenant/tag? for instance:

  • What’s the best way to store the the commit hash so that later I can precisely tell what’s provisioned in a given tenant/tag?
    Would prefer something else than using TenantTag and manually setting a key with the commit hash.

Any suggestion is welcome.

UPDATE: It seems that type Tag provide some information about provisioning, for instance under info, there is a field that stores:

  • the branch name branch: master
  • commit hash refSpec: 0cf3dc56b79c53436bcd970389dc70bc5bc3fee5.

#2

To track via deploy date you can run:

c3Grid(TagProvisionLog.fetch({order:"descending(meta.created)"}))

#3

how about un-staged/un-committed changes when provisioning from local branch, no way to truck them?


#4

Tag.infos.refSpec will have the commit sha only.
We dont keep track of each changes from each provision. unstaged/uncommited files would get provisioned but we are not logging what files changed durign that provision.


#5

If we get an error like this:


can we ignore it if we can find in TagProvisionLog the corresponding entry?
In other words, what is the official way of making sure provision actually worked?

Thanks


#6

Deployment is considered successful, when the response from deployment has no errors. If there are errors, the code will be reverted to previous state unless option doNotRevertStateOnErrors specified.
TagProvisionLog is always updated with details of what options provisioning attempt was done, whether successful or not.
It appears the deployment failed here…as there are running actions and which did not stop in 60 sec.


#7

In v7.8.4.3-1, I see only the following fields on TagProvisionLog: deployDate, author, branch, ciTag, machine, packageFileId, refSpec, tools, message, rootPackage, packageVersion, packages. Where exactly is the info on options and success?

Thanks


#8

I meant, TagProvisionLog will be updated with info, irrespective of deployment succeeded or not. It does not log result of deployment. So just presence of log will not indicate it finished successfully. Added a future task to enhance the log.