Travis CIを利用してNPMのパッケージのリリースしていたのですが、突然ビルドに失敗し始めました。 対応するために右往左往したため、その内容をメモしておこうと思います。

Travis CIでのNPMパッケージのリリース

Travis CIを使用すると簡単にNPMパッケージをリリースできます。 リリースするための.travis.ymlの最小限の構成は、以下のようになります。

language: node_js
node_js:
  - "12.13"

deploy:
  provider: npm
  email: "YOUR_EMAIL_ADDRESS"
  api_key: $NPM_AUTH_TOKEN

$NPM_AUTH_TOKENは事前に環境変数として設定しています。

起こった問題

上記のような構成で普段NPMパッケージをリリースしていましたが、突然以下のようなエラーとなりビルドが失敗するようになりました。

Preparing deploy
NPM version: 6.13.4
missing api_key

failed to deploy

npmjs.comで使用しているAPIキーの問題かと思ったのですが、APIキーを再発行しても問題が解消しませんでした。 また、MFAの関係かとも思ったのですが、MFAはパブリッシュ時は無効に設定していました。

原因と解消方法

原因は、Travis CIのBuild Config Validationが有効になっていたからでした。 これは、.travis.ymlのビルド構成を検証してくれる機能のようですが、Beta版であるため執筆現在では不具合があるようです。

現在所有しているすべてのNPMパッケージのプロジェクトでこの機能が有効になっていたため、Beta機能なのにデフォルトオプトイン状態であったと思われます。 Beta機能であれば、ユーザー側からオプトインさせてほしい。。。

この機能を無効にするには、プロジェクトのページからSettings > Beta Featuresの項目に行き、Enable build config validationのトグルをクリックすれば無効にできます。

Travis CIのプロジェクト設定ページのEnable Build Config Validationの設定

これで無事にNPMパッケージをリリースできるようになりました。