From 085386c38bedf4e99c2b8c496864098adbedcb41 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Sat, 1 May 2021 07:49:15 -0400 Subject: [PATCH] Update action.yml --- action.yml | 50 +++++++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/action.yml b/action.yml index 27747ff6034..f958de21679 100644 --- a/action.yml +++ b/action.yml @@ -86,32 +86,44 @@ runs: else ADDED_FILES=() - + COPIED_FILES=() + DELETED_FILES=() + MODIFIED_FILES=() + RENAMED_FILES=() + CHANGED_FILES=() + UNMERGED_FILES=() + UNKNOWN_FILES=() + ALL_CHANGED=() + ALL_MODIFIED_FILES=() + for path in ${INPUT_FILES} do - echo "Checking for file changes: \"${path}\"..." - MODIFIED_FILE=$(git diff --diff-filter=ACMUXTR --name-only | grep -E "(${path})" || true) + echo "Checking for file changes: \"${path}\"..." - if [[ -z $MODIFIED_FILE ]]; then - # Find unstaged changes - MODIFIED_FILE=$(git status --porcelain | awk '{ print $2 }' | grep -E "(${path})" || true) - fi + ADDED_FILES+=$(git diff --diff-filter=A --name-only "$HEAD_SHA" | grep -E "(${path})") + COPIED_FILES+=$(git diff --diff-filter=C --name-only "$HEAD_SHA" | grep -E "(${path})") + DELETED_FILES+=$(git diff --diff-filter=D --name-only "$HEAD_SHA" | grep -E "(${path})") + MODIFIED_FILES+=$(git diff --diff-filter=M --name-only "$HEAD_SHA" | grep -E "(${path})") + RENAMED_FILES+=$(git diff --diff-filter=R --name-only "$HEAD_SHA" | grep -E "(${path})") + CHANGED_FILES+=$(git diff --diff-filter=T --name-only "$HEAD_SHA" | grep -E "(${path})") + UNMERGED_FILES+=$(git diff --diff-filter=U --name-only "$HEAD_SHA" | grep -E "(${path})") + UNKNOWN_FILES+=$(git diff --diff-filter=X --name-only "$HEAD_SHA" | grep -E "(${path})") + ALL_CHANGED+=$(git diff --diff-filter='*ACDMRTUX' --name-only "$HEAD_SHA" | grep -E "(${path})") + ALL_MODIFIED_FILES+=$(git diff --diff-filter='ACM' --name-only "$HEAD_SHA" | grep -E "(${path})") - if [[ -n ${MODIFIED_FILE} ]]; then - echo "Found uncommited changes at: ${path}" - CHANGED_FILES+=("${path}") - fi done - if [[ -z ${CHANGED_FILES} ]]; then - echo "::set-output name=files_changed::false" - else - echo "::set-output name=files_changed::true" - echo "::set-output name=changed_files::${CHANGED_FILES}" - fi + echo "::set-output name=added_files::$ADDED" + echo "::set-output name=copied_files::$COPIED" + echo "::set-output name=deleted_files::$DELETED" + echo "::set-output name=modified_files::$MODIFIED" + echo "::set-output name=renamed_files::$RENAMED" + echo "::set-output name=changed_files::$CHANGED" + echo "::set-output name=unmerged_files::$UNMERGED" + echo "::set-output name=unknown_files::$UNKNOWN" + echo "::set-output name=all_changed_files::$ALL_CHANGED" + echo "::set-output name=all_modified_files::$ALL_MODIFIED_FILES" fi - - shell: bash branding: