diff --git a/test/action.yml b/test/action.yml index b7c51dd1..59d87ef0 100644 --- a/test/action.yml +++ b/test/action.yml @@ -1,82 +1,174 @@ -name: Changed files -description: Get all changed files for push and pull request events. +name: Changed Files +description: Get all Added, Copied, Modified, Deleted, Renamed, Type changed, Unmerged, Unknown files. author: tj-actions + inputs: - token: - description: 'Github token or Repo Scoped Personal Access Token' - required: true - default: ${{ github.token }} separator: - description: 'Split character for array output' - required: true - default: "|" + description: "Split character for output strings" + required: false + default: " " + include_all_old_new_renamed_files: + description: "Include `all_old_new_renamed_files` output. Note this can generate a large output See: [#501](https://github.com/tj-actions/changed-files/issues/501)." + required: false + default: "false" + old_new_separator: + description: "Split character for old and new filename pairs." + required: false + default: "," + old_new_files_separator: + description: "Split character for old and new renamed filename pairs." + required: false + default: " " + files_from_source_file: + description: "Source file(s) used to populate the `files` input." + required: false + default: "" files: - description: 'Check for changes using only this list of files (Defaults to the entire repo)' + description: "File and directory patterns to detect changes using only these list of file(s) (Defaults to the entire repo) **NOTE:** Multiline file/directory patterns should not include quotes." required: false - default: | - README.md - README.md + default: "" + files_separator: + description: "Separator used to split the `files` input" + default: "\n" + required: false + files_ignore: + description: "Ignore changes to these file(s) **NOTE:** Multiline file/directory patterns should not include quotes." + required: false + default: "" + files_ignore_separator: + description: "Separator used to split the `files_ignore` input" + default: "\n" + required: false + files_ignore_from_source_file: + description: "Source file(s) used to populate the `files_ignore` input" + required: false + default: "" sha: - description: 'Specify a current commit SHA used for comparing changes' - required: true - default: ${{ github.sha }} + description: "Specify a different commit SHA used for comparing changes" + required: false base_sha: - description: 'Specify a base commit SHA used for comparing changes' + description: "Specify a different base commit SHA used for comparing changes" required: false + since: + description: "Get changed files for commits whose timestamp is older than the given time." + required: false + default: "" + until: + description: "Get changed files for commits whose timestamp is earlier than the given time." + required: false + default: "" path: - description: 'Specify a relative path under $GITHUB_WORKSPACE to locate the repository' + description: "Specify a relative path under `$GITHUB_WORKSPACE` to locate the repository." required: false - path_separator: - description: 'Path separator' + default: "." + quotepath: + description: "Use non ascii characters to match files and output the filenames completely verbatim by setting this to `false`" + default: "true" + required: false + diff_relative: + description: "Exclude changes outside the current directory and show path names relative to it. **NOTE:** This requires you to specify the top level directory via the `path` input." + required: false + dir_names: + default: "false" + description: "Output unique changed directories instead of filenames. **NOTE:** This returns `.` for changed files located in the root of the project." + required: false + dir_names_max_depth: + description: "Maximum depth of directories to output. e.g `test/test1/test2` with max depth of `2` returns `test/test1`." + required: false + json: + description: "Output list of changed files in a JSON formatted string which can be used for matrix jobs." + required: false + default: "false" + json_raw_format: + description: "Output list of changed files in a raw format which means that the output will not be surrounded by quotes and special characters will not be escaped." + required: false + default: "false" + fetch_depth: + description: "Depth of additional branch history fetched. **NOTE**: This can be adjusted to resolve errors with insufficient history." + required: false + default: "50" + since_last_remote_commit: + description: "Use the last commit on the remote branch as the `base_sha`. Defaults to the last non merge commit on the target branch for pull request events and the previous remote commit of the current branch for push events." + required: true + default: "false" + write_output_files: + description: "Write outputs to files in the `.github/outputs` folder by default." + required: false + default: "false" + output_dir: + description: "Directory to store output files." + required: false + default: ".github/outputs" + match_directories: + description: "Indicates whether to include match directories" + default: "true" required: false - default: "\n" outputs: added_files: - description: List of added files. - value: ${{ steps.test.outputs.added_files }} + description: "Returns only files that are Added (A)." + value: ${{ steps.changed-files.outputs.added_files }} copied_files: - description: List of copied files. - value: ${{ steps.test.outputs.copied_files }} + description: "Returns only files that are Copied (C)." + value: ${{ steps.changed-files.outputs.copied_files }} deleted_files: - description: List of deleted files. - value: ${{ steps.test.outputs.deleted_files }} + description: "Returns only files that are Deleted (D)." + value: ${{ steps.changed-files.outputs.deleted_files }} modified_files: - description: List of modified files. - value: ${{ steps.test.outputs.modified_files }} + description: "Returns only files that are Modified (M)." + value: ${{ steps.changed-files.outputs.modified_files }} renamed_files: - description: List of renamed files. - value: ${{ steps.test.outputs.renamed_files }} + description: "Returns only files that are Renamed (R)." + value: ${{ steps.changed-files.outputs.renamed_files }} + all_old_new_renamed_files: + description: "Returns only files that are Renamed and list their old and new names. **NOTE:** This requires setting `include_all_old_new_renamed_files` to `true` (R)" + value: ${{ steps.changed-files.outputs.all_old_new_renamed_files }} type_changed_files: - description: List of files that had type changes. - value: ${{ steps.test.outputs.type_changed_files }} + description: "Returns only files that have their file type changed (T)." + value: ${{ steps.changed-files.outputs.type_changed_files }} unmerged_files: - description: List of unmerged files. - value: ${{ steps.test.outputs.unmerged_files }} + description: "Returns only files that are Unmerged (U)." + value: ${{ steps.changed-files.outputs.unmerged_files }} unknown_files: - description: List of unknown files. - value: ${{ steps.test.outputs.unknown_files }} + description: "Returns only files that are Unknown (X)." + value: ${{ steps.changed-files.outputs.unknown_files }} all_changed_and_modified_files: - description: List of all changed files. - value: ${{ steps.test.outputs.all_changed_and_modified_files }} - all_modified_files: - description: List of all copied modified and added files. - value: ${{ steps.test.outputs.all_modified_files }} + description: "Returns all changed and modified files i.e. *a combination of (ACMRDTUX)*" + value: ${{ steps.changed-files.outputs.all_changed_and_modified_files }} + all_changed_files: + description: "Returns all changed files i.e. *a combination of all added, copied, modified and renamed files (ACMR)*" + value: ${{ steps.changed-files.outputs.all_changed_files }} any_changed: - description: Return true only when any files provided using the files input have changed. - value: ${{ steps.test.outputs.any_changed }} + description: "Returns `true` when any of the filenames provided using the `files` input has changed. If no `files` have been specified,an empty string `''` is returned. i.e. *using a combination of all added, copied, modified and renamed files (ACMR)*." + value: ${{ steps.changed-files.outputs.any_changed }} only_changed: - description: Return true when all files provided using the files input have changed. - value: ${{ steps.test.outputs.only_changed }} + description: "Returns `true` when only files provided using the `files` input has changed. If no `files` have been specified,an empty string `''` is returned. i.e. *using a combination of all added, copied, modified and renamed files (ACMR)*." + value: ${{ steps.changed-files.outputs.only_changed }} + other_changed_files: + description: "Returns all other changed files not listed in the files input i.e. *using a combination of all added, copied, modified and renamed files (ACMR)*." + value: ${{ steps.changed-files.outputs.other_changed_files }} + all_modified_files: + description: "Returns all changed files i.e. *a combination of all added, copied, modified, renamed and deleted files (ACMRD)*." + value: ${{ steps.changed-files.outputs.all_modified_files }} + any_modified: + description: "Returns `true` when any of the filenames provided using the `files` input has been modified. If no `files` have been specified,an empty string `''` is returned. i.e. *using a combination of all added, copied, modified, renamed, and deleted files (ACMRD)*." + value: ${{ steps.changed-files.outputs.any_modified }} + only_modified: + description: "Returns `true` when only files provided using the `files` input has been modified. If no `files` have been specified,an empty string `''` is returned.(ACMRD)." + value: ${{ steps.changed-files.outputs.only_modified }} + other_modified_files: + description: "Returns all other modified files not listed in the files input i.e. *a combination of all added, copied, modified, and deleted files (ACMRD)*" + value: ${{ steps.changed-files.outputs.other_modified_files }} any_deleted: - description: Return true only when any files provided using the files input have been deleted. - value: ${{ steps.test.outputs.any_deleted }} + description: "Returns `true` when any of the filenames provided using the `files` input has been deleted. If no `files` have been specified,an empty string `''` is returned. (D)" + value: ${{ steps.changed-files.outputs.any_deleted }} only_deleted: - description: Return true when all files provided using the files input have been deleted. - value: ${{ steps.test.outputs.only_deleted }} + description: "Returns `true` when only files provided using the `files` input has been deleted. If no `files` have been specified,an empty string `''` is returned. (D)" + value: ${{ steps.changed-files.outputs.only_deleted }} other_deleted_files: - description: Return list of deleted files not listed in the files input. - value: ${{ steps.test.outputs.other_deleted_files }} + description: "Returns all other deleted files not listed in the files input i.e. *a combination of all deleted files (D)*" + value: ${{ steps.changed-files.outputs.other_deleted_files }} + runs: using: 'composite'