Skip to content

Conversation

@jimson-msft
Copy link
Contributor

  • Publish the release version of all our components as release assets.
  • Add new pipeline variables for specifying TargetCommit, previously this pipeline would use the current commit that the build was run off of.

@jimson-msft jimson-msft requested a review from a team as a code owner March 2, 2021 19:10

pool: dotestlab

variables:
Copy link
Collaborator

@shishirb-MSFT shishirb-MSFT Mar 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

variables [](start = 0, length = 9)

Can we add a variable to allow us to test the pipeline without actually performing a release? Like a dry run that does everything except the last stage. Instead of the last stage, maybe we can just recursively list everything available in the artifact directory as the final step. #Closed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I've added it as a parameter so the pipeline UI reflects it in a toggle checkbox


In reply to: 585962244 [](ancestors = 585962244)

gitHubConnection: 'client2'
repositoryName: 'microsoft/do-client'
action: 'create'
assets: '$(Build.ArtifactStagingDirectory)/**/*-release/*'
Copy link
Collaborator

@shishirb-MSFT shishirb-MSFT Mar 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • [](start = 64, length = 1)

Consider specifying *.deb. That is the only asset we intend to publish, yes? #Closed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct


In reply to: 585981245 [](ancestors = 585981245)

@shishirb-MSFT
Copy link
Collaborator

shishirb-MSFT commented Mar 2, 2021

For the source code archives, how was it using the do-client-0.6.0 name for the zip/gz files? Can we make it use the standard Source Code.zip/.gz filenames? #Resolved

jobs:
- job: deliveryoptimization_agent
steps:
- template: ../build/templates/doclient-lite-native-steps.yml
Copy link
Collaborator

@shishirb-MSFT shishirb-MSFT Mar 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Building all components in the pipeline. Sweet! #Closed

@shishirb-MSFT
Copy link
Collaborator

The debian packages were named as artifacts.tar.gz which was fine but I see that we are no longer archiving this. I was talking about the source code archive.


In reply to: 789339068 [](ancestors = 789339068,789292145)

- name: SkipPublishing
displayName: Build only (skip release stage)
type: boolean
default: false
Copy link
Collaborator

@shishirb-MSFT shishirb-MSFT Mar 3, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

false [](start = 13, length = 5)

I'd keep default as true to avoid publishing accidentally. We want this pipeline to be a fully thought out execution. #Closed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I'd expect running this pipeline at all to be with the intention of publishing. So this pipeline does two things:
Stage 1: Builds release versions of all our components for all platforms we support
Stage 2: Publishes

Do we see the use case of this pipeline being more for publishing or for validating a build of all our release pipelines? I imagine we won't be using this pipeline too regularly as a 'master' build of all our components, but rather as a 'we are ready to release'. We already have CI via our pipelines running on every check-in on the main branch.


In reply to: 586658460 [](ancestors = 586658460)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, can you remove the default in that case? I'd like it to be explicitly chosen when kicking off the pipeline.


In reply to: 586683419 [](ancestors = 586683419,586658460)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, removed


In reply to: 589704917 [](ancestors = 589704917,586683419,586658460)

changeLogCompareToReleaseTag: 'ms-do-client-$(release.previous_version)'
changeLogType: 'commitBased'
- stage: release
condition: and(succeeded(), eq('${{parameters.SkipPublishing}}', false))
Copy link
Collaborator

@shishirb-MSFT shishirb-MSFT Mar 3, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

condition [](start = 2, length = 9)

When SkipPublishing is true, consider listing out, just to the pipeline log output, the artifacts that will be included in the release and things like tag and title. Is there a way to output the change log as well? #Closed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, so a true dry-run. Let me see


In reply to: 586662450 [](ancestors = 586662450)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can definitely print the artifacts to be published, release name and tag/title, but not a good way to output change log.

One hacky way of achieving the above and to print out the change log would be to publish a release, then immediately delete the release in a subsequent task if SkipPublishing is set to true.


In reply to: 586685709 [](ancestors = 586685709,586662450)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, in that case, print everything except the change log. I don't want to actually publish to github because (I think) it might trigger emails if someone is following our repo.


In reply to: 589764290 [](ancestors = 589764290,586685709,586662450)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a task under release to do this, and made the actual github release task the conditional one.

Do note that all that information is available anyways through the azure pipeline display -> all variables can be found as well as contents to be published, but the added task should make it explicit.


In reply to: 589767276 [](ancestors = 589767276,589764290,586685709,586662450)

@shishirb-MSFT
Copy link
Collaborator

shishirb-MSFT commented Mar 3, 2021

Mind holding off on merging this until we have that meeting with Shiyi and team? I want all of us to understand how new changes are going to be consumed going forward. #Resolved

@jimson-msft
Copy link
Contributor Author

Sure, I'll leave it open until then


In reply to: 789949112 [](ancestors = 789949112)

@jimson-msft
Copy link
Contributor Author

I'm not sure it's standard to rename the source code archive (taking a look at iotedge for example)


In reply to: 789944699 [](ancestors = 789944699,789339068,789292145)

@shishirb-MSFT
Copy link
Collaborator

shishirb-MSFT commented Mar 8, 2021

I think they understand that snapping to a tag is the way forward. Feel free to check in once signed off.


In reply to: 789965440 [](ancestors = 789965440,789949112)

echo Tag used to generate changelog: $(Release.PreviousVersion)
echo directory to be published: $(Build.ArtifactStagingDirectory)
echo Content to be published:
echo ls -l $(Build.ArtifactStagingDirectory)
Copy link
Collaborator

@shishirb-MSFT shishirb-MSFT Mar 8, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

echo [](start = 12, length = 4)

echo not needed or ls command right? We need the output from ls itself. #Closed

- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'specific'
Copy link
Collaborator

@shishirb-MSFT shishirb-MSFT Mar 9, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

specific [](start = 23, length = 8)

Did you intend to specify an itemPattern to download only .deb files?

My suggestion would be to download all artifacts so that we can do things like calculate and publish hashes of each artifact (later). #Resolved

Copy link
Contributor Author

@jimson-msft jimson-msft Mar 9, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, the default here is single.

The only other option is 'specific'
https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/download-build-artifacts?view=azure-devops

I intend to download all artifacts, my guess was 'single' was not the right option to do so.
We'll see when the current build completes whether or not 'specific' downloads all artifacts. #Resolved

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you're right.


In reply to: 590816853 [](ancestors = 590816853)

Copy link
Collaborator

@shishirb-MSFT shishirb-MSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@jimson-msft jimson-msft merged commit cd43c1a into main Mar 10, 2021
@jimson-msft jimson-msft deleted the user/jimson/release branch March 10, 2021 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants