-
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #896 from tubone24/cms/blog/2022-04-25-renovateの作る…
…prでartifact-update-problemが出た時の対処法 Create Blog “2022-04-25-renovateの作るprでartifact-update-problemが出た時の対処法”
- Loading branch information
Showing
1 changed file
with
167 additions
and
0 deletions.
There are no files selected for viewing
167 changes: 167 additions & 0 deletions
167
src/content/2022-04-25-renovateの作るprでartifact-update-problemが出た時の対処法.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,167 @@ | ||
--- | ||
slug: 2022/04/25/renovate-error | ||
title: Renovateの作るPRでArtifact update problemが出た時の対処法 | ||
date: 2022-04-25T14:54:39.263Z | ||
description: ライブラリを定期的にアップデートしてくれる優れもの、Renovateについて変なエラーが出てそれを直した際の直し方を共有。 | ||
tags: | ||
- Renovate | ||
headerImage: https://i.imgur.com/61v14dU.png | ||
templateKey: blog-post | ||
--- | ||
エラーは突然に。 | ||
|
||
## Table of Contents | ||
|
||
```toc | ||
``` | ||
|
||
## Renovate | ||
|
||
[Renovate](https://www.whitesourcesoftware.com/free-developer-tools/renovate/)とはプロジェクトが使っているライブラリの依存関係 (Dependency) の更新を自動化するツールです。 | ||
|
||
さまざまな言語に対応しており、もちろんnpmにも対応してます。 | ||
|
||
JavaScriptのライブラリ更新は特に追いかけるのが大変なのでこのブログでもRenovateを使ってライブラリの依存関係をできるだけ最新に保つようにしてます。 | ||
|
||
Renovateがライブラリを更新する際はpackage.jsonやpackage-loc.json、yarn.lockなどの依存グラフを保存しているファイルを直接変更の上、PRの形で更新依頼を作成します。 | ||
|
||
なので、CIでテストがきちんと回るようにしていたり、PRごとにデプロイが走るような形にしていれば、その成功を持って機械的にmerge(auto merge機能もあります)できます。便利ですね。 | ||
|
||
## Artifact update problem | ||
|
||
ところが、ある日を境にRenovateが作るPRが軒並みCI Checkに失敗する事象が発生しました。 | ||
|
||
Renovate artifactと呼ばれるcheckが失敗していてPRコメントには次のようなメッセージが出てました。 | ||
|
||
![renovate error](https://i.imgur.com/61v14dU.png) | ||
|
||
```bash:titile=renovateコメント | ||
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. | ||
♻ Renovate will retry this branch, including artifacts, only when one of the following happens: | ||
any of the package files in this branch needs updating, or | ||
the branch becomes conflicted, or | ||
you click the rebase/retry checkbox if found above, or | ||
you rename this PR's title to start with "rebase!" to trigger it manually | ||
The artifact failure details are included below: | ||
File name: package-lock.json | ||
npm notice | ||
npm notice New minor version of npm available! 8.1.2 -> 8.7.0 | ||
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v8.7.0> | ||
npm notice Run `npm install -g [email protected]` to update! | ||
npm notice | ||
npm ERR! code ERESOLVE | ||
npm ERR! ERESOLVE could not resolve | ||
npm ERR! | ||
npm ERR! While resolving: [email protected] | ||
npm ERR! Found: [email protected] | ||
npm ERR! node_modules/gatsby | ||
npm ERR! gatsby@"4.7.0" from the root project | ||
npm ERR! peer gatsby@"^2.0.0 || ^3.0.0 || ^4.0.0" from [email protected] | ||
npm ERR! node_modules/gatsby-plugin-algolia | ||
npm ERR! gatsby-plugin-algolia@"0.26.0" from the root project | ||
npm ERR! 27 more (gatsby-plugin-cdn-files, gatsby-plugin-feed, ...) | ||
npm ERR! | ||
npm ERR! Could not resolve dependency: | ||
npm ERR! peer gatsby@"^3.0.0" from [email protected] | ||
npm ERR! node_modules/gatsby-plugin-netlify | ||
npm ERR! gatsby-plugin-netlify@"3.14.0" from the root project | ||
npm ERR! | ||
npm ERR! Conflicting peer dependency: [email protected] | ||
npm ERR! node_modules/gatsby | ||
npm ERR! peer gatsby@"^3.0.0" from [email protected] | ||
npm ERR! node_modules/gatsby-plugin-netlify | ||
npm ERR! gatsby-plugin-netlify@"3.14.0" from the root project | ||
npm ERR! | ||
npm ERR! Fix the upstream dependency conflict, or retry | ||
npm ERR! this command with --force, or --legacy-peer-deps | ||
npm ERR! to accept an incorrect (and potentially broken) dependency resolution. | ||
npm ERR! | ||
npm ERR! See /tmp/renovate-cache/others/npm/eresolve-report.txt for a full report. | ||
npm ERR! A complete log of this run can be found in: | ||
npm ERR! /tmp/renovate-cache/others/npm/_logs/2022-04-24T15_15_32_316Z-debug-0.log | ||
``` | ||
|
||
こちらについていくつかIssuesとかを確認してみたのですが、これといって参考になるものもなくどうしようかなと思っていたところ、ちゃんとPRコメントで何が原因かエラーが出てました。 | ||
|
||
ちゃんとエラーを見る癖をつけたいものですね。 | ||
|
||
```bash:title=renovateError | ||
npm ERR! ERESOLVE could not resolve | ||
npm ERR! | ||
npm ERR! While resolving: [email protected] | ||
npm ERR! Found: [email protected] | ||
npm ERR! node_modules/gatsby | ||
npm ERR! gatsby@"4.7.0" from the root project | ||
npm ERR! peer gatsby@"^2.0.0 || ^3.0.0 || ^4.0.0" from [email protected] | ||
npm ERR! node_modules/gatsby-plugin-algolia | ||
npm ERR! gatsby-plugin-algolia@"0.26.0" from the root project | ||
npm ERR! 27 more (gatsby-plugin-cdn-files, gatsby-plugin-feed, ...) | ||
npm ERR! | ||
npm ERR! Could not resolve dependency: | ||
npm ERR! peer gatsby@"^3.0.0" from [email protected] | ||
npm ERR! node_modules/gatsby-plugin-netlify | ||
npm ERR! gatsby-plugin-netlify@"3.14.0" from the root project | ||
npm ERR! | ||
npm ERR! Conflicting peer dependency: [email protected] | ||
npm ERR! node_modules/gatsby | ||
npm ERR! peer gatsby@"^3.0.0" from [email protected] | ||
npm ERR! node_modules/gatsby-plugin-netlify | ||
npm ERR! gatsby-plugin-netlify@"3.14.0" from the root project | ||
npm ERR! | ||
npm ERR! Fix the upstream dependency conflict, or retry | ||
npm ERR! this command with --force, or --legacy-peer-deps | ||
npm ERR! to accept an incorrect (and potentially broken) dependency resolution. | ||
``` | ||
|
||
本ブログで使っているGatsbyのバージョンは4.7.0ですが、プラグインのgatsby-plugin-netlifyが3.14.0のバージョンで、それがgatsbyのv3系に依存しているので依存関係が解決できません!という何ともよくあるエラーでした。 | ||
|
||
にしても、こちらで組んでいるCIでは特にそんなエラーも出ずに完了しているところを見ると何が原因なんでしょうね...。偉い人教えてください。 | ||
|
||
あと、Renovate自体がgatsby-plugin-netlifyのバージョンアップのPRを作らなかったのも気になります...わからん。 | ||
|
||
エラーの原因がわかれば直すのは簡単です。package.jsonを編集して、gatsby-plugin-netlifyのバージョンをgatsby v.4.7.0に対応しているところまで手動で上げれば良いだけです。 | ||
|
||
その後npm installしてpackage-lock.jsonの依存グラフを直してあげれば完成です。 | ||
|
||
```json:title=package.json | ||
"dependencies": { | ||
"gatsby": "4.7.0", | ||
"gatsby-plugin-netlify": "4.3.0", | ||
} | ||
``` | ||
|
||
これでエラーは解消されました。 | ||
|
||
## 結論 | ||
|
||
なんか今回の記事はあっさりとしたものになってしまいましたが、Renovateもこういったエラーを吐くことがあるので、その際は出力されているコンソールログを見て手元で修正する必要がありそうですよ。という共有でした。 | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|