appveyor / ci

AppVeyor community support repository
https://www.appveyor.com
344 stars 65 forks source link

Separate build status for each job in a build matrix #1805

Open chuckatkins opened 6 years ago

chuckatkins commented 6 years ago

Currently, the status reported to GitHub for a build is the combined pass/fail of all builds. It would be a great feature to have each configuration in the build matrix post a separate status so that instead of a single continuous-integration/appveyor/pr status, you would get separate statuses for ci/appveyor: vs2015 and ci/appveyor: vs2017, for example. This is a really useful feature available in CircleCI now where each independent "job" get's it's own status message.

preed commented 6 years ago

As discussed in this question/support ticket https://help.appveyor.com/discussions/questions/16443-status-badge-per-matrix-build, it sounds like this is the feature we're describing a desire for as well (with slightly different language).

chuckatkins commented 6 years ago

Yes, I believe they are one in the same. I used "job" in this context to reference circle CI, which is how they refer to the individual build matrix entries (at least in circle CI 2.0), each of which gets its own GitHub status entry.

IlyaFinkelshteyn commented 6 years ago

@chuckatkins can you point to some existing open source commit status to see how this look like?

chuckatkins commented 6 years ago

Certainly! An easy example to see this in is the ADIOS2 project (I'm one of the core developers). You can see from one of the currently open PRs: https://github.com/ornladios/ADIOS2/pull/382 we're using travis to run code format tests with clang-format, circle-ci for linux tests where we use docker containers to run two jobs, one for gcc 4.8 and another for gcc7 + openmpi, and then appveyor for vs2015 and vs2017 tests. You can see here how the two circle-ci builds show up as separate status entries for each while the appveyor builds only show up as a single combined status.

Unrelated, but if you're wondering what's up with the "cdash" status, we have one of our circle builds use curl to manually post an "always success" status message with a link to the CDash dashboard entries for the CI results. That way we can easily get to the CDash result page for the PR from the same place we get to the other CI results.

IlyaFinkelshteyn commented 6 years ago

Another comment from customer email: Not sure whether it's possible at all, but it would be neat if each job in the matrix (or, better yet, some to-be-defined groups of jobs) could be shown as separate checks in GitHub pull requests; e.g. in case of our project, it would be neat if the Windows builds would show up as one check and the Unix build would show up as another one. (This is a feature we currently have because we're using a different CI service for the Unix builds.)

IlyaFinkelshteyn commented 6 years ago

Related issue: https://github.com/appveyor/ci/issues/1960

spyoungtech commented 6 years ago

This has a lot of value for us.

We have a repo with multiple solution files e.g. src/aSolutionDir and src\anotherSolution. Following the advice here we do this via a build matrix.

However, we'd like a badge to report on the build status of each solution independently. To accomplish this, we have tried to configure multiple projects, which works. The consequence, however, is that every commit to the repr triggers builds for all* the projects, which is untenable.

Allowing status badges per job would alleviate this.

Alternatively (and somewhat unrelated to this issue) the ability to only run builds when changes to subdirectories are detected would also resolve our current frustrations. That way only relevant projects will build.

IlyaFinkelshteyn commented 6 years ago

@spyoungtech you resolve your current frustrations, you can use commit filtering with custom YAML file name or location for each project.

spyoungtech commented 6 years ago

@IlyaFinkelshteyn Thanks! This should work beautifully. Didn't notice the configuration was available in the UI because we had ignore appveyor.yml checked.

IlyaFinkelshteyn commented 6 years ago

@spyoungtech we introduce more and more concepts which are difficult to even expose in UI visually, so we recommend to use UI for initial configuration, but going forward export configuration to YAML and use it.

CatGirlsAreLife commented 6 years ago

After thinking about it I think it would be best to simply make it like: \<Badge urls base with / without branch>/\<system if not windows>/\<image name/job name>?svg=true&\<svg text changes as needed>

For the badges for readmes.

Also approximately how long can it take until we can test a preview of these features before it is released globally? @IlyaFinkelshteyn

IlyaFinkelshteyn commented 6 years ago

@CatGirlsAreLife We cannot make a specific promises but I believe it will be ready in new few months.

Swader commented 5 years ago

@IlyaFinkelshteyn it has been a few months, any progress you can share?

AraHaan commented 5 years ago

Interesting this would be good to have. I cant wait for appveyor osx build images either.

zufuliu commented 5 years ago

Any news?

chuckatkins commented 5 years ago

I expect we're likely to see a feature analagous to this in the transition to GitHub Checks. Travis and circle have both made the switch and they both show the individual build status inside the Checks tab.

funjoker commented 4 years ago

Is this still a thing?

limdor commented 4 years ago

What is the status here? Is there any plan that this will happen?

axunonb commented 3 years ago

shield.io seems support the requested feature on appveyor builds: /appveyor/job/build/:user/:repo/:job/:branch