Coder Social home page Coder Social logo

dustinmoris / ci-buildstats Goto Github PK

View Code? Open in Web Editor NEW
171.0 171.0 25.0 664 KB

Little widget to display AppVeyor, TravisCI, CircleCI, GitHub Actions or Azure Pipelines build history charts and other SVG badges.

Home Page: https://buildstats.info

License: GNU General Public License v2.0

F# 98.77% Dockerfile 0.45% CSS 0.78%
appveyor badge buildstats chart circleci fsharp myget-badge nuget-badge svg-widget travis-ci widget

ci-buildstats's Introduction

Hi there ๐Ÿ‘‹

  • ๐Ÿ˜€ My name is Dustin...
  • โŒจ๏ธ I code in C#, F# and Go
  • ๐Ÿ‘Œ A little bit of JavaScript and frontend languages too
  • ๐Ÿš€ I maintain a few OSS projects which you can see below...
  • ๐Ÿ’ป I also love blogging on โžก๏ธ dusted.codes โฌ…๏ธ
  • โ˜• I'm massively addicted to coffee
  • ๐Ÿฎ And stopped eating meat in 2๏ธโƒฃ0๏ธโƒฃ1๏ธโƒฃ8๏ธโƒฃ
  • ๐Ÿ  But I still eat the occasional fish
  • ๐Ÿ… My Chinese star sign is tiger ๐Ÿฏ
  • ๐ŸŒ And I love our beautiful planet and wish we'd treat it better
  • ๐Ÿ’บ This was a list of completely random stuff, just like this seat
  • ๐Ÿ“ซ You can reach me via my blog

Currently building:

Msgdrop banner

Msgdrop - Test Email, Webhooks and 2FA!

Msgdrop is a RESTful API built for efficient Email, Webhook, and two-factor authentication (2FA/MFA) testing.

Things you can do:

  • Disposable email addresses from an API
  • Accessing an inbox through an API
  • Webhook URLs for testing
  • Enrol and generate 2FA codes from an API

Msgdrop is designed to be a simple, fast, and reliable one-stop solution for automation testing disjointed user journeys in an innovative way.

Some of the web stuff I build:

ci-buildstats's People

Contributors

cleemullins avatar dustinmoris avatar fabioh avatar levithomason avatar martincostello avatar vilinski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ci-buildstats's Issues

NuGet badge: package not found

Hi,
I am trying to insert badge into README with following syntax
NuGet Badge.

And it seems like buildstats cannot found my package.

Support Graphs For Specific Branches

I've been experimenting with the gadget on a number of existing builds with AppVeyor and Travis CI, and it appears that builds from all branches are considered, including builds related to Pull Requests.

Would it be possible to add a query string parameter (or a route parameter) that allows the branch to be specified, for example:

https://ci-buildstats.azurewebsites.net/{buildSystem}/chart/{account}/{project}/{branch}

Similar badge providers have the same functionality.

NuGet badge does not seem to support packages using SemVer 2.0.0

I tried a badge for my package: NuGet Badge

At the time of writing, the current version is 2.0.1 (as of an hour ago), with 2.0.0 a month old.
However, the badge reports v1.1.3.

This may be because versions 2.0.0 and up use SemVer 2.0.0 and have build metadata included in the full name. The full version id for v2.0.0 is 2.0.0+20200322.182103.397 and that of v2.0.1 is 2.0.1+20200417.165623.692.

Code Coverage Over Time?

Hi Dustin - You don't have any samples of using this to capture code coverage values over time using Azure DevOps, by chance, do you?

TravisCI canceled jobs display as red

Would it be possible to show them as grey instead? I noticed some of the other parsers have a cancelled status, but TravisCI does not (See here). I tried changing it myself, but I don't see a cancelled status in the API callback, which is perhaps the real issue. However, the ruby gem somehow returns a cancelled status and I can't understand yet where that's coming from. I know Travis has an "old" API and a "new" API, so perhaps that's part of the issue.

Azure redirect?

I started using the project very early on so had a lot of projects using the Azure URL instead of the custom buildstats.info URL and they all recently stopped working as it looks like the hosting provider has changed.

I've fixed my URLs now, but maybe it would be worth setting up a free Azure instance that 302s to the custom domain?

Specifiy custom label

Would be great to be able to specify a custom label.
Instead of just showing nuget we could show the package name for instance.

Support for Enterprise MyGet tenants?

We're using an Enterprise MyGet tenent for publishing our daily builds.

Within that tenant, we've got feeds, such as our daily build feed.

I would love to be able to use your tooling to have links to these packages. The code in PackageServices.fs looks like it needs a MyGet Enterprise module with a slightly different API - as it would need to take slightly different parameters as the DNS name differs between tenants.

I would be happy to personally donate $20 or $50 to have this working. I don't think I have time to submit a PR... (my life is busy in bot-land!)

Add support to filter by specific workflows for GitHub Actions

When filtering by a branch you get the results of all workflows, however we only really want to see the one workflow we have for CI. Our other workflows like packaging and linting take much less time, run at a different cadence, and aren't as important to us from a graph perspective. With those included, what happens is we have tall spikes mixed with short spikes, and is included in values like "average time".

Travis-CI build times confusing

I've started using the graph on tlslite-ng but the graph for Travis-CI build times is quite confusing:

Build history

From what I can tell, the time used for the graph is the wall clock time it took Travis to execute the job.
Problem is that I have multiple repositories and if there are builds in parallel, not all 5 runners are available for this particular project, causing the real time execution to take longer.

Causing builds like #766 to take 31m28s while the total time was 1 h 24 min 27 sec and average time for individual jobs was about 3m.

If we compare it to #767 which supposedly took 7m36s, while the total time was 1 h 27 min 7 sec and average time of the job didn't change much โ€“ being around 3m.

Or the #772 which took 19m19s, but 1 h 26 min 52 sec total, with average around 3m still.

From development point of view, it's good to know if the build times are not increasing too fast (as that could be a performance regression), and for that, average build time would be most useful (as it wouldn't be affected much by addition or removal of environments), but it looks like even the switch to "total time" would be better as that is far less variable than the wall clock time of the jobs.

Would it possible to add a switch that would use either average job time or total build time for the graph?

Add Support for Azure DevOps Stages

Azure Pipelines has the new concept of Stages when defining a yaml only build and deployment. It also has a matrix, so you can run the build on Linux, Mac and Windows. Here is an example repo and build:

https://github.com/RehanSaeed/Schema.NET
https://dev.azure.com/schema-net/Schema.NET/_build?definitionId=1&_a=summary

Here is the URL I'm trying to use with buildstats.info:

https://buildstats.info/azurepipelines/chart/RehanSaeed/schema-net/1

I think it needs a way to determine the stage and matrix name like Azure DevOps does (although they combine the two concepts together and call it 'Scope'):

image

These are the options in the Scope dropdown:

image

It allows me to create badges for the overall pipeline or the individual matrices (Linux, Mac, Windows) for a particular stage (Build or Deploy in my case).

Also note that even Azure Pipelines badge is not yet working. It shows unknown but I've raised a bug with them about that.

Travis build history chart not rendered - cache issue?

I've set up a new project in Travis CI yesterday, but the chart consistently states there no builds available when there are:

I setup the project as private in GitHub initially while I got things set up before making it public, and I'm wondering whether something has cached something from when it was private that means that it's not getting the now-public status?

cache.Set(key, tld) |> ignore

Support travis-ci.com

New repositories/accounts created with Travis CI may now be created at travis-ci.com instead of travis-ci.org as part of Travis' infrastructure migration.

As the API URL is hard-coded at present, it is not possible to generate charts for builds in travis-ci.com.

let url = sprintf "https://api.travis-ci.org/repos/%s/%s/builds%s" account project additionalQuery

Two possible approaches to support this could be either:

  1. Adding a query-string parameter to specify that the .com version should be used (?v=2 ?).
  2. Adding a new provider (travisci2 ?).

More Power!

You may need a bit more horse power on your build / badge server. We're pretty consistently seeing timeouts across the board. Would you recommend we run our own server?

image

Consider Fixed Width badges

As the download counts of packages get wider, it causes overall width to change. This makes tables of these look jagged.

Consider a "Fixed width" or a "Padded Width" or "Normalize To" as an option.

image

An easy answer may simply be parameters for width for 2 two variable fields:

downloadCountWidth=500px
versionWidth=300px

The downloadCountWidth would let me deal with packages that have low (or high) counts.
The versionWidth would let me deal with the version labels like "-preview", "-daily", and so on.

For example, something like:
[![BotBuilder Badge](https://buildstats.info/myget/botbuilder/botbuilder-v4-dotnet-daily/Microsoft.Bot.Builder.AI.LUIS?includePreReleases=true&downloadCountWidth=500px&versionWidth=300px)](https://botbuilder.myget.org/feed/botbuilder-v4-dotnet-daily/package/nuget/Microsoft.Bot.Builder.AI.LUIS)

Travis CI non-master default branch

It seems that my build history stopped working when I changed my default branch from master to main. Specifying no branch goes to master, though I can't tell if it's a history from travis-ci.com or .org. When I specify main, no builds are found. I assume this is because it's listed as the default branch.

https://buildstats.info/travisci/chart/davidkassa/dvc-rofr-stats?includeBuildsFromPullRequest=false&branch=main
https://buildstats.info/travisci/chart/davidkassa/dvc-rofr-stats?includeBuildsFromPullRequest=false

Prerelease NuGet packages included by default

The documentation suggests that prerelease versions for the NuGet badge are opt-in, but the service does not appear to be behaving in this way. Is this a regression from the rewrite into F#?

Expected behaviour

URL Image
https://buildstats.info/nuget/JustEat.StatsD NuGet version
https://buildstats.info/nuget/JustEat.StatsD?includePreReleases=false NuGet version
https://buildstats.info/nuget/JustEat.StatsD?includePreReleases=true NuGet version

Actual behaviour

URL Image
https://buildstats.info/nuget/JustEat.StatsD NuGet version
https://buildstats.info/nuget/JustEat.StatsD?includePreReleases=false NuGet version
https://buildstats.info/nuget/JustEat.StatsD?includePreReleases=true NuGet version

Note: The expected behaviour badges use a different URL that that listed in the table next to them so that the image is rendered correctly for illustrating the issue.

NuGet: allow leaving off download stats

It is currently possible to set dwidth to 0, but that currently causes the badge to be rendered as two separate blocks instead of a single image: NuGet Badge (it looks like the "nuget" portion of the badge also takes cues about its width from dwidth).

Could that rendering be fixed so that it produces a "complete" looking badge?
Alternatively, would it be possible to add a parameter to indicate that only the latest package version is needed (i.e. leave off the download count)?

Nuget stats not updated

I noticed that since a couple of weeks the nuget stats are no longer updated. Take NUnit, for instance: now it has 66.11m downloads, insted the widget continues to shows 65.33m.

Suggestion: Use your own domain

I'd suggest using your own domain rather than the azurewebsites.net subdomain (ci-buildstats.azurewebsites.net), even if the domain just redirects to the azurewebsites one. Using an azurewebsites subdomain means all the image URLs will break if you ever move to a different host.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.