CircleCIでテストを分割して並列実行する場合に以下のドキュメントに記載されているようなcircleci tests glob "foo/**/*"
のようなコマンドを実行すると思います。
このときに任意の複数のディレクトを対象にするのはcircleci tests glob {foo,bar}/**/*
のような形式で書けば大丈夫なのですが、
任意の複数のディレクトリを除外するやり方は公式には用意されておらずハマったのでメモ📝
rspecであればcircleci tests glob
を使っていなければ以下のrspecの--pattern
が使えるが、circleci glob test
の場合にはファイルパスが直接引数に渡される都合上厳しい。。。
circleci tests globで任意の複数のディレクトリを除外する方法
方法としては以下のような感じでsed
を使って-E
で渡した正規表現に合致した任意の行を削除するのが良さそうだった ✨
circleci tests glob | sed -E "sed -E "/(foo|bar)/d"