2022-04-08 09:43:01 +00:00
name : Changed Files
2022-04-08 09:41:00 +00:00
description : Get all Added, Copied, Modified, Deleted, Renamed, Type changed, Unmerged, Unknown files.
2021-03-05 02:36:52 +00:00
author : tj-actions
2021-10-21 16:00:00 +00:00
2021-03-05 02:36:52 +00:00
inputs :
2021-03-05 12:25:17 +00:00
separator :
2022-06-12 14:08:13 +00:00
description : "Split character for output strings"
2022-05-14 18:33:40 +00:00
required : false
2021-03-05 12:25:17 +00:00
default : " "
2022-05-25 21:47:58 +00:00
include_all_old_new_renamed_files :
2022-10-29 21:48:36 +00:00
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)."
2022-05-25 21:47:58 +00:00
required : false
2022-06-12 14:08:13 +00:00
default : "false"
2022-05-14 19:24:13 +00:00
old_new_separator :
2022-10-29 21:48:36 +00:00
description : "Split character for old and new filename pairs."
2022-05-14 18:33:40 +00:00
required : false
default : ","
2022-05-14 19:24:13 +00:00
old_new_files_separator :
2022-12-05 22:15:35 +00:00
description : "Split character for old and new renamed filename pairs."
2022-05-14 19:24:13 +00:00
required : false
default : " "
2021-07-17 15:46:59 +00:00
files_from_source_file :
2022-10-29 21:48:36 +00:00
description : "Source file(s) used to populate the `files` input."
2021-07-17 14:51:08 +00:00
required : false
default : ""
2021-04-30 16:04:23 +00:00
files :
2022-12-05 06:06:33 +00:00
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."
2021-04-30 16:04:23 +00:00
required : false
default : ""
2022-02-15 03:33:45 +00:00
files_separator :
2022-10-29 21:48:36 +00:00
description : "Separator used to split the `files` input"
2022-02-08 03:52:51 +00:00
default : "\n"
required : false
2022-02-15 03:33:45 +00:00
files_ignore :
2022-12-05 06:06:33 +00:00
description : "Ignore changes to these file(s) **NOTE:** Multiline file/directory patterns should not include quotes."
2022-02-15 03:33:45 +00:00
required : false
default : ""
files_ignore_separator :
2022-12-15 20:10:14 +00:00
description : "Separator used to split the `files_ignore` input"
2022-02-15 03:33:45 +00:00
default : "\n"
required : false
files_ignore_from_source_file :
2022-10-29 21:48:36 +00:00
description : "Source file(s) used to populate the `files_ignore` input"
2022-02-15 03:33:45 +00:00
required : false
default : ""
2021-07-14 20:57:17 +00:00
sha :
2022-10-29 21:48:36 +00:00
description : "Specify a different commit SHA used for comparing changes"
2022-11-06 04:16:38 +00:00
required : false
2021-07-14 20:57:17 +00:00
default : ${{ github.sha }}
2021-07-17 15:46:59 +00:00
base_sha :
2022-10-29 21:48:36 +00:00
description : "Specify a different base commit SHA used for comparing changes"
2021-07-17 15:46:59 +00:00
required : false
2022-08-21 02:23:21 +00:00
since :
2022-10-29 21:48:36 +00:00
description : "Get changed files for commits whose timestamp is older than the given time."
2022-08-21 02:23:21 +00:00
required : false
2022-09-07 15:43:10 +00:00
default : ""
2022-08-21 02:23:21 +00:00
until :
2022-10-29 21:48:36 +00:00
description : "Get changed files for commits whose timestamp is earlier than the given time."
2022-08-21 02:23:21 +00:00
required : false
2022-09-07 15:43:10 +00:00
default : ""
2021-08-28 01:53:03 +00:00
path :
2022-10-29 21:48:36 +00:00
description : "Specify a relative path under `$GITHUB_WORKSPACE` to locate the repository."
2021-08-28 01:53:03 +00:00
required : false
2022-06-12 14:08:13 +00:00
default : "."
2022-04-28 06:08:15 +00:00
quotepath :
2022-10-29 21:48:36 +00:00
description : "Use non ascii characters to match files and output the filenames completely verbatim by setting this to `false`"
2022-06-12 14:08:13 +00:00
default : "true"
2022-04-28 06:08:15 +00:00
required : false
2022-06-02 16:13:45 +00:00
diff_relative :
2022-12-05 06:06:33 +00:00
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."
2022-06-12 14:08:13 +00:00
required : false
dir_names :
default : "false"
2022-10-29 21:48:36 +00:00
description : "Output unique changed directories instead of filenames. **NOTE:** This returns `.` for changed files located in the root of the project."
2022-06-02 16:13:45 +00:00
required : false
2022-11-24 00:25:26 +00:00
dir_names_max_depth :
2022-11-24 04:37:16 +00:00
description : "Maximum depth of directories to output. e.g `test/test1/test2` with max depth of `2` returns `test/test1`."
2022-11-24 00:25:26 +00:00
required : false
2022-08-03 20:01:40 +00:00
json :
2022-10-29 21:48:36 +00:00
description : "Output list of changed files in a JSON formatted string which can be used for matrix jobs."
2022-08-03 20:01:40 +00:00
required : false
default : "false"
2022-11-03 12:31:50 +00:00
fetch_depth :
2022-11-16 18:46:53 +00:00
description : "Initial depth of the branch history fetched. **NOTE**: This can be adjusted to resolve errors with insufficient history."
2022-10-12 18:39:24 +00:00
required : false
2022-12-14 15:49:41 +00:00
default : "50"
2022-11-08 19:45:25 +00:00
max_fetch_depth :
description : "Maximum depth of the branch history fetched. **NOTE**: This can be adjusted to resolve errors with insufficient history."
required : false
2022-12-16 18:34:44 +00:00
default : "9000"
2022-11-07 02:50:53 +00:00
since_last_remote_commit :
2022-12-12 23:33:39 +00:00
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."
2022-11-07 02:50:53 +00:00
required : true
default : "false"
2021-03-05 12:25:17 +00:00
2021-03-05 03:43:17 +00:00
outputs :
added_files :
2022-10-29 21:48:36 +00:00
description : "Returns only files that are Added (A)."
2021-06-18 14:19:28 +00:00
value : ${{ steps.changed-files.outputs.added_files }}
2021-03-05 03:43:17 +00:00
copied_files :
2022-10-29 21:48:36 +00:00
description : "Returns only files that are Copied (C)."
2021-06-18 14:19:28 +00:00
value : ${{ steps.changed-files.outputs.copied_files }}
2021-03-05 03:43:17 +00:00
deleted_files :
2022-10-29 21:48:36 +00:00
description : "Returns only files that are Deleted (D)."
2021-06-18 14:19:28 +00:00
value : ${{ steps.changed-files.outputs.deleted_files }}
2021-03-05 03:43:17 +00:00
modified_files :
2022-10-29 21:48:36 +00:00
description : "Returns only files that are Modified (M)."
2021-06-18 14:19:28 +00:00
value : ${{ steps.changed-files.outputs.modified_files }}
2021-03-05 03:43:17 +00:00
renamed_files :
2022-10-29 21:48:36 +00:00
description : "Returns only files that are Renamed (R)."
2021-06-18 14:19:28 +00:00
value : ${{ steps.changed-files.outputs.renamed_files }}
2022-05-14 21:54:38 +00:00
all_old_new_renamed_files :
2022-10-29 21:48:36 +00:00
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)"
2022-05-14 21:54:38 +00:00
value : ${{ steps.changed-files.outputs.all_old_new_renamed_files }}
2021-06-18 23:28:02 +00:00
type_changed_files :
2022-10-29 21:48:36 +00:00
description : "Returns only files that have their file type changed (T)."
2021-06-18 23:28:02 +00:00
value : ${{ steps.changed-files.outputs.type_changed_files }}
2021-03-05 03:43:17 +00:00
unmerged_files :
2022-10-29 21:48:36 +00:00
description : "Returns only files that are Unmerged (U)."
2021-06-18 14:19:28 +00:00
value : ${{ steps.changed-files.outputs.unmerged_files }}
2021-03-05 03:43:17 +00:00
unknown_files :
2022-10-29 21:48:36 +00:00
description : "Returns only files that are Unknown (X)."
2021-06-18 14:19:28 +00:00
value : ${{ steps.changed-files.outputs.unknown_files }}
2021-09-04 13:42:11 +00:00
all_changed_and_modified_files :
2022-10-29 21:48:36 +00:00
description : "Returns all changed and modified files i.e. *a combination of (ACMRDTUX)*"
2021-09-04 13:42:11 +00:00
value : ${{ steps.changed-files.outputs.all_changed_and_modified_files }}
2021-12-14 05:21:49 +00:00
all_changed_files :
2022-10-29 21:48:36 +00:00
description : "Returns all changed files i.e. *a combination of all added, copied, modified and renamed files (ACMR)*"
2021-12-14 05:21:49 +00:00
value : ${{ steps.changed-files.outputs.all_changed_files }}
2021-05-01 17:32:09 +00:00
any_changed :
2022-10-29 21:48:36 +00:00
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)*."
2021-06-18 14:19:28 +00:00
value : ${{ steps.changed-files.outputs.any_changed }}
2021-07-17 19:13:26 +00:00
only_changed :
2022-10-29 21:48:36 +00:00
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)*."
2021-07-17 19:13:26 +00:00
value : ${{ steps.changed-files.outputs.only_changed }}
other_changed_files :
2022-10-29 21:48:36 +00:00
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)*."
2021-07-17 19:13:26 +00:00
value : ${{ steps.changed-files.outputs.other_changed_files }}
2021-12-14 07:01:31 +00:00
all_modified_files :
2022-10-29 21:48:36 +00:00
description : "Returns all changed files i.e. *a combination of all added, copied, modified, renamed and deleted files (ACMRD)*."
2021-12-14 07:01:31 +00:00
value : ${{ steps.changed-files.outputs.all_modified_files }}
any_modified :
2022-10-29 21:48:36 +00:00
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)*."
2021-12-14 07:01:31 +00:00
value : ${{ steps.changed-files.outputs.any_modified }}
only_modified :
2022-10-29 21:48:36 +00:00
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)."
2021-12-14 07:01:31 +00:00
value : ${{ steps.changed-files.outputs.only_modified }}
other_modified_files :
2022-10-29 21:48:36 +00:00
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)*"
2021-12-14 07:01:31 +00:00
value : ${{ steps.changed-files.outputs.other_modified_files }}
2021-09-05 12:22:47 +00:00
any_deleted :
2022-10-29 21:48:36 +00:00
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)"
2021-09-05 12:22:47 +00:00
value : ${{ steps.changed-files.outputs.any_deleted }}
only_deleted :
2022-10-29 21:48:36 +00:00
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)"
2021-09-05 12:22:47 +00:00
value : ${{ steps.changed-files.outputs.only_deleted }}
other_deleted_files :
2022-10-29 21:48:36 +00:00
description : "Returns all other deleted files not listed in the files input i.e. *a combination of all deleted files (D)*"
2021-09-05 12:22:47 +00:00
value : ${{ steps.changed-files.outputs.other_deleted_files }}
2021-03-05 02:36:52 +00:00
runs :
2022-06-12 14:08:13 +00:00
using : "composite"
2021-06-18 14:19:28 +00:00
steps :
2022-02-14 23:28:12 +00:00
- run : |
2022-02-17 08:00:58 +00:00
# "Calculating the previous and current SHA..."
2022-02-14 23:28:12 +00:00
bash $GITHUB_ACTION_PATH/diff-sha.sh
id : changed-files-diff-sha
shell : bash
env :
GITHUB_SERVER_URL : ${{ github.server_url }}
GITHUB_REPOSITORY : ${{ github.repository }}
2022-11-04 21:55:29 +00:00
GITHUB_REF : ${{ github.ref }}
2022-02-14 23:28:12 +00:00
GITHUB_BASE_REF : ${{ github.base_ref }}
2022-02-17 07:35:49 +00:00
GITHUB_HEAD_REF : ${{ github.head_ref }}
2022-05-30 00:32:23 +00:00
GITHUB_WORKSPACE : ${{ github.workspace }}
2022-12-08 19:32:51 +00:00
GITHUB_EVENT_HEAD_REPO_FORK : ${{ github.event.pull_request.head.repo.fork }}
2022-10-12 18:39:24 +00:00
GITHUB_EVENT_PULL_REQUEST_BASE_SHA : ${{ github.event.pull_request.base.sha }}
2022-12-08 19:43:50 +00:00
GITHUB_EVENT_PULL_REQUEST_HEAD_SHA : ${{ github.event.pull_request.head.sha }}
2022-12-13 20:24:35 +00:00
GITHUB_EVENT_PULL_REQUEST_COMMITS : ${{ github.event.pull_request.commits }}
2022-09-25 01:08:58 +00:00
GITHUB_EVENT_BEFORE : ${{ github.event.before }}
2022-10-12 18:39:24 +00:00
GITHUB_EVENT_FORCED : ${{ github.event.forced }}
2022-12-05 21:30:14 +00:00
GITHUB_REFNAME : ${{ github.ref_name }}
2022-02-14 23:28:12 +00:00
# INPUT_<VARIABLE_NAME> is not available in Composite run steps
2022-09-24 06:34:19 +00:00
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#example-specifying-inputs
2022-10-14 18:59:47 +00:00
INPUT_SHA : ${{ inputs.sha }}
INPUT_BASE_SHA : ${{ inputs.base_sha }}
INPUT_SINCE : ${{ inputs.since }}
INPUT_UNTIL : ${{ inputs.until }}
2022-02-14 23:28:12 +00:00
INPUT_PATH : ${{ inputs.path }}
2022-11-03 12:31:50 +00:00
INPUT_FETCH_DEPTH : ${{ inputs.fetch_depth }}
2022-11-08 19:45:25 +00:00
INPUT_MAX_FETCH_DEPTH : ${{ inputs.max_fetch_depth }}
2022-11-07 02:50:53 +00:00
INPUT_SINCE_LAST_REMOTE_COMMIT : ${{ inputs.since_last_remote_commit }}
2022-01-05 02:38:03 +00:00
- name : Glob match
2022-11-08 17:26:37 +00:00
uses : tj-actions/glob@v16
2022-01-05 02:38:03 +00:00
id : glob
with :
2022-02-01 08:34:33 +00:00
files : ${{ inputs.files }}
2022-02-15 03:33:45 +00:00
files-separator : ${{ inputs.files_separator }}
excluded-files : ${{ inputs.files_ignore }}
excluded-files-separator : ${{ inputs.files_ignore_separator }}
2022-02-01 08:34:33 +00:00
files-from-source-file : ${{ inputs.files_from_source_file }}
2022-02-15 03:33:45 +00:00
excluded-files-from-source-file : ${{ inputs.files_ignore_from_source_file}}
2022-09-25 00:12:07 +00:00
escape-paths : true
2022-02-14 23:28:12 +00:00
working-directory : ${{ inputs.path }}
base-sha : ${{ steps.changed-files-diff-sha.outputs.previous_sha }}
sha : ${{ steps.changed-files-diff-sha.outputs.current_sha }}
2022-03-29 15:00:10 +00:00
include-deleted-files : true
2022-01-26 04:10:53 +00:00
separator : "|"
2021-06-18 14:19:28 +00:00
- run : |
2022-09-25 00:30:52 +00:00
bash $GITHUB_ACTION_PATH/get-changed-paths.sh
2021-06-18 14:19:28 +00:00
id : changed-files
shell : bash
env :
2022-05-30 00:32:23 +00:00
GITHUB_WORKSPACE : ${{ github.workspace }}
2022-10-20 19:19:57 +00:00
GITHUB_BASE_REF : ${{ github.base_ref }}
2022-12-10 06:51:25 +00:00
GITHUB_EVENT_HEAD_REPO_FORK : ${{ github.event.pull_request.head.repo.fork }}
2021-06-18 14:19:28 +00:00
# INPUT_<VARIABLE_NAME> is not available in Composite run steps
2022-09-04 23:21:34 +00:00
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#example-specifying-inputs
2022-03-14 05:01:27 +00:00
INPUT_FILES_PATTERN_FILE : ${{ steps.glob.outputs.paths-output-file }}
2021-06-18 14:19:28 +00:00
INPUT_SEPARATOR : ${{ inputs.separator }}
2021-08-28 01:53:03 +00:00
INPUT_PATH : ${{ inputs.path }}
2022-02-14 23:28:12 +00:00
INPUT_PREVIOUS_SHA : ${{ steps.changed-files-diff-sha.outputs.previous_sha }}
INPUT_CURRENT_SHA : ${{ steps.changed-files-diff-sha.outputs.current_sha }}
INPUT_TARGET_BRANCH : ${{ steps.changed-files-diff-sha.outputs.target_branch }}
INPUT_CURRENT_BRANCH : ${{ steps.changed-files-diff-sha.outputs.current_branch }}
2022-04-28 06:08:15 +00:00
INPUT_QUOTEPATH : ${{ inputs.quotepath }}
2022-05-25 21:47:58 +00:00
INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES : ${{ inputs.include_all_old_new_renamed_files }}
2022-05-14 19:24:13 +00:00
INPUT_OLD_NEW_SEPARATOR : ${{ inputs.old_new_separator }}
2022-05-14 18:33:40 +00:00
INPUT_OLD_NEW_FILES_SEPARATOR : ${{ inputs.old_new_files_separator }}
2022-06-02 16:13:45 +00:00
INPUT_DIFF_RELATIVE : ${{ inputs.diff_relative }}
2022-06-12 14:08:13 +00:00
INPUT_DIR_NAMES : ${{ inputs.dir_names }}
2022-11-24 00:25:26 +00:00
INPUT_DIR_NAMES_MAX_DEPTH : ${{ inputs.dir_names_max_depth }}
2022-08-03 20:01:40 +00:00
INPUT_JSON : ${{ inputs.json }}
2022-09-25 00:35:01 +00:00
INPUT_HAS_CUSTOM_PATTERNS : ${{ steps.glob.outputs.has-custom-patterns }}
2021-03-05 10:58:42 +00:00
2021-03-05 02:36:52 +00:00
branding :
2021-04-23 10:55:01 +00:00
icon : file-text
2021-03-05 02:36:52 +00:00
color : white