From 0667e822bee50c3e727611cacaa74d2223e1d268 Mon Sep 17 00:00:00 2001 From: Scott Beddall <45376673+scbedd@users.noreply.github.com> Date: Wed, 20 May 2020 14:56:42 -0700 Subject: [PATCH] Artifact Powered Docs.MS Release (#11395) * abstracting staging of filtered artifacts * adding docs.ms release steps --- .../templates/steps/docs-metadata-release.yml | 2 +- .../stages/archetype-python-release.yml | 85 ++++++++++++++----- .../templates/stages/archetype-sdk-client.yml | 7 +- .../steps/stage-filtered-artifacts.yml | 14 +++ sdk/template/azure-template/CHANGELOG.md | 7 ++ .../azure-template/azure/template/_version.py | 2 +- 6 files changed, 90 insertions(+), 27 deletions(-) create mode 100644 eng/pipelines/templates/steps/stage-filtered-artifacts.yml diff --git a/eng/common/pipelines/templates/steps/docs-metadata-release.yml b/eng/common/pipelines/templates/steps/docs-metadata-release.yml index 89d12d4ac1d1..fc9afd1417ce 100644 --- a/eng/common/pipelines/templates/steps/docs-metadata-release.yml +++ b/eng/common/pipelines/templates/steps/docs-metadata-release.yml @@ -55,4 +55,4 @@ steps: PRTitle: "Docs.MS Readme Update." BaseBranchName: smoke-test WorkingDirectory: ${{parameters.WorkingDirectory}}/repo - ScriptDirectory: ${{parameters.WorkingDirectory}}/${{parameters.ScriptDirectory}} + ScriptDirectory: ${{parameters.WorkingDirectory}}/${{parameters.ScriptDirectory}} \ No newline at end of file diff --git a/eng/pipelines/templates/stages/archetype-python-release.yml b/eng/pipelines/templates/stages/archetype-python-release.yml index 0f26e8b47bd9..33262577352a 100644 --- a/eng/pipelines/templates/stages/archetype-python-release.yml +++ b/eng/pipelines/templates/stages/archetype-python-release.yml @@ -4,6 +4,8 @@ parameters: DependsOn: Build DocArtifact: 'documentation' DevFeedName: public/azure-sdk-for-python + TargetDocRepoOwner: '' + TargetDocRepoName: '' stages: - ${{if and(eq(variables['Build.Reason'], 'Manual'), eq(variables['System.TeamProject'], 'internal'))}}: @@ -26,15 +28,15 @@ stages: deploy: steps: - checkout: self + - template: /eng/pipelines/templates/steps/stage-filtered-artifacts.yml + parameters: + SourceFolder: ${{parameters.ArtifactName}} + TargetFolder: ${{artifact.safeName}} + PackageName: ${{artifact.name}} - pwsh: | - Get-ChildItem $(Pipeline.Workspace)/${{parameters.ArtifactName}} - New-Item -Type Directory -Name ${{artifact.safeName}} -Path $(Pipeline.Workspace) - $underscorePrefix = "${{artifact.name}}" - $dashPrefix = "${{artifact.name}}".Replace("_", "-") - Copy-Item $(Pipeline.Workspace)/${{parameters.ArtifactName}}/$dashPrefix-[0-9]*.[0-9]*.[0-9]* $(Pipeline.Workspace)/${{artifact.safeName}} - Copy-Item $(Pipeline.Workspace)/${{parameters.ArtifactName}}/$underscorePrefix-[0-9]*.[0-9]*.[0-9]* $(Pipeline.Workspace)/${{artifact.safeName}} - Get-ChildItem $(Pipeline.Workspace)/${{artifact.safeName}} - displayName: Stage artifacts + Get-ChildItem -Recurse $(Pipeline.Workspace)/${{artifact.safeName}} + workingDirectory: $(Pipeline.Workspace) + displayName: Output Visible Artifacts - template: /eng/common/pipelines/templates/steps/create-tags-and-git-release.yml parameters: ArtifactLocation: $(Pipeline.Workspace)/${{artifact.safeName}} @@ -62,14 +64,11 @@ stages: artifact: ${{parameters.ArtifactName}} timeoutInMinutes: 5 - - pwsh: | - Get-ChildItem $(Pipeline.Workspace)/${{parameters.ArtifactName}} - New-Item -Type Directory -Name ${{artifact.safeName}} -Path $(Pipeline.Workspace) - $underscorePrefix = "${{artifact.name}}" - $dashPrefix = "${{artifact.name}}".Replace("_", "-") - Copy-Item $(Pipeline.Workspace)/${{parameters.ArtifactName}}/$dashPrefix-[0-9]*.[0-9]*.[0-9]* $(Pipeline.Workspace)/${{artifact.safeName}} - Copy-Item $(Pipeline.Workspace)/${{parameters.ArtifactName}}/$underscorePrefix-[0-9]*.[0-9]*.[0-9]* $(Pipeline.Workspace)/${{artifact.safeName}} - Get-ChildItem $(Pipeline.Workspace)/${{artifact.safeName}} + - template: /eng/pipelines/templates/steps/stage-filtered-artifacts.yml + parameters: + SourceFolder: ${{parameters.ArtifactName}} + TargetFolder: ${{artifact.safeName}} + PackageName: ${{artifact.name}} - task: UsePythonVersion@0 @@ -105,7 +104,7 @@ stages: displayName: 'Publish package to feed: ${{parameters.DevFeedName}}' - ${{if ne(artifact.options.skipPublishDocs, 'true')}}: - - deployment: PublishDocs + - deployment: PublishGitHubIODocs displayName: Publish Docs to GitHubIO Blob Storage condition: and(succeeded(), ne(variables['Skip.PublishDocs'], 'true')) environment: githubio @@ -119,12 +118,12 @@ stages: deploy: steps: - checkout: self - - pwsh: | - Get-ChildItem $(Pipeline.Workspace)/${{parameters.DocArtifact}} - New-Item -Type Directory -Name ${{artifact.safeName}} -Path $(Pipeline.Workspace) - $dashPrefix = "${{artifact.name}}".Replace("_", "-") - Copy-Item $(Pipeline.Workspace)/${{parameters.DocArtifact}}/$dashPrefix.zip $(Pipeline.Workspace)/${{artifact.safeName}} - displayName: Stage artifacts + - template: /eng/pipelines/templates/steps/stage-filtered-artifacts.yml + parameters: + SourceFolder: ${{parameters.DocArtifact}} + TargetFolder: ${{artifact.safeName}} + PackageName: ${{artifact.name}} + AdditionalRegex: '.zip' - pwsh: | Get-ChildItem -Recurse $(Pipeline.Workspace)/${{artifact.safeName}} workingDirectory: $(Pipeline.Workspace) @@ -138,6 +137,46 @@ stages: # we override the regular script path because we have cloned the build tools repo as a separate artifact. ScriptPath: 'eng/common/scripts/copy-docs-to-blobstorage.ps1' + - ${{if ne(artifact.options.skipPublishDocs, 'true')}}: + - deployment: PublishDocs + displayName: "Docs.MS Release" + condition: and(succeeded(), ne(variables['Skip.PublishDocs'], 'true')) + environment: githubio + dependsOn: PublishPackage + + pool: + vmImage: ubuntu-18.04 + + strategy: + runOnce: + deploy: + steps: + - checkout: self + - template: /eng/pipelines/templates/steps/stage-filtered-artifacts.yml + parameters: + SourceFolder: ${{parameters.ArtifactName}} + TargetFolder: ${{artifact.safeName}} + PackageName: ${{artifact.name}} + - pwsh: | + Get-ChildItem -Recurse $(Pipeline.Workspace)/${{artifact.safeName}} + workingDirectory: $(Pipeline.Workspace) + displayName: Output Visible Artifacts + - template: /eng/common/pipelines/templates/steps/docs-metadata-release.yml + parameters: + ArtifactLocation: $(Pipeline.Workspace)/${{artifact.safeName}} + PackageRepository: PyPI + ReleaseSha: $(Build.SourceVersion) + RepoId: Azure/azure-sdk-for-python + WorkingDirectory: $(System.DefaultWorkingDirectory) + TargetDocRepo: 'MicrosoftDocs/azure-docs-sdk-python' + TargetDocRepoOwner: ${{parameters.TargetDocRepoOwner}} + TargetDocRepoName: ${{parameters.TargetDocRepoName}} + PRBranchName: 'smoke-test-rdme' + ArtifactName: ${{parameters.ArtifactName}} + Language: 'python' + ServiceDirectory: ${{ parameters.ServiceDirectory }} + DocRepoDestinationPath: 'docs-ref-services/' + - ${{if ne(artifact.options.skipUpdatePackageVersion, 'true')}}: - deployment: UpdatePackageVersion displayName: "Update Package Version" diff --git a/eng/pipelines/templates/stages/archetype-sdk-client.yml b/eng/pipelines/templates/stages/archetype-sdk-client.yml index deee8176614a..aaf3e3809a99 100644 --- a/eng/pipelines/templates/stages/archetype-sdk-client.yml +++ b/eng/pipelines/templates/stages/archetype-sdk-client.yml @@ -4,7 +4,8 @@ parameters: ToxEnvParallel: '--tenvparallel' InjectedPackages: '' BuildDocs: true - + TargetDocRepoOwner: 'MicrosoftDocs' + TargetDocRepoName: 'azure-docs-sdk-python' stages: - stage: Build @@ -24,4 +25,6 @@ stages: ServiceDirectory: ${{parameters.ServiceDirectory}} Artifacts: ${{parameters.Artifacts}} ArtifactName: packages - DocArtifact: documentation \ No newline at end of file + DocArtifact: documentation + TargetDocRepoOwner: ${{parameters.TargetDocRepoOwner}} + TargetDocRepoName: ${{parameters.TargetDocRepoName}} \ No newline at end of file diff --git a/eng/pipelines/templates/steps/stage-filtered-artifacts.yml b/eng/pipelines/templates/steps/stage-filtered-artifacts.yml new file mode 100644 index 000000000000..05a82b966a62 --- /dev/null +++ b/eng/pipelines/templates/steps/stage-filtered-artifacts.yml @@ -0,0 +1,14 @@ +parameters: + SourceFolder: '' # ArtifactName (aka "packages") + TargetFolder: '' # artifact.safename (azuretemplate) + PackageName: '' # artifact.name (azure-template) + AdditionalRegex: '-[0-9]*.[0-9]*.[0-9]*' + +steps: + - pwsh: | + New-Item -Type Directory -Name ${{parameters.TargetFolder}} -Path $(Pipeline.Workspace) + $underscorePrefix = "${{parameters.PackageName}}" + $dashPrefix = "${{parameters.PackageName}}".Replace("_", "-") + Copy-Item $(Pipeline.Workspace)/${{parameters.SourceFolder}}/$dashPrefix${{parameters.AdditionalRegex}} $(Pipeline.Workspace)/${{parameters.TargetFolder}} + Copy-Item $(Pipeline.Workspace)/${{parameters.SourceFolder}}/$underscorePrefix${{parameters.AdditionalRegex}} $(Pipeline.Workspace)/${{parameters.TargetFolder}} -ErrorAction SilentlyContinue + displayName: Stage artifacts diff --git a/sdk/template/azure-template/CHANGELOG.md b/sdk/template/azure-template/CHANGELOG.md index b891c3650b57..05c01874c785 100644 --- a/sdk/template/azure-template/CHANGELOG.md +++ b/sdk/template/azure-template/CHANGELOG.md @@ -1,4 +1,11 @@ # Release History + +## 0.0.6 (2020-05-20) +- Test a successful Release + +## 0.0.5 (2020-05-20) +- Test a successful Release + ## 0.0.3 (Unreleased) ## 0.0.2 (2020-03-24) diff --git a/sdk/template/azure-template/azure/template/_version.py b/sdk/template/azure-template/azure/template/_version.py index a03b1098e2b0..36f525b597c0 100644 --- a/sdk/template/azure-template/azure/template/_version.py +++ b/sdk/template/azure-template/azure/template/_version.py @@ -1,2 +1,2 @@ # matches SEMVER -VERSION = "0.0.3" \ No newline at end of file +VERSION = "0.0.6" \ No newline at end of file