onlyutkarsh / gitlab-integration

This extension integrates GitLab with Azure Pipelines. With this extension, you will be able to download the sources from a GitLab repository (using clone command) and use downloaded sources in Azure Pipelines
https://marketplace.visualstudio.com/items?itemName=onlyutkarsh.gitlab-integration
GNU General Public License v3.0
20 stars 5 forks source link

Question: setup in build and release pipelines #12

Open Ddog800 opened 5 years ago

Ddog800 commented 5 years ago

I have a few questions about how this is to be used.

1) If you're configuring this in a build pipeline, your docs suggest to use the "Download Gitlab repository" task. How does this task work alongside the existing 'Get sources' task at the top of the pipeline? You must configure something there and the only thing there that makes sense if your repo is in Gitlab is to use the 'External Git' option. This would take care of downloading the repo from Gitlab. So that leads to the question of, what is the purpose of the 'Download Gitlab repository' task in the first place? What does this extension bring to the table for the build pipeline?

2) If you're configuring this in the release pipeline as a build artifact, then it appears to simply allow you to configure it to pull the code from the latest repository. Is that only meant for interpreted code that doesn't require a build (i.e. PHP, Ruby, etc.). If I have code that needs to be built (i.e. .net core), is there a way to instead have this pull from a build pipeline at Gitlab? If not, then that means I'll need to use the build pipeline within Azure. If so, then that's fine, but see question 1.......

Thanks for the help!

onlyutkarsh commented 5 years ago

Hello @Ddog800 Great questions. My answers below

On #1 The main usage of this extension is via release artifact - what I mentioned in readme here. The Download GitLab Repository task is internally used by this integration. But is installed as part of the extension so can be used in build as well. Now the only difference between using this task vs External Git option is - the latter allows you to stick to a repo and default branch, but with task you will be able to get source by specific branch or commit as well.

On #2 Is that only meant for interpreted code that doesn't require a build (i.e. PHP, Ruby, etc.) Not exactly, the intention was to provide a way to get the source in to Azure DevOps. At this moment though unfortunately there is no extensibility point in Azure DevOps in the Build service so Download GitLab repo task is the way to go to get the source and compile code. But this still has a disadvantage where you cannot implement a proper CI (build on every commit) as of today.

Hope that answers your questions to some extent :-)

msdnguy commented 4 years ago

We have lots of GitLab customers trying to create CI/CD with Azure Pipelines and Boards. Azure DevOps has full REST API coverage and GitLab supports Webhooks. We need something similar to the Jenkins extension for GitLab that allows us to fire the webhook and return the result back to the GitLab merge request (for some reason GitLab doesn't call t his a PR) so the approver can see that the branch policies were met and complete the merge. We also need a webhook to fire once the merge was completed updating the workitems on the boards. Customers love the enterprise capabilities of Azure Pipelines but we just need an example and guidance to get this done. Even this add-in assumes GitLab hosted vs. On Prem which is what most of my customers use. I would love to see a simple example of firing a webhook on GitLab that fires a build and passes the correct branch to build on and the MR# and uses a PAT token for authentication.