2. What is AppVeyor
• AppVeyor offers .NET developers powerful and easy to use
Continuous Integration platform with zero setup and
maintenance.
• AppVeyor increases the quality and speed of application
development by building, testing and deploying your code often.
• AppVeyor is hosted in the cloud helping your team to focus on
delivering great apps, not messing with their own build server.
• The name stands for Application conVeyor.
3. Features and benefits
• Quick setup
• Integrated with GitHub and BitBucket
• Tailored to .NET projects
• Continuous deployment
• Customizable build-test-deploy pipeline
• Fast builds and deployments
• Smart notifications
• Team work
4. Who is AppVeyor customer
• Startup or solo developer with private BitBucket or GitHub
repository
• Open-source project with public GitHub or CodePlex*
repository
• .NET and Windows as development and deployment platforms
• Team is distributed or works from different locations
• Willing to cut software licensing and hosting costs
• Needs CI “right now” for faster prototyping, MVP or pivoting
* Development is in progress
5. How is it different from TeamCity?
• Setup and configure in minutes, not days
• Strong focus on .NET projects
• Intelligent delivery pipeline with customizable end-to-end
scenarios, not just a set of DIY “runners”
• Built-in Continuous Deployment
• It’s faster and more reliable!
6. How is it different from TFS services?
• No lock-in – use your favorite online source control,
development tools and deploy to any environment
• Integrated with GitHub, BitBucket
• Easier to use and does not require Visual Studio for project
configuration
• Focus on small companies with faster response to customer
needs
7. How is it different from AppHarbor or
Azure Web Sites?
• Continuous Integration IS the key scenario, not just a selling
feature of PaaS offering
• Works for .NET projects of all kinds: Windows Web, Desktop,
Phone and Store apps, Azure Cloud Services, WiX and NuGet
packages
• Deploys to the environment of your choice!
8. Security
• Project repository credentials are never shared with AppVeyor –
OAuth tokens are used that can be revoked from repository
control panel.
• Project sources are available during the build only and not
stored on AppVeyor servers.
• All sensitive information in AppVeyor database is
encrypted/hashed.
• Completely isolated build process.
• Custom account storage for build artifacts.
9. What’s next
• NuGet support
• Scheduled builds
• On-demand build servers with full access for custom
configurations and integration testing
• Private AppVeyor deployments for SME in the cloud and on
premises
Quick setup – you don’t need to provision server, install and configure complex software, but licenses, setup backups. Other words, it’s SaaS.Login with GitHub or BitBucket account, uses OAuth to access repositories, links to GitHub/BitBucket to quickly find problematic spots.Strong focus on .NET projects. You can’t do well in all possible directions - we are committed to make the best CI tool for .NET developers.Continuous deployment is part of the solution.Provides complete “scenarios” affecting the entire pipeline. Every step could be customized. It’s not just a set of “runners” like in TeamCity, but a ready-to-go solution. Works for 90% of projects - no need to re-invent the wheel.AppVeyor is hosted in a cloud close to your code. AppVeyor build servers are generally faster than your laptop or machine under the desk. Concurrent build processes could be run simultaneously on several build servers. Faster connection to your environment means faster deployment – artifacts stay in the cloud, no need to download them and then upload again.No spam in your inbox. Get notified about the builds affected by you and only when status has changed.Invite your team and control who can do what.
Intelligent pipeline – analyzes solution and decided how to build, package and test projects. If there is Azure CS project it produces .cspkg and .cscfg files. If it’s WiX it produces MSI, if there is NuGet spec file it builds NuGet package, etc. Tests are run in “out” folder or “src”. You are not messing with variables to connect build configuration steps – all phases in AppVeyor are related and work together. For example, when you configure custom artifacts you then get the list of all automatic and custom artifacts, their paths and URLs on the next step in the deployment script.Deployment in TC is whether a script or Octopus Deploy. These are two separate products with their own licensing and support.AppVeyor has a clean, fast and fluent UI built on AngularJS, extensive API and scalable, fault-tolerant architecture with everything hosted on Azure. It maintains a pool of build servers that are faster than your laptop or EC2 instance you can “afford” for build server. Right now they are “medium” instances with 3.5 gigs or RAM and 2 CPU cores. Build artifacts are stored in a geo-redundant blob storage.
A new low-privilegeduser account with random name is created for every project integration run. Each account has its own profile, environment variables, registry hive and build folder with ACLs applied. User is allowed to do whatever any interactively logged user can do – modify contents HKCU of their registry hive, modify files inside profile folder, execute programs and scripts. User is not allowed to install new software or access other users’ data. After the build is finished user account is deleted along with its profile and all temporary files created.
NuGet restore, NuGet publishing, NuGet feed serverReliable, distributed Scheduler is already built into AppVeyor, but currently used for system tasks without UI exposed.On-demand build servers. We will be maintaining a pool of clean pre-provisioned powered-off servers. When a new build starts AppVeyor power on server, provision custom software, run build and then dispose the server. Azure by-the-minute pricing makes this scenario possible.