Closed6
CircleCIの並列実行しているReviewdogを全体で1回だけ実行させたい
Reviewdog + ESLintでレビューをしてもらうようにしているが、
CircleCIで並列処理しているので、全体で1回実行させるようにしたい。
lint実行するファイルを並列化すれば?と思われるかもだが、
cacheを用意しているので、そこまで並列化するほどのものでもないのかなと思ってる
これを使うことでステップを実行するかしないか条件分岐できそう
以下のようなコード
jobs:
test:
steps:
- checkout
- when:
condition:
equal: [ *macos-executor, << parameters.os >> ]
steps:
- run: echo << parameters.node-version >>
- run: echo 0
定義済み環境変数をみる
CIRCLE_NODE_INDEX
つかえそう
変数 | タイプ | 値 |
---|---|---|
CIRCLE_NODE_INDEX | 整数 | (並列実行を有効化してジョブを実行する場合) 並列実行の現在のインデックスです。 0 から “CIRCLE_NODE_TOTAL - 1” までの値を取ります。 |
CIRCLE_NODE_TOTAL | 整数 | (並列実行を有効化してジョブを実行する場合) 並列実行の総数です。 設定ファイルの parallelism の値と等しくなります。 |
こんな感じかな
jobs:
test:
# Reviewdog
- when:
condition:
equal: [ 0, $CIRCLE_NODE_INDEX ]
steps:
- run:
name: Install ReviewDog
command: curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b ./bin
- restore_cache:
keys:
- eslint-{{ .Environment.CACHE_KEY }}-{{ .Branch }}
- run:
name: Run ReviewDog
command: yarn lint | ./bin/reviewdog -reporter=github-pr-review -f=eslint
- save_cache:
key: eslint-{{ .Environment.CACHE_KEY }}-{{ .Branch }}
paths:
- .eslintcache
あれ、でももともと並列実行していたけど、コメント重複したことなかったな
検証でファイル指定してたから重複したのかな
一旦クローズ
ためしてみたけど、分岐できてなかった...実行されず
このスクラップは2023/02/21にクローズされました