作業レポジトリ

d3d12がVisual Studioのみなので、travis捨ててappveyorだけあればいいやという動機で着手。

appveyor + codecov

version: 1.0.{build}

image:
- Visual Studio 2019

configuration:
- Debug
- Release

install:
- choco install opencppcoverage codecov
- set PATH=C:\Program Files\OpenCppCoverage;%PATH%

before_build:
- cmd:
    cmake -S . -B build -DBUILD_WITH_TEST=ON

build_script:
- cmake --build build --config %configuration%

for:
-
  matrix:
    only:
    - configuration: Debug
  after_build:
  - cd build
  - OpenCppCoverage.exe --sources src --sources tests --export_type cobertura:coverage.xml --modules "*.exe" --cover_children -- %configuration%/illuminate.exe -C %configuration% --output-on-failure
  - codecov -f coverage.xml --root %APPVEYOR_BUILD_FOLDER%

OpenCppCoverage.exe.exeが無いと-Cなんて無いよエラーが発生。

参考

appveyor + coverity scan

上のcodecovに加えて、Coverity Scanを実行。travisに合わせてcoverity_scanブランチへのpush時のみ、Coverity Scanを実行。

version: 1.0.{build}

environment:
  coverity_token:
    secure: b678Xt/k3QTlZPnJUI9IIuiWlG/Xbj/4RXJIHKf5Crg=
  coverity_email:
    secure: WrY/mxjEAqdbR41Nekols352OwgNL4ZhbsDOkuJdcTQ=

image:
- Visual Studio 2019

configuration:
- Debug
- Release

before_build:
- cmake -S . -B build -DBUILD_WITH_TEST=ON

build_script:
- cmake --build build --config %configuration%

for:
-
  branches:
    only:
      - coverity_scan
  configuration: Debug
  build_script:
  - cov-build --dir cov-int cmake --build build --config %configuration%
  - 7z a cov-int.zip cov-int
  - curl --form token=%coverity_token% --form email=%coverity_email% --form file=@cov-int.zip --form version="%APPVEYOR_BUILD_VERSION%" --form description="%APPVEYOR_BUILD_VERSION%" https://scan.coverity.com/builds?project=%APPVEYOR_REPO_NAME%
-
  matrix:
    only:
    - configuration: Debug
  install:
  - choco install opencppcoverage codecov
  - set PATH=C:\Program Files\OpenCppCoverage;%PATH%
  after_build:
  - cd build
  - OpenCppCoverage.exe --sources src --sources tests --export_type cobertura:coverage.xml --modules "*.exe" --cover_children -- %configuration%/illuminate.exe -C %configuration% --output-on-failure
  - codecov -f coverage.xml --root %APPVEYOR_BUILD_FOLDER%

IFをネストすると()が構文エラーを起こすらしいので、forで回避。

85% capture successに達してないので解析してもらえないけど、とりあえずCoverity Scanのサーバに投げるとこまで動いた。

参考