.circleci/config.yml
こんな感じのステップを追加してアップできました。
jobs:
build:
steps:
[.....省略]
- run:
name: Upgrade chrome
command: |
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt-get update
sudo apt-get --only-upgrade install google-chrome-stable=83.0.4103.116-1
きっかけ
システム自体はruby on railで、chrome driverの管理はwebdriversを使っています。ローカルのChromeは自動で上がっていくので、webdraiversをアップグレードしないと動かなくなり、あげたら、今度はCircleCIだけテストがコケるようになりました。
RunOverSSHでchromeのバージョンあげたらテスト通ったのでconfig.ymlに反映させました。
滅多にないけど、CircleCIだけコケると時間取られますね。と言っても今日は2時間弱でしたけど。それでもトータルで見るとCircleci的なものを使ったほうが圧倒的に時間の節約になりますが。
気がかりなところ
※この方法はうまくいきませんでした。下部の追記を呼んでください。
あまり自信ないですが、runに書いたことはビルドが起動するたびに実行されるますよね?なので、Chromeのバージョンがどんどん上がっていってしまいそうだと思い、バージョンを指定してみました。
sudo apt-get --only-upgrade install google-chrome-stable=83.0.4103.116-1
あげたい時はここを変えてやればいいかなと。ただ、想像ですが、
deb http://dl.google.com/linux/chrome/deb/ stable main
この辺をどうにかしないと最新のstableが更新された時に失敗しだしそうな予感はしますが・・・とりあえず、あまり時間かけたくなかったので一旦このまま行きます。何か知ってる方いましたらコメントお願いします。
バージョンを指定する時83.0.4103.116
とバージョンナンバーだけ指定すると、E: Version '83.0.4103.116' for 'google-chrome-stable' was not found
と怒られます。
存在する正確なバージョンナンバーを調べるコマンドは下記。多分次のアップグレードの時必要になるので備忘録にメモしておきます。
apt-cache policy google-chrome-stable
google-chrome-stable:
Installed: 83.0.4103.116-1
Candidate: 83.0.4103.116-1
Version table:
*** 83.0.4103.116-1 500
500 http://dl.google.com/linux/chrome/deb stable/main amd64 Packages
100 /var/lib/dpkg/status
2020/07/19追記
やはりバージョンが上がった瞬間にこけ出しました。
jobs:
build:
steps:
[.....省略]
- run:
name: Upgrade chrome
command: |
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt-get update
sudo apt-get --only-upgrade install google-chrome-stable
と普通?通りバージョン指定外せば通りますけど、これだと常に最新のChromeでテストすることになりそうですね。
まあ、ローカルもどんどん上がっていくんですけど、CircleCIにしてからローカルでテスト動かさなくなったので、全く関係のないところいじってる時にそこでこけ始めると非常に面倒かなと。あとwebdrivers
のバージョンがChromeのバージョンアップに追いつかない時もあったので、そういう時は数日間通すことが不可能になるんですよね・・・
何か方法ご存知でしたらご教示お願いします。