Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion eng/templates/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,24 @@ jobs:
inputs:
SourceFolder: dist
Contents: '**'
TargetFolder: $(Build.ArtifactStagingDirectory)
TargetFolder: $(Build.ArtifactStagingDirectory)

- task: ManualValidation@1
Copy link

Choose a reason for hiding this comment

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

https://learn.microsoft.com/en-us/azure/devops/pipelines/process/phases?view=azure-devops&tabs=yaml#types-of-jobs

You will want this in a separate "server" job. Jobs are "agent" by default, which take up an active slot on our agent pool. These have a timeout ceiling on them, typically about 1hr. A "server" job is limited to specific tasks but can have a significantly longer timeout.

Or you can use a deployment environment which gives another approval mechanism.

timeoutInMinutes: 1440 # task times out in 1 day
inputs:
notifyUsers: |
[email protected]
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I will update this to notify the core durable group

instructions: 'Approve publish of azure-functions-durable to PyPi'
onTimeout: 'reject'

- script: |
pip install wheel
pip install twine

- task: TwineAuthenticate@1
displayName: Twine Authenticate
inputs:
pythonUploadServiceConnection: azure-functions-durable-pypi

- script: |
python -m twine upload --config-file $(PYPIRC_PATH) dist/*
Copy link

Choose a reason for hiding this comment

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

You probably want to break this out into a different pipeline entirely. Keeping it in this job will cause these builds to fail each time you reject it. So only "released" runs will report as success.