Today I went through the pain of automating my release deployment via AppVeyor. Of course it turned out to be easy and I’m stupid since it was painful for me. However, now that everything is up and running I wanted to share my results.
What I wanted:
- Automated deployment to GitHub Releases
- Deploy one zip file
- Everything is configured via the appveyor.yml file within the repository
- Deploy only the master but every push to the master
- No Deployment/Build triggered by Tags
I’m deploying a .Net project with some Nuget packages.
And that’s what I came up with for my appveyor.yml file:
configuration: Release skip_tags: true before_build: nuget restore after_build: 7z a nameOfZipFile.zip %APPVEYOR_BUILD_FOLDER%\projectName\bin\Release\projectName.exe %APPVEYOR_BUILD_FOLDER%\projectName\bin\Release\some.dll artifacts: path: nameOfZipFile.zip name: someUniqueNameForTheArtifact deploy: release: projectName-v$(appveyor_build_version) description: 'some release description' provider: GitHub auth_token: secure: <YOUR ENCRYPTED GITHUB TOKEN> artifact: someUniqueNameForTheArtifact draft: false prerelease: false on: branch: master
Make sure you encrypt your GitHub token on the AppVeyor homepage!
See also the AppVeyor documentation for additional information.