Help us understand the problem. What is going on with this article?

CircleCI2.0でPHPCPDを動かしたらエラーで中断される問題

More than 1 year has passed since last update.

はじめに

PHPプロジェクトのCIをJenkinsからCircleCI(2.0)に乗り換えました。マネージドサービス最高!
その際に、Jenkins時代に動かしていたPHP CodeSniffer(PHPCS)やPHP Mess Detector(PHPMD)を動かしたのですが、PHP Copy/Paste Detector(PHPCPD)がExit code: 1を返してくるため、ビルドが失敗になってしまったのを解決しました。

ビルドエラーの図。Exit code: 1(右上)
builderror.PNG

結論

コマンドに || true を追加

.circleci/config.yml
- run:
  name: Run PHP-CPD
  working_directory: src
  command: ./vendor/bin/phpcpd app --log-pmd=/output/phpcpd.result.xml || true

成功の図
success.PNG

経緯

はじめに、PHPMDに存在する --ignore-violations-on-exitオプションが使えるだろうと思い調べたところ、公式GitHubのIssueが見つかりました。
Option to exit with a zero code even if any violations are found. #148

質問者
CIで不便だからphpmdの--ignore-violations-on-exitみたいなやつ追加してくれないか
回答
役に立つとはおもわない

と、オプションによる解決はできませんでしたが、会話の中で出てきた「これで解決できるよ」という回答に救われたのでした。

shell
$ phpcpd ... || true 

その他参考にしたページ

Identifying Exit Codes and their meanings
https://support.circleci.com/hc/en-us/articles/360002341673-Identifying-Exit-Codes-and-their-meanings

kaneko_tomo
スーパーエンジニアです!focus on LAMP Application / PHP, Laravel, MySQL/MariaDB and AWS.
https://www.e2info.co.jp/
e2info
イーツー・インフォはITと人の力でお客様の課題を、ベストな解決策でいい明日へ導くITのプロフェッショナル集団です
https://www.e2info.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away