Compare commits

..

6 Commits

Author SHA1 Message Date
09178ef7bf
Some Docu 2021-04-14 12:58:17 +02:00
71b4a02b05
more corrections 2021-04-14 12:42:11 +02:00
8d4f7c6ab3
typo 2021-04-14 12:23:41 +02:00
abd4aff55b
properly get default values for report_name
rename field to report_name
2021-04-14 12:10:17 +02:00
f6604dcfa9
name variable from github config 2021-04-14 11:47:19 +02:00
Miguel Savignano
0bc53bbf5c update README with github token instructions 2020-12-21 22:12:53 +01:00
5 changed files with 30 additions and 11 deletions

View File

@ -2,6 +2,9 @@
A GitHub Action that check minimum coverage percentage!
This action requires a Github token with `checks:write` scope to allow create the check run using the Github API v3.
But no need to generate any new token, you can use the Github action token (`${{ github.token }}`)
### Usage
#### Lcov
@ -12,7 +15,7 @@ A GitHub Action that check minimum coverage percentage!
type: lcov
result_path: coverage/example.lcov
min_coverage: 90
token: ${{secrets.GITHUB_TOKEN}}
token: ${{ github.token }}
```
#### [Simplecov](https://github.com/colszowka/simplecov)
@ -23,7 +26,19 @@ A GitHub Action that check minimum coverage percentage!
type: simplecov
result_path: coverage/.last_run.json
min_coverage: 90
token: ${{secrets.GITHUB_TOKEN}}
token: ${{ github.token }}
```
#### Report name
```yml
- uses: devmasx/coverage-check-action@v1.2.0
with:
type: lcov
result_path: coverage/example.lcov
min_coverage: 90
token: ${{ github.token }}
report_name: "My Github Action Check Name"
```
## Screenshots

View File

@ -15,6 +15,9 @@ inputs:
min_coverage:
description: "Minimum coverage"
default: "80"
report_name:
description: "Name of the github action check"
default: "Coverage"
result_path:
description: "Json with coverage result"
required: true

View File

@ -1,11 +1,10 @@
# frozen_string_literal: true
class GithubCheckRunService
CHECK_NAME = 'Coverage'
def initialize(report, github_data, report_adapter)
def initialize(report, github_data, report_name, report_adapter)
@report = report
@github_data = github_data
@report_name = report_name
@report_adapter = report_adapter
@client = GithubClient.new(@github_data[:token], user_agent: 'coverage-action')
end
@ -34,7 +33,7 @@ class GithubCheckRunService
def create_check_payload
{
name: CHECK_NAME,
name: @report_name,
head_sha: @github_data[:sha],
status: 'in_progress',
started_at: Time.now.iso8601
@ -43,13 +42,13 @@ class GithubCheckRunService
def update_check_payload
{
name: CHECK_NAME,
name: @report_name,
head_sha: @github_data[:sha],
status: 'completed',
completed_at: Time.now.iso8601,
conclusion: @conclusion,
output: {
title: "#{CHECK_NAME} #{@percent}%",
title: "#{@report_name} #{@percent}%",
summary: @summary,
annotations: @annotations
}

View File

@ -17,13 +17,14 @@ end
sha: ENV['GITHUB_SHA'],
token: ENV['INPUT_TOKEN'],
owner: ENV['GITHUB_REPOSITORY_OWNER'] || @event_json.dig('repository', 'owner', 'login'),
repo: ENV['GITHUB_REPOSITORY_NAME'] || @event_json.dig('repository', 'name')
repo: ENV['GITHUB_REPOSITORY_NAME'] || @event_json.dig('repository', 'name'),
}
@coverage_type = ENV['INPUT_TYPE']
@report_path = ENV['INPUT_RESULT_PATH']
@report_name = ENV['INPUT_REPORT_NAME']
@data = { min: ENV['INPUT_MIN_COVERAGE'] }
@report = CoverageReport.generate(@coverage_type, @report_path, @data)
GithubCheckRunService.new(@report, @github_data, ReportAdapter).run
GithubCheckRunService.new(@report, @github_data, @report_name, ReportAdapter).run

View File

@ -7,7 +7,8 @@ describe GithubCheckRunService do
{ 'lines' => { 'covered_percent' => 80, 'minumum_percent' => 80 } }
end
let(:github_data) { { sha: 'sha', token: 'token', owner: 'owner', repo: 'repository_name' } }
let(:service) { GithubCheckRunService.new(report, github_data, ReportAdapter) }
let(:report_name) { 'Coverage' }
let(:service) { GithubCheckRunService.new(report, github_data, report_name, ReportAdapter) }
it '#run' do
stub_request(:any, 'https://api.github.com/repos/owner/repository_name/check-runs/id')