コンテンツにスキップ

tag を使って Pants のターゲットをフィルタする

Pants では、ターゲットにタグを付けることができる。タグを使うと、ターゲットをグループ化したり、ターゲットをフィルタリングできる。

カレントディレクトリ配下を CI 対象外にするためにskip-ciタグを付ける。

BUILD
1
2
3
4
5
__defaults__(
    all={
        "tags": ["skip-ci"],
    },
)

pants のコマンド実行時に--tag='-skip-ci'を指定することで、skip-ciタグを持つターゲットを除外できる。 +を指定すると、skip-ciタグを持つターゲットを対象に実行できる。

#!/bin/bash
pants --changed-since=origin/main --changed-dependents=transitive --tag='-skip-ci' test

and 条件

--tagオプションを繰り返してタグを指定することで、指定したタグを全て持つ(and 条件の)ターゲットをフィルタできる。

pants run --tag='tag1' --tag='tag2' --filter-target-type=python_source

タグでフィルターをかけた際に該当するファイルが一つに絞りこめていれば、そのファイルを指定して実行(run)することができる。 一つに絞り込めない場合はエラーになる。