
OSX VM は1つしか使えない制限があり、その制限により CI が FAIL することがあったので対策しました。
もともとの YAML はこんな感じでした(一部抜粋)
cirrus_osx_test_task:
only_if: *default-condition
auto_cancellation: true
osx_instance:
image: mojave-xcode-10.1
env:
matrix:
STDFLAG: -std=c++14
STDFLAG: -std=c++17
test_script: cd test && make -j4 showcxxversion default && make test

c++14 と c++17 コンパイルを並列していました。
単純にどちらかだけにしたら制限に引っかかることはなくなりますが、できれば減らしたくない条件です。
そこで、並列に実行するのではなく、直列で実行するようにしました。
修正した YAML はこんな感じです。
cirrus_osx_14_test_task: &osx_task
only_if: *default-condition
auto_cancellation: true
osx_instance:
image: mojave-xcode-10.1
env:
STDFLAG: -std=c++14
test_script: cd test && make -j4 showcxxversion default && make test
cirrus_osx_17_test_task:
<<: *osx_task
env:
STDFLAG: -std=c++17
depends_on:
- cirrus_osx_14_test
depends_on で依存を貼って、直列にしています。
YAML エイリアスが使えるため直列にしても記述量はさほど増えませんでした。メンテナンス性が問題になることはないでしょう。
ただし、実行時間が長くなるデメリットはあります。が、iutest の現状の開発ペースでは特に問題にならないのでこのようにしました。今回は、これで以上です。
では。














