diff --git a/README.md b/README.md index 6176258..d6e35a1 100644 --- a/README.md +++ b/README.md @@ -14,30 +14,53 @@ A GitHub Action which helps enforce a minimum code coverage threshold. ## Inputs -### `path` +Very Good Coverage accepts the following configuration inputs: -**Optional** The path to the `lcov.info` file. +| Input name | Description | Default value | Optional | +| ------------ | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------ | -------- | +| path | The path to the lcov.info file. | `"./coverage/lcov.info"` | ✅ | +| min_coverage | The minimum coverage percentage allowed. | `100` | ✅ | +| exclude | List of paths to exclude from the coverage report, separated by an empty space. Supports [globs]() to describe file patterns. | `""` | ✅ | -**Default** `./coverage/lcov.info` - -### `min_coverage` +## Example usage -**Optional** The minimum coverage percentage allowed. +```yaml +uses: VeryGoodOpenSource/very_good_coverage@v2 +with: + path: './coverage/lcov.info' + min_coverage: 95 + exclude: '**/*_observer.dart **/change.dart' +``` -**Default** 100 +## FAQs -### `exclude` +#### How can I avoid Very Good Coverage reporting an empty or non-existent coverage file? -**Optional** List of paths to exclude from the coverage report, separated by an empty space. Supports `globs` to describe file patterns. +[Relevant issue](https://github.com/VeryGoodOpenSource/very_good_coverage/issues/167) -## Example usage +A failure for non-existent coverage file can be resolved by setting the path input to match the location of the already generated lcov file. ```yaml uses: VeryGoodOpenSource/very_good_coverage@v2 with: - path: './coverage/lcov.info' - min_coverage: 95 - exclude: '**/*_observer.dart **/change.dart' + path: 'my_project/coverage/lcov.info' +``` + +If your generated lcov file is empty this might be because you have no test files or your tests are not generating any coverage data. + +If you wish to always bypass these warnings, we recommend using a conditional statement in your workflow to avoid running the Very Good Coverage action when the lcov file is empty or non-existent. + +For example, if your non-existent or empty coverage file is meant to be located at `./coverage/lcov.info` you may do: + +```yaml +- name: Check for existing and non-empty coverage file + id: test_coverage_file + run: if [ -s "./coverage/lcov.info" ]; then echo "result=true" >> $GITHUB_OUTPUT ; else echo "result=false" >> $GITHUB_OUTPUT; fi +- name: Very Good Coverage + if: steps.test_coverage_file.outputs.result == 'true' + uses: VeryGoodOpenSource/very_good_coverage@v2 + with: + path: './coverage/lcov.info' ``` [ci_badge]: https://github.com/VeryGoodOpenSource/very_good_coverage/workflows/ci/badge.svg