Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DownloadBuildArtifactsV0: allowPartiallySucceededBuilds for multistage pipelines #11349

Closed
katlimruiz opened this issue Sep 16, 2019 · 2 comments
Assignees

Comments

@katlimruiz
Copy link

I have an azure-pipelines.yml with
Pipeline 1: Build, Stg and Prod. Stg and Prod are set with manual check. This is working fine.
The build stage generates a nupkg which is published as artifact.

I have a azure-pipelines-nuget.yml with
Pipeline 2: DownloadBuildArtifact, Publish to Nuget.
This will download the artifact from P1, and then push to nuget.

This was working fine before P1 was converted to multistage.

The reason is because even the build is successful, the multistage is kept in status "In Progress" waiting for the manual check to be approved.

Therefore when DownloadBuildArtifactsV0 is ran, it retrieves that the latest successful build is #3039 when the latest where the build is successful is #3133 (although this build has its Stg and Prod stages still pending).

I would consider this as a bug for this task for multistage pipelines.

Notes:
Some more detail, this is two pipelines for the same repo, because nuget push should only be done when the developer knows the public interface of the components have changed. If only internal changes were applied, the nuget does not need to be published.

@Lovakumar
Copy link
Contributor

@katlimruiz this seems like enhancement but not as a bug. With multi stage pipeline do you want to consider moving pipeline 2 steps in pipeline 1 itself and kill pipeline 2?

Secondly why are you publishing as artifact first and then to nuget package? You can directly publish to nuget from pipeline 1 itself.

@katlimruiz
Copy link
Author

  1. I had to do it because I need to decide whether that version is worth pushing to nuget feed. If the changes made are only internal workings, then no. If they change external interface, then yes.

However, I have found a solution that works out well in the end.

I decided to add a new stage called PushNuget, which was associated to an environment called NugetFeed that has a manual check, and then I configured the dependencies as this:

Build > Stg > Prod
         > NugetFeed

So in this setting, I am able to decide whether the PushNuget is executed or not, and not stop Stg and Prod stages.

I will close this issue.

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants