GitHub deployment provider uploads build artifacts to an existing GitHub release or creates a new release if one does not already exist. You can publish artifacts during the build or use staged deployment by configuring new environment of
GitHub type at https://ci.appveyor.com/environments.
Note that the provider name
GitHub is case sensitive (e.g. not
Table of contents:
In this scenario, the GitHub deployment step is configured to run as part of the build process.
Alternatively, you may tell AppVeyor to create a “draft” release so you can perform any final checks before making it public.
In this scenario you configure a new “Environment” of GitHub type at https://ci.appveyor.com/environments, then:
To promote selected “tag” build to GitHub release:
NOTE: If the current build is based on a regular commit then a new tag is created (either explicitly or automatically named in
tag field of deployment settings as described below) along with the release. This means that, unless you have
skip_tags set to true, the creation of the tag will also send a webhook to Appveyor, and the deployment process will begin again, and so on.
To avoid this possible cycle, you can set
skip_tags to true. However, you may be using
on: key to conditionally build and deploy only on tags you create manually. In this case, you can specify
tag: $(APPVEYOR_REPO_TAG_NAME) in deployment settings without skipping tags, and the manually created tag will be updated instead of a new one being created.
tag) - Optional. If not specified build tag or version is used. You can use environment variables in tag name, for example
release) - Optional. The name of release. If not specified tag name is used as release name. You can use environment variables in release name, for example
product release of v$(appveyor_build_version).
description) - mandatory release description. If not specified, GitHub returns
422: Unprocessable entityerror.
auth_token) - OAuth token used for authentication against GitHub API. You can generate Personal API access token at https://github.com/settings/tokens. Minimal token scope is
public_repoto release on private or public repositories respectively. Be sure to encrypt your token using the Account → Encrypt data tool.
repository) - Optional. Allows to deploy into repository other than project’s one. Note that if this repository is under another owner, GitHub authentication token should be generated under that owner too. Use
artifact) - Optional. Allows specifying one or more build artifacts to be uploaded as release assets. The value could be comma-delimited list of artifact’s file name, deployment name or regular expression matching one of these. For example
/.*\.nupkg/. Don’t forget to package your artifact first, as the deployment will fail if this value does not match
artifacts.path(even if the file exists.)
trueif draft release should be created; default is
trueto mark release as “pre-release”; default is
trueto overwrite files in an existing release; default is
falsewhich will fail deployment if the release already exists on GitHub.
deploy: release: myproduct-v$(appveyor_build_version) description: 'Release description' provider: GitHub auth_token: secure: <your encrypted token> # your encrypted token from GitHub artifact: /.*\.nupkg/ # upload all NuGet packages to release assets draft: false prerelease: false on: branch: master # release from master branch only appveyor_repo_tag: true # deploy on tag push only