解決しました
少し間が空いたので改めて色々と試してみた結果、プログラム側の問題でした(2021/2/13)。
# 某所のサーバが古く、標準 cipher だと接続できない
OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ciphers] = "DES-CBC3-SHA"
このコードが悪さをして codecov への接続に支障が出ていたため、これを以下のように修正し、結果が反映されるようになりました。
OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ciphers] = "ALL"
※ ALL は宜しくないですが、イントラネットで動かしているシステムなので許容することとしました。
また以下のコードは codecov の gem を使う場合は不要でした。
- script:
name: post coverage to codecov
code: |
bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN
はじめに
rails + wercker は数年やっていたのですが codecov を知らなかったので連携してみた(けど上手くいかない)、というだけの記事です。
環境
- Rails 5.2.4 系
- SimpleCov 0.18.5
- SimpleCov-Html 0.12.2
- CodeCov 0.1.17
注: Rails 以外の gem のバージョンは 2020/7 現在の最新だと思います。
設定
変更したファイルは 2つだけ。
- Gemfile
- test/test_helper.rb
# テスト環境 限定
group :test do
gem 'codecov', :require => false
(以下省略)
end
require 'simplecov'
SimpleCov.start 'rails'
if ENV['WERCKER'] == 'true'
require 'codecov'
SimpleCov.formatter = SimpleCov::Formatter::Codecov
end
あ、設定ファイルも対象か。
# cf. https://qiita.com/kent-hamaguchi/items/d4d3696a34350fd97991
codecov:
notify:
require_ci_to_pass: yes
coverage:
status:
project:
default:
target: 95%
threshold: 1%
ポイントだと思ったところ
適当にググって始めたのが良くなかったのですが、最初は wercker.yml
に以下のような記述だけ入れていました。
- script:
name: post coverage to codecov
code: |
bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN
が、上手く行かないのでドキュメントを見ていたら Supported Languages から Codecov Ruby Example へたどり着けました。
...が、上手くいかない
これで手元では動くのですが wercker で実際に回してみると SSL_CTX_set_cipher_list: no cipher match のエラーで止まってしまいます。何故?
_____ _
/ ____| | |
| | ___ __| | ___ ___ _____ __
| | / _ \ / _\` |/ _ \/ __/ _ \ \ / /
| |___| (_) | (_| | __/ (_| (_) \ V /
\_____\___/ \__,_|\___|\___\___/ \_/
Ruby-0.1.17
==> Wercker CI detected
x> No CI provider detected.
/upload/v1?token=secret&flags&service=wercker&branch=fix_1061&build=1594041715&slug=bsdmad%2Fmiyabi&commit=c3030c15474859c1fa0046e113fe979d10851864
-> Pinging Codecov
Error uploading coverage reports to Codecov. Sorry
SSL_CTX_set_cipher_list: no cipher match
使っている docker image が Docker Official image(ruby 2.6.6) なので、そっちの問題かな…
参考にした記事
上手くいってないのに参考にしたと書くと語弊がありそうですが、上手く行かないのはあくまで私の問題です。ご了承下さい。