diff --git a/README.md b/README.md index 800b699..fa96fa6 100644 --- a/README.md +++ b/README.md @@ -13,3 +13,24 @@ See [PkgTemplates.jl](https://github.com/invenia/PkgTemplates.jl/blob/master/tes with: file: lcov.info ``` + +One can also specify the directory or directories to use via the `directories` input (which defaults to `src`). E.g. +```yaml + + - uses: julia-actions/julia-processcoverage@v1 + with: + directories: src,examples + - uses: codecov/codecov-action@v1 + with: + file: lcov.info +``` +instructs the action to look for coverage information in both `src` and an `examples` folder. Likewise, use +```yaml + - uses: julia-actions/julia-processcoverage@v1 + with: + directories: path/to/subdir/package/src + - uses: codecov/codecov-action@v1 + with: + file: lcov.info +``` +to get coverage information from a package in a subdirectory of the repo. diff --git a/action.yml b/action.yml index dbc01e8..8bc0e9f 100644 --- a/action.yml +++ b/action.yml @@ -6,8 +6,16 @@ branding: icon: 'settings' color: 'gray-dark' +inputs: + directories: + description: 'Comma-separated list of directories to look for coverage information (e.g. `src,examples`)' + required: false + default: 'src' + runs: using: 'composite' steps: - run: julia --color=yes "$GITHUB_ACTION_PATH"/main.jl shell: bash + env: + INPUT_DIRECTORIES: ${{ inputs.directories }} diff --git a/main.jl b/main.jl index 1aaa0d2..10ce604 100644 --- a/main.jl +++ b/main.jl @@ -6,6 +6,11 @@ Pkg.add(PackageSpec(name="CoverageTools")) using CoverageTools -pf = process_folder() +directories = get(ENV, "INPUT_DIRECTORIES", "src") +dirs = filter!(!isempty, split(directories, ",")) +for dir in dirs + isdir(dir) || error("directory \"$dir\" not found!") +end -LCOV.writefile("lcov.info", pf) +pfs = mapreduce(process_folder, vcat, dirs) +LCOV.writefile("lcov.info", pfs)