{"id":13429952,"url":"https://github.com/joaope/LocalAppVeyor","last_synced_at":"2025-03-16T04:31:28.011Z","repository":{"id":11076309,"uuid":"66413593","full_name":"joaope/LocalAppVeyor","owner":"joaope","description":"Run your AppVeyor builds, locally","archived":false,"fork":false,"pushed_at":"2024-10-11T04:28:24.000Z","size":486,"stargazers_count":123,"open_issues_count":14,"forks_count":18,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-14T22:42:07.882Z","etag":null,"topics":["appveyor","console","local-machine","yml"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joaope.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-24T00:16:05.000Z","updated_at":"2024-08-14T02:19:17.000Z","dependencies_parsed_at":"2023-12-01T05:21:44.460Z","dependency_job_id":"d0dc32c5-b9e3-4146-a4e1-a1edb01636a0","html_url":"https://github.com/joaope/LocalAppVeyor","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaope%2FLocalAppVeyor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaope%2FLocalAppVeyor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaope%2FLocalAppVeyor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaope%2FLocalAppVeyor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joaope","download_url":"https://codeload.github.com/joaope/LocalAppVeyor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221649943,"owners_count":16857670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appveyor","console","local-machine","yml"],"created_at":"2024-07-31T02:00:48.409Z","updated_at":"2024-10-27T08:30:34.558Z","avatar_url":"https://github.com/joaope.png","language":"C#","funding_links":[],"categories":["Frameworks, Libraries and Tools","框架, 库和工具","Build Automation"],"sub_categories":["Build Automation","自动部署"],"readme":".NET Core global tool which brings _**appveyor.yml**_ to the center of your build process by making possible to execute \nits build jobs, locally.\n\n| Windows | OS X / Linux  | Nuget  |\n| ------------- |:-------------:| ----- |\n|[![Build status](https://ci.appveyor.com/api/projects/status/hpi2lwuhrr2qbhfm?svg=true)](https://ci.appveyor.com/project/joaope/localappveyor)|[![Build Status](https://github.com/joaope/LocalAppVeyor/workflows/Build/badge.svg)](https://github.com/joaope/LocalAppVeyor/actions)|[![Nuget](https://img.shields.io/nuget/v/LocalAppVeyor.svg?maxAge=0)](https://www.nuget.org/packages/LocalAppVeyor/)|\n\n- [How it works](#how-it-works)\n- [Install](#install)\n- [Usage](#usage)\n  - [• `build` command](#%e2%80%a2-build-command)\n  - [• `jobs` command](#%e2%80%a2-jobs-command)\n  - [• `lint` command](#%e2%80%a2-lint-command)\n- [Supported build steps](#supported-build-steps)\n\n## How it works\nLocalAppVeyor tries to strictly follow same [build pipeline](https://www.appveyor.com/docs/build-configuration/#build-pipeline) \nas [AppVeyor CI](https://appveyor.com) itself.\n\n1. Grabs _appveyor.yml_'s build configuration from current (or specified) local repository folder.\n2. Reads [supported build steps](#supported-build-steps) from it.\n3. Executes [build pipeline](https://www.appveyor.com/docs/build-configuration/#build-pipeline) for each job (or specified ones)\non the [build matrix](https://www.appveyor.com/docs/build-configuration/#build-matrix).\n\nBuild engine tries to be the less intrusive as possible printing only what it comes from the build output.\n\n## Install\n\nInstall LocalAppVeyor as a [.NET Core CLI](https://docs.microsoft.com/en-us/dotnet/core/tools/?tabs=netcore2x) global tool using the following command:\n```console\ndotnet tool install -g localappveyor\n```\nYou have it now available on your command line:\n\n```console\nLocalAppVeyor --help\n```\n\n\u003csup\u003e*Requires [.NET Core 3.1](https://www.microsoft.com/net/download) or higher.*\u003c/sup\u003e\n\n## Usage\n```\nUsage: LocalAppVeyor [options] [command]\n\nOptions:\n  -?|-h|--help  Show help information\n  -v|--version  Show version information\n\nCommands:\n  build  Executes one or all build jobs on specified repository directory\n  jobs   List all build jobs available to execution.\n  lint   Validates appveyor.yml YAML configuration. It requires internet connection.\n\nUse \"LocalAppVeyor [command] --help\" for more information about a command.\n```\n\n### • `build` command\n\nThis is the main console command which allows one to execute all or a smaller set of jobs from the \n[build matrix](https://www.appveyor.com/docs/build-configuration/#build-matrix). `--job` command should be followed by a integer\ncorresponding to job index as listed on `jobs` command\n\n```\nUsage: LocalAppVeyor build [options]\n\nOptions:\n  -?|-h|--help  Show help information\n  -d|--dir      Local repository directory where appveyor.yml sits. If not specified current directory is used\n  -j|--job      Job to build. You can specify multiple jobs. Use 'jobs' command to list all jobs\n  -s|--skip     Step to skip from the build pipeline. You can specify multiple steps.\n```\n\n### • `jobs` command\n\nLists all available jobs on the specified appveyor YAML configuration file build matrix.\n\n```\nUsage: LocalAppVeyor jobs [options]\n\nOptions:\n  -?|-h|--help  Show help information\n  -d|--dir      Local repository directory where appveyor.yml sits. If not specified current directory is used\n```\n\n### • `lint` command\n\nValidates appveyor.yml YAML configuration. It requires an active internet connection as it uses AppVeyor web API for a real and up to date validation.\n\n```\nUsage: LocalAppVeyor lint [options]\n\nOptions:\n  -?|-h|--help  Show help information\n  -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\n  -d|--dir      Local repository directory where appveyor.yml sits. If not specified current directory is used\n```\n\n## Supported build steps\nDue to LocalAppVeyor's nature only a subset of [AppVeyor build steps](https://www.appveyor.com/docs/build-configuration/#build-pipeline)\nare supported. Some of them might get some support later in time, after consideration, but others most likely won't ever be part \nof the build pipeline.\n\n:white_check_mark: Fully supported \u0026emsp; :large_blue_circle: Partially supported \u0026emsp; :red_circle: Not yet supported\n\n| Step \\ Option  | Support           | Notes  |\n| ------------- |:-------------:| ----- |\n| version | :white_check_mark: | `{build}` placeholder is replaced by `0`\n| environment | :white_check_mark: | As for the [standard AppVeyor variables](https://www.appveyor.com/docs/environment-variables/) these are the ones supported: `APPVEYOR`, `CI`, `APPVEYOR_BUILD_FOLDER`, `APPVEYOR_BUILD_NUMBER`, `APPVEYOR_BUILD_VERSION`, `PLATFORM` and `CONFIGURATION` |\n| configuration | :white_check_mark: | |\n| platform | :white_check_mark: | |\n| os | :white_check_mark: | 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. |\n| init | :white_check_mark: | |\n| clone_folder | :white_check_mark: | 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. |\n| matrix | :white_check_mark: | |\n| install | :white_check_mark: | |\n| assembly_info | :white_check_mark: | |\n| before_build | :white_check_mark: | |\n| build | :white_check_mark: | |\n| build_script | :white_check_mark: | |\n| after_build | :white_check_mark: | |\n| before_test | :red_circle: | |\n| test | :red_circle: | |\n| test_script | :large_blue_circle: | It will always execute if it exists, no matter if other tests options are specified. |\n| after_test | :red_circle: | |\n| on_success | :white_check_mark: | |\n| on_failure | :white_check_mark: | |\n| on_finish | :white_check_mark: | |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoaope%2FLocalAppVeyor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoaope%2FLocalAppVeyor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoaope%2FLocalAppVeyor/lists"}