badge-matrix
badge-matrix copied to clipboard
More advanced badges for projects using Travis or Sauce Labs
badge-matrix
More advanced badges for your projects using Travis or Sauce Labs.
See it in action over at the script-atomic-onload project.
Contents
- Badges
- Web Service
- Endpoints
/browsers/sauce/:user/size/:source/:path/travis/:user/:repo/travis/:user/:repo/sauce/:sauceUser
- Endpoints
- Deployment
- Heroku
- Anywhere else
Badges
File size for any file on GitHub or npm
Slice your Travis build matrix by environment
Browser support matrix from Sauce Labs
Beautiful and customizable!
Using something other than Sauce Labs? Just construct a URL with results from your browser tests.
-
browsers?firefox=20,26&iexplore=!8,-9,10
Web Service
Deployed at: https://badges.herokuapp.com/
You may also run your own instance using this package. See the Deployment section.
Endpoints
/browsers
Render browser matrix badge based on support specified in the query
parameters, for cases where your testing is done with a service other than
Sauce Labs (otherwise use the /sauce endpoint), or you don’t have CI and
just want to show your intended support.
Query parameters
-
android,firefox,googlechrome,iexplore,ipad,iphone,microsoftedge,opera,safariA comma-separated list of version numbers that were tested for the given browser, e.g.
firefox=20,26.Prefix a version number to indicate status:
+or no prefix: Passed.-: Failed.!: Error.
-
logos,labels,versionDivider,styleSame as the
/sauce/:userendpoint below.
/sauce/:user
Render browser support matrix badge for the Sauce Labs account at :user.
Query parameters
-
buildBuild number, it should match the
buildstring of one or more jobs. By default, try to find the most recent build. The build can be from any CI service, not just Travis.Sauce Labs’ API doesn’t allow filtering by build, so finding the jobs for a build can be a bit of a hassle:
- If the requested build is not in the first 500 results returned by the
API, then you should specify
fromandtoto limit the query window to the time span of the build. - If no
fromis given, then stop fetching more jobs from the API when a different build number is encountered.
Jobs with a
nullvalue forbuildare never included. - If the requested build is not in the first 500 results returned by the
API, then you should specify
-
nameName filter, it should match a whitespace separated substring in the
nameof one or more jobs. Only jobs matching the filter will be included in the result. -
tagTag filter, it should match a string in the
tagsarray of one or more jobs. Only jobs matching the filter will be included in the result. -
fromStart time (Unix epoch) of the window in which to find jobs. Passed along to the Sauce Labs API.
-
toEnd time (Unix epoch) of the window in which to find jobs. Passed along to the Sauce Labs API.
-
skipNumber of initial jobs to skip. Passed along to the Sauce Labs API.
-
sourceData source from which to render results, defaults to
svg.- api: Fetch results from the Sauce Labs API. This allows you to specify any of the above query parameters for filtering jobs.
- svg: Fetch Sauce Labs’ own browser matrix SVG widget and transform it
into our slimmer, beautified version. If you aren’t using any of the
options above, and just want the same results as their own widget would
render, use this. If you try specifying any of the options above, the
server will automatically change
sourcetoapi. This is probably much faster than talking to the API, but it’s a bit more fragile since their SVG output could change.
-
logosHow to render browser logos, defaults to inside.
- inside or true: Show logos in the label part of the badge.
- none or false: Don’t show logos.
-
labelsHow to render browser labels, defaults to shortName.
- shortName or true: Short names, e.g. "Chrome", "FF", "IE".
- name: Medium names, e.g. "Chrome", "Firefox", "Internet Explorer".
- longName: Long names, e.g. "Google Chrome", "Mozilla Firefox", "Microsoft Internet Explorer".
- sauceName: Browser identifiers used by Sauce Labs, e.g. "googlechrome", "firefox", "iexplore".
- none or false: Don’t show labels.
-
versionDividerHow to render the divider between browser version numbers, defaults to none.
- none or false: Don’t show a divider.
- line or true: Show a subtle beveled line between version numbers.
-
styleBadge style, defaults to flat. Styles match shields.io.
- flat: Round and smooth.
- flat-square: Square and flat.
/size/:source/:path
Render a file size badge for any file on GitHub or npm.
:sourcecan begithubornpm.:pathcan be any validraw.githubusercontent.comorunpkg.compath (when:sourceisgithubornpm, respectively).
Query parameters
-
gzipWhether to show the gzip-compressed size, defaults to false.
- true: Show compressed size.
- false: Show uncompressed size.
-
labelCustom badge label, by default it will be "size" or "size (gzip)".
-
colorColor name or value to pass along to shields.io, defaults to brightgreen. Note that the default may change to blue in the future, as is somewhat conventional for purely informational, non-qualitative badges like this one.
-
styleStyle to pass along to shields.io.
/travis/:user/:repo
Render build status badge for the Travis project at :user/:repo, counting
only build jobs that match the given env filter.
The default endpoint used to communicate with the Travis API is determined by
the server’s TRAVIS_ENDPOINT environment variable. You can force the public
api.travis-ci.com or api.travis-ci.org endpoints by beginning the URL with
/travis.com or /travis.org, respectively.
Query parameters
-
branchGit branch, defaults to master.
-
envEnvironment filter, it should match a
VAR=valueline in theenvsection of your build matrix. All jobs in the build matching the filter will be aggregated into one final status, similar to how Travis determines an overall build status. If no filter is given, all jobs in the build are included (even if they are Allowed Failures). -
labelText label to render on the left side of the badge, defaults to the repo name.
-
styleStyle to pass along to shields.io.
/travis/:user/:repo/sauce/:sauceUser
Render browser support matrix badge for the Travis project at :user/:repo,
getting Sauce Labs results from :sauceUser (defaults to :user).
You can also use the /sauce/:user endpoint, but this way ensures that we
only consider Sauce Labs jobs that match up with the latest Travis build
number for the given branch, and also makes the correct jobs easier to find
since Travis provides the time span of the build.
The default endpoint used to communicate with the Travis API is determined by
the server’s TRAVIS_ENDPOINT environment variable. You can force the public
api.travis-ci.com or api.travis-ci.org endpoints by beginning the URL with
/travis.com or /travis.org, respectively.
Query parameters
-
branchGit branch of the Travis build, defaults to master.
-
name,tag,logos,labels,versionDivider,styleSame as the
/sauce/:userendpoint above.
Deployment
If you want to run your own instance of badge-matrix, clone this repo.
Heroku
- Create a Heroku app.
npm run add-fontwill copyVerdana.ttffrom wherever it is on your system.npm run deploywill build the sources and deploy to Heroku.
Anywhere else
npm run buildwill build the sources.npm run add-fontwill copyVerdana.ttffrom wherever it is on your system.npm startwill start the server.