Here's a quick review of the road so far:
CI CD in Azure Synapse Analytics Part 1
Creating an Azure DevOps project
Linking our Azure Synapse Analytics environment to that Project via Git ...
Thank you for the kind words! Let me try to take these questions one at a time.
1. Is it possible to push artifact of my dev workspace from a feature branch without merging my changes into main (collaboration) branch and deploy into test/qa workspace?
The problem I have witnessed with this approach is the TemplateForWorkspace.json or TemplateParametersForWorkspace.json can get disconnected and a merge issue could present itself which requires manual resolution of the template files, if you are merging some files to CustomBranch, and others to Main.
When I've run into this, it was a major headache (for me) to fix. I have developer friends that went, "Oh yeah just go into the files and manually fix the merge.". This is where I like to remind folks, I'm more data person than developer. So if manually fixing merge conflicts is something you are comfortable with, just keep in mind you may need that skill set.
The short answer, however, is Yes. You can create a build package off of a branch other than main and use that to deploy to QA or Prod. Just make sure your developer friends are on stand by!
2. Also once we click manually on publish button in main branch which generates TemplateForWorkspace.json and TemplateParametersForWorkspace.json into workspace_publish branch in my azure devops repo and then my release pipeline deploy my dev workspace changes into Test/QA/UAT workspace using these templates, is it possible to automate this publish activity? I want to trigger my release pipeline as soon as my PRs are merged into main branch and these two template jsons are generated automatically.
If I understand correctly, the question is once you publish from workspace_publish to Main we can trigger the build package. After that you want to trigger the release package?
Yes! Go to the Pipelines and click on Releases. Click the lightning bolt at the top of the package. That will open a blade on the righthand side of your browser that is currently disabled. If you enable it, it will trigger the release pipeline whenever a new build package is created.