-
Notifications
You must be signed in to change notification settings - Fork 104
Release Instructions
https://azfunc.visualstudio.com/Azure%20Functions/_release?_a=releases&view=mine&definitionId=42
- Create a new release pipeline
- Fill in NewWorkerVersion parameter, for example, 1.1.8
- Deploy each step and go through instructions in manual intervention steps
Python Library -> Python Worker -> Function Host -> Functions Docker -> Toolings
-
Ensure that build bots in the dev branch are green.
-
Create a new release branch -
release/X.Y.Z
and checkout.- We use a version of GitHub flow for release - creating a branch for release.
- Use command
git flow release start <major>.<minor>.<patch>
to create a new local release branch.
-
Increase the version field in
setup.py
. -
Update
setup.py
to include the latest host binaries when available for the current sprint (https://github.com/Azure/azure-functions-host/releases) and, if needed, update the corresponding dotnet version inazure-pipelines.yml
.- Replacing the
WEBHOST_URL
to the latest host release.
- Replacing the
-
Push the commit with the new version to the
release/X.Y.Z
branch.- Use command
git flow release publish <major>.<minor>.<patch>
to push the branch into remote repository. - If the above command fails (either due to origin not set correctly or unavailable), please use
git push <remote-alias-pointing-to-azure>
to push the release branch to Azure. Push the version and host binary updates to the master branch.
- Use command
-
Verify that the build bots are still green. Check the following pipelines:
-
Create a Git tag (e.g. 1.1.2) on the dev branch with the GitHub release note and correspond it to the new version.
-
Make a PyPi release:
$ rm dist/* $ python setup.py sdist bdist_wheel $ twine upload dist/*
Twine is a PyPI upload tool that can be installed with pip
Wheel is used for generating bdist_wheel on packaging
$ pip install twine wheel
-
Release the NuGet artifact to MyGet
- Push a new branch with the name
release/2.X.Y.Z
andrelease/3.X.Y.Z
in the repository. - Wait for the build success
-
Azure DevOps -> Releases ->
release/x.X.Y.Z
branch -> Publish Worker Environment NuGet -> Deploy
- Push a new branch with the name
-
Update Python Worker artifact version in Azure Functions Host
- For v2 release: in branch v2.x, build/python.props and test/WebJobs.Script.Tests/WebJobs.Script.Tests.csproj
- For v3 release: in branch dev, build/python.props and test/WebJobs.Script.Tests/WebJobs.Script.Tests.csproj
-
Update Python Worker artifact version in Azure Functions Core Tools
- For v2 release: in branch dev, src/Azure.Functions.Cli/Azure.Functions.Cli.csproj
- For v3 release: in branch v3.x, src/Azure.Functions.Cli/Azure.Functions.Cli.csproj
- Update the version field in setup.py
- Update the packages field in setup.py if you're including a new module
- Inspect the build pipeline artifact and make sure everything you want is in there
- Tag the master branch
- Make a release note on GitHub
- Push a
release/2.x.xxxxx
andrelease/3.x.xxxxx
branches in repository - Update the artifact version in Azure Functions Host
- Update the artifact version in Azure Functions Core Tools