Skip to content

Node.js-based script and module to query AppVeyor build status via the AppVeyor REST API.

License

Notifications You must be signed in to change notification settings

kevinoid/appveyor-status

Repository files navigation

AppVeyor Status

Build Status Build Status: Windows Coverage Dependency Status Supported Node Version Version on NPM

A command-line tool and library for querying the AppVeyor build status of a project using the AppVeyor REST API. It does for AppVeyor what travis-status does for Travis CI.

Introductory Example

Command-Line Use

$ npm install -g appveyor-status
$ appveyor-status
AppVeyor build status: success

JavaScript Use

const appveyorStatus = require('appveyor-status');
// See https://kevinoid.github.io/appveyor-status/api/module-appveyor-status.html#.AppveyorStatusOptions
const options = {
  // By AppVeyor project name
  // project: 'kevinoid/appveyor-status',
  // By repository path or URL
  // repo: 'https://github.com/kevinoid/appveyor-status.git',
  // By statusBadgeId (from badge URL)
  // statusBadgeId: '2fi78evfynm3wfog',
};
appveyorStatus.getStatus(options).then(function(status) {
  console.log('Status of project matching git repo in cwd: ' + status);
});

Features

  • Can query by AppVeyor project name, webhook ID, or repository URL or path.
  • Can detect the AppVeyor project from the repository in which it is run when project is not specified.
  • Can query using status badge API or project build API, minimizing latency and avoiding authentication in most cases.
  • Can query most recent build for project or specific branch.
  • Can compare build commit against a named or current commit.
  • Can wait for queued build to finish, with configurable timeout, before reporting status.

Installation

This package can be installed using npm, either globally or locally, by running:

npm install appveyor-status

Recipes

Check status before release

To check that the build for the current commit is successful before releasing it as a new version, add the following to package.json:

{
  "scripts": {
    "preversion": "appveyor-status -c -w"
  }
}

This will check that the AppVeyor status for the current repository is "success" (and will wait if queued) and that it matches the current commit. It will print the build status (which can be suppressed with -q) and exit with code 0 if "success" and a non-zero code otherwise, which will stop the version task.

API examples can be found in the test specifications.

API Docs

To use this module as a library, see the API Documentation.

Command-line usage information is available via --help:

appveyor-status --help

Contributing

Contributions are appreciated. Contributors agree to abide by the Contributor Covenant Code of Conduct. If this is your first time contributing to a Free and Open Source Software project, consider reading How to Contribute to Open Source in the Open Source Guides.

If the desired change is large, complex, backwards-incompatible, can have significantly differing implementations, or may not be in scope for this project, opening an issue before writing the code can avoid frustration and save a lot of time and effort.

License

This project is available under the terms of the MIT License. See the summary at TLDRLegal.