Travis CIでNPMパッケージが"missing api_key"のためビルドできない問題の解消
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のトグルをクリックすれば無効にできます。
これで無事にNPMパッケージをリリースできるようになりました。