• Stars
    star
    123
  • Rank 290,145 (Top 6 %)
  • Language
    C#
  • License
    MIT License
  • Created over 8 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Run your AppVeyor builds, locally

.NET Core global tool which brings appveyor.yml to the center of your build process by making possible to execute its build jobs, locally.

Windows OS X / Linux Nuget
Build status Build Status Nuget

How it works

LocalAppVeyor tries to strictly follow same build pipeline as AppVeyor CI itself.

  1. Grabs appveyor.yml's build configuration from current (or specified) local repository folder.
  2. Reads supported build steps from it.
  3. Executes build pipeline for each job (or specified ones) on the build matrix.

Build engine tries to be the less intrusive as possible printing only what it comes from the build output.

Install

Install LocalAppVeyor as a .NET Core CLI global tool using the following command:

dotnet tool install -g localappveyor

You have it now available on your command line:

LocalAppVeyor --help

Requires .NET Core 3.1 or higher.

Usage

Usage: LocalAppVeyor [options] [command]

Options:
  -?|-h|--help  Show help information
  -v|--version  Show version information

Commands:
  build  Executes one or all build jobs on specified repository directory
  jobs   List all build jobs available to execution.
  lint   Validates appveyor.yml YAML configuration. It requires internet connection.

Use "LocalAppVeyor [command] --help" for more information about a command.

β€’ build command

This is the main console command which allows one to execute all or a smaller set of jobs from the build matrix. --job command should be followed by a integer corresponding to job index as listed on jobs command

Usage: LocalAppVeyor build [options]

Options:
  -?|-h|--help  Show help information
  -d|--dir      Local repository directory where appveyor.yml sits. If not specified current directory is used
  -j|--job      Job to build. You can specify multiple jobs. Use 'jobs' command to list all jobs
  -s|--skip     Step to skip from the build pipeline. You can specify multiple steps.

β€’ jobs command

Lists all available jobs on the specified appveyor YAML configuration file build matrix.

Usage: LocalAppVeyor jobs [options]

Options:
  -?|-h|--help  Show help information
  -d|--dir      Local repository directory where appveyor.yml sits. If not specified current directory is used

β€’ lint command

Validates appveyor.yml YAML configuration. It requires an active internet connection as it uses AppVeyor web API for a real and up to date validation.

Usage: LocalAppVeyor lint [options]

Options:
  -?|-h|--help  Show help information
  -t|--token    AppVeyor account API token. If not specified it tries to get it from LOCALAPPVEYOR_API_TOKEN environment variable. You can find it here: https://ci.appveyor.com/api-token
  -d|--dir      Local repository directory where appveyor.yml sits. If not specified current directory is used

Supported build steps

Due to LocalAppVeyor's nature only a subset of AppVeyor build steps are supported. Some of them might get some support later in time, after consideration, but others most likely won't ever be part of the build pipeline.

βœ… Fully supported   πŸ”΅ Partially supported   πŸ”΄ Not yet supported

Step \ Option Support Notes
version βœ… {build} placeholder is replaced by 0
environment βœ… As for the standard AppVeyor variables these are the ones supported: APPVEYOR, CI, APPVEYOR_BUILD_FOLDER, APPVEYOR_BUILD_NUMBER, APPVEYOR_BUILD_VERSION, PLATFORM and CONFIGURATION
configuration βœ…
platform βœ…
os βœ… Relatively undocumented option but it exists apparently. It's usually a single value so it serves nothing other than to build the matrix job name.
init βœ…
clone_folder βœ… Tries first to clone to specified clone_folder, if any; otherwise it creates a random directory in user's temp folder. From this step on all scripts will be executed as the clone folder being the working directory.
matrix βœ…
install βœ…
assembly_info βœ…
before_build βœ…
build βœ…
build_script βœ…
after_build βœ…
before_test πŸ”΄
test πŸ”΄
test_script πŸ”΅ It will always execute if it exists, no matter if other tests options are specified.
after_test πŸ”΄
on_success βœ…
on_failure βœ…
on_finish βœ