From 791948c44ed1e456f6b10431c3a7791ee25c3d6a Mon Sep 17 00:00:00 2001 From: scbedd <45376673+scbedd@users.noreply.github.com> Date: Wed, 2 Sep 2020 12:05:19 -0700 Subject: [PATCH] abstract auth to the dev feeds. additionally, add pip auth --- .../templates/jobs/archetype-sdk-client.yml | 1 + .../stages/archetype-python-release.yml | 21 +++------------ .../templates/stages/archetype-sdk-client.yml | 7 ++++- .../templates/steps/auth_dev_feed.yml | 26 +++++++++++++++++++ eng/pipelines/templates/steps/build-test.yml | 6 +++++ 5 files changed, 43 insertions(+), 18 deletions(-) create mode 100644 eng/pipelines/templates/steps/auth_dev_feed.yml diff --git a/eng/pipelines/templates/jobs/archetype-sdk-client.yml b/eng/pipelines/templates/jobs/archetype-sdk-client.yml index 547275bf447b..2a0f63a811d8 100644 --- a/eng/pipelines/templates/jobs/archetype-sdk-client.yml +++ b/eng/pipelines/templates/jobs/archetype-sdk-client.yml @@ -40,6 +40,7 @@ parameters: CoverageArg: '--disablecov' RunForPR: false AdditionalTestMatrix: [] + DevFeedName: 'public/azure-sdk-for-python' jobs: - job: 'Build' diff --git a/eng/pipelines/templates/stages/archetype-python-release.yml b/eng/pipelines/templates/stages/archetype-python-release.yml index 04278e6ddbb6..5e314e46e2e5 100644 --- a/eng/pipelines/templates/stages/archetype-python-release.yml +++ b/eng/pipelines/templates/stages/archetype-python-release.yml @@ -3,7 +3,7 @@ parameters: ArtifactName: 'not-specified' DependsOn: Build DocArtifact: 'documentation' - DevFeedName: public/azure-sdk-for-python + DevFeedName: 'public/azure-sdk-for-python' TargetDocRepoOwner: '' TargetDocRepoName: '' @@ -236,22 +236,9 @@ stages: pip install twine displayName: Install Twine - - pwsh: | - # For safety default to publishing to the private feed. - # Publish to https://dev.azure.com/azure-sdk/internal/_packaging?_a=feed&feed=azure-sdk-for-python-pr - $devopsFeedName = 'internal/azure-sdk-for-python-pr' - if ('$(Build.Repository.Name)' -eq 'Azure/azure-sdk-for-python') { - # Publish to https://dev.azure.com/azure-sdk/public/_packaging?_a=feed&feed=azure-sdk-for-python - $devopsFeedName = '${{ parameters.DevFeedName }}' - } - echo "##vso[task.setvariable variable=DevFeedName]$devopsFeedName" - echo "Using DevopsFeed = $devopsFeedName" - displayName: Setup DevOpsFeedName - - - task: TwineAuthenticate@0 - displayName: 'Authenticate to feed: $(DevFeedName)' - inputs: - artifactFeeds: $(DevFeedName) + - template: ../steps/auth_dev_feed.yml + parameters: + DevFeedName: ${{ parameters.DevFeedName }} - ${{ each artifact in parameters.Artifacts }}: diff --git a/eng/pipelines/templates/stages/archetype-sdk-client.yml b/eng/pipelines/templates/stages/archetype-sdk-client.yml index bc7ecfb10c2b..64231fde8821 100644 --- a/eng/pipelines/templates/stages/archetype-sdk-client.yml +++ b/eng/pipelines/templates/stages/archetype-sdk-client.yml @@ -26,6 +26,9 @@ parameters: - name: AdditionalTestMatrix type: object default: [] +- name: DevFeedName + type: string + default: public/azure-sdk-for-python stages: - stage: Build @@ -38,6 +41,7 @@ stages: InjectedPackages: ${{parameters.InjectedPackages}} SkipPythonVersion: ${{parameters.SkipPythonVersion}} AdditionalTestMatrix: ${{parameters.AdditionalTestMatrix}} + DevFeedName: ${{parameters.DevFeedName}} # The Prerelease and Release stages are conditioned on whether we are building a pull request and the branch. - ${{if and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['System.TeamProject'], 'internal'))}}: @@ -49,4 +53,5 @@ stages: ArtifactName: packages DocArtifact: documentation TargetDocRepoOwner: ${{parameters.TargetDocRepoOwner}} - TargetDocRepoName: ${{parameters.TargetDocRepoName}} \ No newline at end of file + TargetDocRepoName: ${{parameters.TargetDocRepoName}} + DevFeedName: ${{parameters.DevFeedName}} \ No newline at end of file diff --git a/eng/pipelines/templates/steps/auth_dev_feed.yml b/eng/pipelines/templates/steps/auth_dev_feed.yml new file mode 100644 index 000000000000..ebe4f94ec925 --- /dev/null +++ b/eng/pipelines/templates/steps/auth_dev_feed.yml @@ -0,0 +1,26 @@ +parameters: + DevFeedName: 'public/azure-sdk-for-python' + +steps: + - pwsh: | + # For safety default to publishing to the private feed. + # Publish to https://dev.azure.com/azure-sdk/internal/_packaging?_a=feed&feed=azure-sdk-for-python-pr + $devopsFeedName = 'internal/azure-sdk-for-python-pr' + if ('$(Build.Repository.Name)' -eq 'Azure/azure-sdk-for-python') { + # Publish to https://dev.azure.com/azure-sdk/public/_packaging?_a=feed&feed=azure-sdk-for-python + $devopsFeedName = '${{ parameters.DevFeedName }}' + } + echo "##vso[task.setvariable variable=DevFeedName]$devopsFeedName" + echo "Using DevopsFeed = $devopsFeedName" + displayName: Setup DevOpsFeedName + + - task: TwineAuthenticate@0 + displayName: 'Twine Authenticate to feed: $(DevFeedName)' + inputs: + artifactFeeds: $(DevFeedName) + + - task: PipAuthenticate@1 + displayName: 'Pip Authenticate to feed: $(DevFeedName)' + inputs: +     artifactFeeds: $(DevFeedName) + onlyAddExtraIndex: true \ No newline at end of file diff --git a/eng/pipelines/templates/steps/build-test.yml b/eng/pipelines/templates/steps/build-test.yml index 751925a0c603..284831c99902 100644 --- a/eng/pipelines/templates/steps/build-test.yml +++ b/eng/pipelines/templates/steps/build-test.yml @@ -13,6 +13,7 @@ parameters: RunCoverage: ne(variables['CoverageArg'], '--disablecov') ToxEnvParallel: '' InjectedPackages: '' + DevFeedName: 'public/azure-sdk-for-python' steps: - pwsh: | @@ -32,6 +33,11 @@ steps: pip freeze displayName: 'Prep Environment' + - ${{if eq(variables['System.TeamProject'], 'internal') }}: + - template: ../steps/auth_dev_feed.yml + parameters: + DevFeedName: ${{ parameters.DevFeedName }} + - ${{ parameters.BeforeTestSteps }} - task: PythonScript@0