Ruby 리포지토리의 GitHub Actions에서 Coveralls 사용
6197 단어 CoverallsGitHubActions루비
소개
Travis CI에서 GitHub Actions로 마이그레이션할 때 GitHub Actions에서 SimpleCov 결과를 Coveralls로 보내는 방법을 살펴보았습니다. simplecov-lcov를 사용하여 code coverage를 lcov 형식으로 출력하고 Coveralls로 보내는 느낌이었습니다.
SimpleCov 및 simplecov-lcov 설치
Gemfile에 다음 두 줄을 추가하여
bundle install
gem 'simplecov', '~> 0.21'
gem 'simplecov-lcov', '~> 0.8'
spec/spec_helper.rb
의 시작 부분에 다음을 추가합니다. Coveralls에 coverage를 보낼 때 중요한 것은 SimpleCov::Formatter::LcovFormatter
와 관련된 부분입니다.require 'simplecov'
require 'simplecov-lcov'
SimpleCov::Formatter::LcovFormatter.config do |config|
# Coverallsはデフォルトではcoverage/lcov.infoの結果を送信する
config.report_with_single_file = true
config.single_report_path = 'coverage/lcov.info'
end
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
SimpleCov::Formatter::HTMLFormatter,
# formatterにSimpleCov::Formatter::LcovFormatterを加える
SimpleCov::Formatter::LcovFormatter
])
SimpleCov.start
Coveralls GitHub Actions
htps : // 기주 b. 코 m / 마 r tp ぁ세 / 아 c 치 온 s / 코 ぇ 라 ls - 기 큐 브 아 c 치 온 에는 Coveralls의 GitHub Actions가 있습니다.
Use latent version
버튼을 누르면 표시되는 모달의 두 줄을 복사하여 Workflow의 yml에 추가합니다.Workflow 예
Code coverage를 Coveralls에 보내기 위해
.github/workflows/coverage.yml
라는 workflow 파일을 준비했습니다. 중요한 것은, 전절에서 카피한 마지막 - name: Coveralls GitHub Action
로부터의 부분입니다. github-token
는 필수 옵션이지만 ${{ secrets.GITHUB_TOKEN }}
로 해두면 OK입니다.name: coverage
on: [push, pull_request]
jobs:
coverage:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Set up Ruby 2.7
uses: actions/setup-ruby@v1
with:
ruby-version: '2.7'
- name: Build and test with Rake
run: |
gem install bundler
bundle install
bundle exec rake
- name: Coveralls GitHub Action
uses: coverallsapp/[email protected]
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
필요한지 조금 수수께끼이지만, 한 줄만의
.coveralls.yml
를 준비했습니다.service_name: github-ci
그리고는 이들을 commit하고 push하면 workflow가 움직이고, Coveralls에 결과가 보내집니다. 미리 Coveralls측에서 리포지토리의 연계를 ON으로 해 주세요.
결론
Coveralls의 GitHub Action의 example이, Node.js의 것이었기 때문에, Ruby는 대응하고 있지 않을까~라고 생각하고 있었습니다만, 제대로 조사하면 간단했습니다. Travis CI 시절에는 coveralls gem을 사용했습니다. coveralls gem에서는 SimpleCov의 버전에 잠시가 있기 때문에 이번과 같은 simplecov-lcov를 사용한 방법이 자유롭고 좋네요.
Reference
이 문제에 관하여(Ruby 리포지토리의 GitHub Actions에서 Coveralls 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yoshoku/items/f2296aa663230f71d883텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)