mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-13 05:20:00 -08:00
[CI] Run the coverage leg in the nightly
gcovr.cfg sets no fail_under, so the leg cannot fail a build, and nothing consumes coverage-report: it was an artifact produced on every pull request and read by no one. In the nightly it becomes a trend over the default branch instead, next to the legs a change being reviewed does not wait for. The leg itself is unchanged - same distro, version and variant, so the image name and ccache key still match the warm cache it built. It is marked allow-failure so a reporting leg cannot redden the nightly run that vcpkg-cache-import requires to conclude in success. The release-test comment loses its per-leg parenthetical: it claimed the sanitizer leg packages, which #7666 stopped being true, and the coverage leg is no longer in this job.
This commit is contained in:
parent
789f647cf1
commit
26805c8dc7
1 changed files with 25 additions and 17 deletions
42
.github/workflows/desktop-build.yml
vendored
42
.github/workflows/desktop-build.yml
vendored
|
|
@ -194,19 +194,6 @@ jobs:
|
||||||
package: skip
|
package: skip
|
||||||
sanitize: yes
|
sanitize: yes
|
||||||
|
|
||||||
- distro: Ubuntu
|
|
||||||
version: 26.04
|
|
||||||
variant: cover # separate image and ccache, same distro
|
|
||||||
|
|
||||||
# The one leg that runs instrumented for line coverage and publishes the report as
|
|
||||||
# a workflow artifact. It is a separate leg rather than a second flag on the
|
|
||||||
# sanitizer leg because the two instruments answer different questions: the
|
|
||||||
# sanitizer leg reports what the run did wrong, the coverage leg reports what the
|
|
||||||
# run never touched at all. Combining them would also slow both down. Packaging is
|
|
||||||
# skipped because the plain Ubuntu 26.04 leg publishes the DEB for this distro.
|
|
||||||
coverage: yes
|
|
||||||
package: skip
|
|
||||||
|
|
||||||
name: ${{ matrix.distro }} ${{ matrix.version }}${{ matrix.variant && format(' {0}', matrix.variant) || '' }}
|
name: ${{ matrix.distro }} ${{ matrix.version }}${{ matrix.variant && format(' {0}', matrix.variant) || '' }}
|
||||||
needs: configure
|
needs: configure
|
||||||
# The nightly legs live in build-linux-nightly below. A leg is in exactly one of the two
|
# The nightly legs live in build-linux-nightly below. A leg is in exactly one of the two
|
||||||
|
|
@ -296,9 +283,8 @@ jobs:
|
||||||
# gets packaged, so a packaging leg no longer pays for a full Debug compile it then
|
# gets packaged, so a packaging leg no longer pays for a full Debug compile it then
|
||||||
# throws away. macOS and Windows have always tested their release build.
|
# throws away. macOS and Windows have always tested their release build.
|
||||||
#
|
#
|
||||||
# Instrumented and debug-test legs reach this step only when they package (the sanitizer
|
# Instrumented and debug-test legs reach this step only when they also package; their
|
||||||
# leg currently does, the coverage leg does not); their suite already ran in the debug
|
# suite already ran in the debug step above, so the tests are not repeated here.
|
||||||
# step above, so the tests are not repeated here.
|
|
||||||
- name: "Build release, test and package"
|
- name: "Build release, test and package"
|
||||||
id: build
|
id: build
|
||||||
if: matrix.package != 'skip' || env.RUN_TESTS == 'true'
|
if: matrix.package != 'skip' || env.RUN_TESTS == 'true'
|
||||||
|
|
@ -461,9 +447,31 @@ jobs:
|
||||||
package: DEB
|
package: DEB
|
||||||
test: skip # Running tests on all distros is superfluous
|
test: skip # Running tests on all distros is superfluous
|
||||||
|
|
||||||
|
# The one leg that runs instrumented for line coverage and publishes the report as
|
||||||
|
# a workflow artifact. It stays a separate leg rather than a second flag on the
|
||||||
|
# sanitizer leg because the two instruments answer different questions: the
|
||||||
|
# sanitizer leg reports what the run did wrong, the coverage leg reports what the
|
||||||
|
# run never touched at all. Combining them would also slow both down.
|
||||||
|
#
|
||||||
|
# It moved here from build-linux: gcovr.cfg sets no fail_under, so the leg cannot
|
||||||
|
# fail a build, and nothing consumes the report per change, which made it an
|
||||||
|
# artifact nobody read on every pull request. On the default branch it becomes a
|
||||||
|
# trend instead. Image and ccache keys come from distro, version and variant, so
|
||||||
|
# they are unchanged and the warm cache that leg built still matches.
|
||||||
|
- distro: Ubuntu
|
||||||
|
version: 26.04
|
||||||
|
variant: cover # separate image and ccache, same distro
|
||||||
|
|
||||||
|
coverage: yes
|
||||||
|
package: skip
|
||||||
|
# A report must not redden the nightly run: vcpkg-cache-import only imports the
|
||||||
|
# archives of a run whose conclusion is success.
|
||||||
|
allow-failure: yes
|
||||||
|
|
||||||
name: ${{ matrix.distro }} ${{ matrix.version }}${{ matrix.variant && format(' {0}', matrix.variant) || '' }}
|
name: ${{ matrix.distro }} ${{ matrix.version }}${{ matrix.variant && format(' {0}', matrix.variant) || '' }}
|
||||||
needs: configure
|
needs: configure
|
||||||
# A nightly and a tag build cover the legs a pull request or a merge does not wait for.
|
# A nightly and a tag build cover the legs a pull request or a merge does not wait for:
|
||||||
|
# the previous release of each distro, and the one instrument that only reports.
|
||||||
if: github.event_name == 'schedule' || github.ref_type == 'tag'
|
if: github.event_name == 'schedule' || github.ref_type == 'tag'
|
||||||
runs-on: ubuntu-latest # https://github.com/actions/runner-images
|
runs-on: ubuntu-latest # https://github.com/actions/runner-images
|
||||||
continue-on-error: ${{ matrix.allow-failure == 'yes' }}
|
continue-on-error: ${{ matrix.allow-failure == 'yes' }}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue