For a CI/CD pipline. I have read your posted docum...
# gooddata-cloud
d
For a CI/CD pipline. I have read your posted documentation and code. I'm curious how github would handle two staging environments and your meta files for dashboards and LDM? If two users were working off two different clones of the reporting base and merge them at the same time. Does Github manage to handle the conflicts so that one set of changes doesn't cancel out the others? Also, how have people done a check that during a merge that the metadata is in the correct order/format so that the visuals load correctly?
m
Hi Doug, thanks for your interest in analytics as code and CI/CD. In general, Github counts with possible merge conflicts and provides ways how to resolve them - there is a good description in their docs: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts Multiple environments e.g. Dev>Staging>Production or similar should not be problem, however, a corresponding pipeline must be developed and configured. Validation which is part of GoodData CLI can provide a level of validation. We have an example here with some more information: https://www.gooddata.com/blog/how-to-create-your-next-analytical-project-in-code/ Please let me know if you have any further questions.
Hey Doug, I have some more recommendations about validations and some other general guidance. 1. To validate objects you can use a special header X-GDC-VALIDATE-RELATIONS to make sure the objects have valid relations in LDM. Please see example here: https://www.gooddata.com/docs/cloud/api-and-sdk/api/api_reference_all/#operation/getEntity@VisualizationObjects 2. It is also possible e.g. to execute reports as part of pipeline using Python SDK. PythonSDK is really helpful when building any Analytics as Code use-case - https://www.gooddata.com/docs/python-sdk/latest/ 3. There is a complete example pipeline working also with the layout APIs - https://github.com/jaceksan/gooddata-data-pipeline
d
Thanks, I'll take a read
👍 1