Closed6

CircleCIの並列実行しているReviewdogを全体で1回だけ実行させたい

N04hN04h

Reviewdog + ESLintでレビューをしてもらうようにしているが、
CircleCIで並列処理しているので、全体で1回実行させるようにしたい。

lint実行するファイルを並列化すれば?と思われるかもだが、
cacheを用意しているので、そこまで並列化するほどのものでもないのかなと思ってる

N04hN04h

定義済み環境変数をみる
https://circleci.com/docs/ja/variables/#built-in-environment-variables

CIRCLE_NODE_INDEXつかえそう

変数 タイプ
CIRCLE_NODE_INDEX 整数 (並列実行を有効化してジョブを実行する場合) 並列実行の現在のインデックスです。 0 から “CIRCLE_NODE_TOTAL - 1” までの値を取ります。
CIRCLE_NODE_TOTAL 整数 (並列実行を有効化してジョブを実行する場合) 並列実行の総数です。 設定ファイルの parallelism の値と等しくなります。
N04hN04h

こんな感じかな

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
N04hN04h

あれ、でももともと並列実行していたけど、コメント重複したことなかったな
検証でファイル指定してたから重複したのかな

一旦クローズ

N04hN04h

ためしてみたけど、分岐できてなかった...実行されず

このスクラップは2023/02/21にクローズされました