glob 21.0.0
Install from the command line:
Learn more about npm packages
$ npm install @tj-actions/glob@21.0.0
Install via package.json:
"@tj-actions/glob": "21.0.0"
About this version
Search for files matching glob patterns with support for returning matching deleted git tracked files, omits files and directories specified in the projects .gitignore
, and excludes the .git
and node_modules
folders except explicitly specified.
[!WARNING]
- Ensure that subdirectory patterns are prefixed with
**/
as**.yml
only matches yml files in the top level directory and should be replaced with**/*.yml
.- All multi-line string patterns are specified without quotes. See: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet for more examples of filter patterns
...
steps:
- uses: actions/checkout@v2
- name: Glob match
uses: tj-actions/glob@v21
id: glob
with:
files: |
*.md
**/*.yaml
!action.yml
**/rebase.yml
- name: Show all matching files
run: |
echo "${{ steps.glob.outputs.paths }}"
# Outputs: .github/workflows/rebase.yml .github/workflows/sync-release-version.yml .github/workflows/test.yml...
- uses: tj-actions/glob@v21
id: glob
with:
# Specify a base ref used for comparing changes, when
# `include-deleted-files` is set to `true`
# Type: string
# Default: "${{ github.event.pull_request.base.ref }}"
base-ref: ''
# Specify a base commit SHA used for comparing changes,
# when `include-deleted-files` is set to `true`
# Type: string
base-sha: ''
# Specify a diff string `..` or `...` used for
# comparing changes, when `include-deleted-files` is set to `true`
# Type: string
diff: ''
# Escape special characters of filenames used in the `paths`
# output
# Type: boolean
# Default: "true"
escape-paths: ''
# Excluded file patterns (optionally include `!` before the file pattern or it would be prepended)
# Type: string
excluded-files: ''
# Source file to populate the `excluded-files` input
# Type: string
excluded-files-from-source-file: ''
# Separator used to split the `excluded-files-from-source-file` input
# Type: string
# Default: "\n"
excluded-files-from-source-file-separator: ''
# Separator used to split the `excluded-files` input
# Type: string
# Default: "\n"
excluded-files-separator: ''
# File patterns
# Type: string
files: ''
# Source file to populate the `files` input
# Type: string
files-from-source-file: ''
# Separator used to split the `files-from-source-file` input
# Type: string
# Default: "\n"
files-from-source-file-separator: ''
# Separator used to split the `files` input
# Type: string
# Default: "\n"
files-separator: ''
# Indicates whether to follow symbolic links
# Type: boolean
# Default: "true"
follow-symbolic-links: ''
# Specify a boolean indicating a PR from a fork
# is used for comparing changes, when `include-deleted-files` is set
# to `true`
# Type: string
# Default: "${{ github.event.pull_request.head.repo.fork }}"
head-repo-fork: ''
# Include all matching deleted files
# Type: boolean
# Default: "false"
include-deleted-files: ''
# Indicates whether to include matched directories
# Type: boolean
# Default: "true"
match-directories: ''
# Indicates whether to match files in `.gitignore`
# Type: boolean
# Default: "false"
match-gitignore-files: ''
# Separator used for the paths output.
# Type: string
# Default: " "
separator: ''
# Specify a current commit SHA used for comparing changes,
# when `include-deleted-files` is set to `true`
# Type: string
# Default: "${{ github.sha }}"
sha: ''
# Strip the `$GITHUB_WORKSPACE` from the `paths` output
# Type: boolean
# Default: "true"
strip-top-level-dir: ''
# Provide a path that is relative to `$GITHUB_WORKSPACE` for
# identifying the repository.
# Type: string
# Default: "."
working-directory: ''
OUTPUT | TYPE | DESCRIPTION |
---|---|---|
has-custom-patterns | string | Indicates whether at least one pattern was provided |
paths | string | List of filtered paths using the specified patterns and separator |
paths-output-file | string | List of filtered paths using the specified patterns and separator stored in a temporary file |
File and Directory patterns are evaluted using minimatch with the help of the @actions/glob package.
- dot
- nocomment
- noext
- nonegate: This is handled by the @actions/glob package.
- nocase: Enabled for windows
- nobrace: Ensures that brace or brace sets can be used.
The **
pattern in minimatch matches any number of directories and files recursively, but it must be followed by a directory separator (/
on Unix-like systems) to be effective. If you want to match all files with the .js
extension in a directory and its subdirectories, you should use the **/*.js
pattern as opposed to **.js
Patterns *
, ?
, [...]
, and **
(globstar) are supported.
With the following behaviours:
- File names that begin with
.
may be included in the results - Case insensitive on Windows
- Directory separators
/
and\
are both supported on Windows
Supports basic tilde expansion, for current user HOME replacement only.
Example:
-
~
may expand to /Users/johndoe -
~/foo
may expand to /Users/johndoe/foo
Patterns that begin with #
are treated as comments.
Leading !
changes the meaning of an include pattern to exclude.
Multiple leading !
flips the meaning.
Wrapping special characters in []
can be used to escape literal glob characters
in a file name. For example the literal file name hello[a-z]
can be escaped as hello[[]a-z]
.
On Linux/macOS \
is also treated as an escape character.
- Free software: MIT license
If you feel generous and want to show some extra appreciation:
This package was created with Cookiecutter using cookiecutter-action
Report bugs at https://github.com/tj-actions/glob/issues.
If you are reporting a bug, please include the following:
- Your operating system name and version.
- Any details about your workflow that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
Thanks goes to these wonderful people (emoji key):
Misha Kaletsky 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!