From 986dcdd05475172779ccab62712e532629985d25 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Tue, 1 Nov 2022 02:20:59 -0600 Subject: [PATCH 01/35] fix: including changed files from merge commits --- diff-sha.sh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/diff-sha.sh b/diff-sha.sh index f2ba2b87..188ce508 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -50,7 +50,7 @@ if [[ -n "$INPUT_UNTIL" ]]; then fi else if [[ -z $INPUT_SHA ]]; then - CURRENT_SHA=$(git rev-list -n 1 "HEAD" 2>&1) && exit_status=$? || exit_status=$? + CURRENT_SHA=$(git rev-list --no-merges -n 1 HEAD) && exit_status=$? || exit_status=$? else CURRENT_SHA=$INPUT_SHA; exit_status=$? fi @@ -104,10 +104,12 @@ if [[ -z $GITHUB_BASE_REF ]]; then exit 1 fi else - PREVIOUS_SHA="" - - if [[ "$GITHUB_EVENT_FORCED" == "false" || -z "$GITHUB_EVENT_FORCED" ]]; then - PREVIOUS_SHA=$GITHUB_EVENT_BEFORE + PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) + + if [[ -z "$PREVIOUS_SHA" ]]; then + if [[ "$GITHUB_EVENT_FORCED" == "false" || -z "$GITHUB_EVENT_FORCED" ]]; then + PREVIOUS_SHA=$GITHUB_EVENT_BEFORE + fi fi if [[ -z "$PREVIOUS_SHA" || "$PREVIOUS_SHA" == "0000000000000000000000000000000000000000" ]]; then @@ -155,7 +157,12 @@ else CURRENT_BRANCH=$GITHUB_HEAD_REF if [[ -z $INPUT_BASE_SHA ]]; then - PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA && exit_status=$? || exit_status=$? + PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) + + if [[ -z "$PREVIOUS_SHA" ]]; then + PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA && exit_status=$? || exit_status=$? + fi + echo "::debug::Previous SHA: $PREVIOUS_SHA" else PREVIOUS_SHA=$INPUT_BASE_SHA && exit_status=$? || exit_status=$? From d3cd1f406f3863db7e9a181f7e7977cb375650af Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Tue, 1 Nov 2022 02:21:57 -0600 Subject: [PATCH 02/35] Update diff-sha.sh --- diff-sha.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diff-sha.sh b/diff-sha.sh index 188ce508..844da6d7 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -50,7 +50,7 @@ if [[ -n "$INPUT_UNTIL" ]]; then fi else if [[ -z $INPUT_SHA ]]; then - CURRENT_SHA=$(git rev-list --no-merges -n 1 HEAD) && exit_status=$? || exit_status=$? + CURRENT_SHA=$(git rev-list --no-merges -n 1 HEAD 2>&1) && exit_status=$? || exit_status=$? else CURRENT_SHA=$INPUT_SHA; exit_status=$? fi From 57168941b24e1c4ddb5247c7fc7336abe7dfeb6f Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Tue, 1 Nov 2022 11:43:23 -0600 Subject: [PATCH 03/35] Update diff-sha.sh --- diff-sha.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diff-sha.sh b/diff-sha.sh index 844da6d7..0aca0909 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -104,7 +104,7 @@ if [[ -z $GITHUB_BASE_REF ]]; then exit 1 fi else - PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) + PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? if [[ -z "$PREVIOUS_SHA" ]]; then if [[ "$GITHUB_EVENT_FORCED" == "false" || -z "$GITHUB_EVENT_FORCED" ]]; then @@ -157,7 +157,7 @@ else CURRENT_BRANCH=$GITHUB_HEAD_REF if [[ -z $INPUT_BASE_SHA ]]; then - PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) + PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? if [[ -z "$PREVIOUS_SHA" ]]; then PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA && exit_status=$? || exit_status=$? From b9e70f78217009b41c74da3b384c65f4ba7747e5 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Wed, 2 Nov 2022 16:34:44 -0600 Subject: [PATCH 04/35] Update diff-sha.sh --- diff-sha.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diff-sha.sh b/diff-sha.sh index 54aa612d..f80c9a0b 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -85,7 +85,7 @@ function deepenShallowCloneToFindCommit() { exit 1 fi - git fetch --no-tags -u --progress --deepen="$depth" origin "$target_branch":"$target_branch" + git fetch --no-tags -u --progress --depth="$depth" origin "$target_branch":"$target_branch" done } From 40545148742e6c0d9e321a395f0b86e2f9be93e5 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 06:18:03 -0600 Subject: [PATCH 05/35] Update diff-sha.sh --- diff-sha.sh | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/diff-sha.sh b/diff-sha.sh index f80c9a0b..25c715d0 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -67,28 +67,6 @@ else echo "::debug::Current SHA: $CURRENT_SHA" fi -function deepenShallowCloneToFindCommit() { - local base_ref="$1" - local diff="$2" - local ref="$3" - local target_branch="$4" - local depth=20 - local max_depth=$INPUT_MAX_FETCH_DEPTH - - while ! git diff "$base_ref$diff$ref" &>/dev/null; do - echo "::debug::Unable to find merge-base in shallow clone. Increasing depth to $((depth * 2))..." - - depth=$((depth * 2)) - - if [[ $depth -gt $max_depth ]]; then - echo "::error::Unable to find merge-base in shallow clone. Please increase 'max_fetch_depth' to at least $((depth + 20))." - exit 1 - fi - - git fetch --no-tags -u --progress --depth="$depth" origin "$target_branch":"$target_branch" - done -} - if [[ -z $GITHUB_BASE_REF ]]; then echo "Running on a push event..." TARGET_BRANCH=${GITHUB_REF/refs\/heads\//} && exit_status=$? || exit_status=$? @@ -140,9 +118,6 @@ if [[ -z $GITHUB_BASE_REF ]]; then echo "::debug::Target branch $TARGET_BRANCH..." echo "::debug::Current branch $CURRENT_BRANCH..." - echo "::debug::Fetching previous commit SHA: $PREVIOUS_SHA" - deepenShallowCloneToFindCommit "$PREVIOUS_SHA" ".." "$CURRENT_SHA" "$TARGET_BRANCH" - echo "::debug::Verifying the previous commit SHA: $PREVIOUS_SHA" git rev-parse --quiet --verify "$PREVIOUS_SHA^{commit}" 1>/dev/null 2>&1 && exit_status=$? || exit_status=$? @@ -172,9 +147,6 @@ else echo "::debug::Target branch: $TARGET_BRANCH" echo "::debug::Current branch: $CURRENT_BRANCH" - echo "::debug::Fetching previous commit SHA: $PREVIOUS_SHA" - deepenShallowCloneToFindCommit "$PREVIOUS_SHA" "..." "$CURRENT_SHA" "$TARGET_BRANCH" - echo "::debug::Verifying the previous commit SHA: $PREVIOUS_SHA" git rev-parse --quiet --verify "$PREVIOUS_SHA^{commit}" 1>/dev/null 2>&1 && exit_status=$? || exit_status=$? From 4703a0ce803001e79c367a0cf1e58e1678dd76fd Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 06:23:50 -0600 Subject: [PATCH 06/35] Update diff-sha.sh --- diff-sha.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diff-sha.sh b/diff-sha.sh index 25c715d0..626a5cf2 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -157,7 +157,7 @@ else fi fi -if [[ -n "$PREVIOUS_SHA" && -n "$CURRENT_SHA" && "$PREVIOUS_SHA" == "$CURRENT_SHA" && "$INITIAL_COMMIT" == "false" ]]; then +if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" && "$INITIAL_COMMIT" == "false" ]]; then echo "::error::Similar commit hashes detected: previous sha: $PREVIOUS_SHA is equivalent to the current sha: $CURRENT_SHA" echo "::error::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage" exit 1 From 61af1b57e43d9f361f9686eda4254bbad47e5eda Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 06:26:40 -0600 Subject: [PATCH 07/35] Update test.yml --- .github/workflows/test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 415bfc51..dfbb39e3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -215,8 +215,10 @@ jobs: steps: - name: Checkout to branch uses: actions/checkout@v3 + with: + fetch-depth: 2 - - name: Run changed-files with a single commit history + - name: Run changed-files id: changed-files uses: ./ From 75a97e3f7b9ca5f69ece6b62795db99780f8124f Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 06:31:50 -0600 Subject: [PATCH 08/35] Update action.yml --- action.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/action.yml b/action.yml index 474c3328..e364216c 100644 --- a/action.yml +++ b/action.yml @@ -77,10 +77,10 @@ inputs: description: "Output list of changed files in a JSON formatted string which can be used for matrix jobs." required: false default: "false" - max_fetch_depth: - description: "Max limit for fetching branch history. **NOTE**: This can be adjusted to resolve errors with insufficient history." + fetch_depth: + description: "Limit depth of target branch history fetched. **NOTE**: This can be adjusted to resolve errors with insufficient history." required: false - default: "300" + default: "30" outputs: added_files: @@ -171,7 +171,7 @@ runs: INPUT_SINCE: ${{ inputs.since }} INPUT_UNTIL: ${{ inputs.until }} INPUT_PATH: ${{ inputs.path }} - INPUT_MAX_FETCH_DEPTH: ${{ inputs.max_fetch_depth }} + INPUT_FETCH_DEPTH: ${{ inputs.fetch_depth }} - name: Glob match uses: tj-actions/glob@v15 id: glob From 420c851349eb47b0783dac365a267913ccde062c Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 06:34:25 -0600 Subject: [PATCH 09/35] Update diff-sha.sh --- diff-sha.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/diff-sha.sh b/diff-sha.sh index 626a5cf2..56f16a9e 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -82,6 +82,8 @@ if [[ -z $GITHUB_BASE_REF ]]; then exit 1 fi else + git fetch --no-tags -u --progress --depth="INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" + PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? if [[ -z "$PREVIOUS_SHA" ]]; then @@ -132,7 +134,7 @@ else CURRENT_BRANCH=$GITHUB_HEAD_REF if [[ -z $INPUT_BASE_SHA ]]; then - git fetch --no-tags -u --progress --depth=10 origin "$TARGET_BRANCH":"$TARGET_BRANCH" + git fetch --no-tags -u --progress --depth="INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? if [[ -z "$PREVIOUS_SHA" ]]; then @@ -140,7 +142,7 @@ else fi echo "::debug::Previous SHA: $PREVIOUS_SHA" else - git fetch --no-tags -u --progress --depth=10 origin "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$? + git fetch --no-tags -u --progress --depth="INPUT_FETCH_DEPTH" origin "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$? PREVIOUS_SHA=$INPUT_BASE_SHA && exit_status=$? || exit_status=$? fi From 19ffb8fde5fba3f267c4d2b860a0b045b89d1ce4 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 06:41:07 -0600 Subject: [PATCH 10/35] Update get-changed-paths.sh --- get-changed-paths.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index e2655a49..331aeea0 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -eu +set -exuo pipefail INPUT_SEPARATOR="${INPUT_SEPARATOR//'%'/'%25'}" INPUT_SEPARATOR="${INPUT_SEPARATOR//'.'/'%2E'}" From b9fcfc65d8f83de480094100cc85b7f616091e00 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 06:45:29 -0600 Subject: [PATCH 11/35] Update diff-sha.sh --- diff-sha.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diff-sha.sh b/diff-sha.sh index 56f16a9e..bf419b5d 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -82,7 +82,7 @@ if [[ -z $GITHUB_BASE_REF ]]; then exit 1 fi else - git fetch --no-tags -u --progress --depth="INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" + git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? @@ -134,7 +134,7 @@ else CURRENT_BRANCH=$GITHUB_HEAD_REF if [[ -z $INPUT_BASE_SHA ]]; then - git fetch --no-tags -u --progress --depth="INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" + git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? if [[ -z "$PREVIOUS_SHA" ]]; then @@ -142,7 +142,7 @@ else fi echo "::debug::Previous SHA: $PREVIOUS_SHA" else - git fetch --no-tags -u --progress --depth="INPUT_FETCH_DEPTH" origin "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$? + git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$? PREVIOUS_SHA=$INPUT_BASE_SHA && exit_status=$? || exit_status=$? fi From f1febd43b2aba49aeb0adbf1ae8cb472afe7aed9 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 06:50:01 -0600 Subject: [PATCH 12/35] Update diff-sha.sh --- diff-sha.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diff-sha.sh b/diff-sha.sh index bf419b5d..20a613d0 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -160,8 +160,8 @@ else fi if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" && "$INITIAL_COMMIT" == "false" ]]; then - echo "::error::Similar commit hashes detected: previous sha: $PREVIOUS_SHA is equivalent to the current sha: $CURRENT_SHA" - echo "::error::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage" + echo "::error::Similar commit hashes detected: previous sha: $PREVIOUS_SHA is equivalent to the current sha: $CURRENT_SHA." + echo "::error::Please increase the fetch_depth to a number higher than the default." exit 1 fi From 32c930e9ab655bf04c73da00249b97124620e09b Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 06:52:28 -0600 Subject: [PATCH 13/35] Update get-changed-paths.sh --- get-changed-paths.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index 331aeea0..534339ae 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -exuo pipefail +set -euo pipefail INPUT_SEPARATOR="${INPUT_SEPARATOR//'%'/'%25'}" INPUT_SEPARATOR="${INPUT_SEPARATOR//'.'/'%2E'}" @@ -55,14 +55,14 @@ function get_diff() { if [[ "$INPUT_DIR_NAMES" == "true" ]]; then git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? - if [[ $exit_status -ne 0 ]]; then + if [[ $exit_status -gt 1 ]]; then echo "::error::Failed to get changed directories between: $base$DIFF$sha" exit 1 fi else git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" && exit_status=$? || exit_status=$? - if [[ $exit_status -ne 0 ]]; then + if [[ $exit_status -gt 1 ]]; then echo "::error::Failed to get changed files between: $base$DIFF$sha" exit 1 fi @@ -75,13 +75,13 @@ function get_renames() { while IFS='' read -r sub; do sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? - if [[ $exit_status -ne 0 ]]; then + if [[ $exit_status -gt 1 ]]; then echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? - if [[ $exit_status -ne 0 ]]; then + if [[ $exit_status -gt 1 ]]; then echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi From c715985c07939d5e0cb3f9cb6d54c9b44674474d Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 06:57:33 -0600 Subject: [PATCH 14/35] Update get-changed-paths.sh --- get-changed-paths.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index 534339ae..282907bf 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -30,14 +30,14 @@ function get_diff() { local filter="$3" while IFS='' read -r sub; do - sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? - if [[ $exit_status -ne 0 ]]; then + sub_commit_pre="$(git diff --exit-code "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + if [[ $exit_status -gt 1 ]]; then echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi - sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? - if [[ $exit_status -ne 0 ]]; then + sub_commit_cur="$(git diff --exit-code "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + if [[ $exit_status -gt 1 ]]; then echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi @@ -53,14 +53,14 @@ function get_diff() { done < <(git submodule | awk '{print $2}') if [[ "$INPUT_DIR_NAMES" == "true" ]]; then - git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? + git diff --exit-code --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? if [[ $exit_status -gt 1 ]]; then echo "::error::Failed to get changed directories between: $base$DIFF$sha" exit 1 fi else - git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" && exit_status=$? || exit_status=$? + git diff --exit-code --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" && exit_status=$? || exit_status=$? if [[ $exit_status -gt 1 ]]; then echo "::error::Failed to get changed files between: $base$DIFF$sha" @@ -74,13 +74,13 @@ function get_renames() { local sha="$2" while IFS='' read -r sub; do - sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + sub_commit_pre="$(git diff --exit-code "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? if [[ $exit_status -gt 1 ]]; then echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi - sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + sub_commit_cur="$(git diff --exit-code "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? if [[ $exit_status -gt 1 ]]; then echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha" exit 1 From 13809e0a154eef305365505858358b0a9d64cd5c Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 07:04:41 -0600 Subject: [PATCH 15/35] Update get-changed-paths.sh --- get-changed-paths.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index 282907bf..5581a444 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -euo pipefail +set -exuo pipefail INPUT_SEPARATOR="${INPUT_SEPARATOR//'%'/'%25'}" INPUT_SEPARATOR="${INPUT_SEPARATOR//'.'/'%2E'}" From de59412f4b1fc7775a44372e68ebed9038df3392 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 07:12:26 -0600 Subject: [PATCH 16/35] Update get-changed-paths.sh --- get-changed-paths.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index 5581a444..6a7ebf4a 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -exuo pipefail +set -euo pipefail INPUT_SEPARATOR="${INPUT_SEPARATOR//'%'/'%25'}" INPUT_SEPARATOR="${INPUT_SEPARATOR//'.'/'%2E'}" @@ -30,14 +30,14 @@ function get_diff() { local filter="$3" while IFS='' read -r sub; do - sub_commit_pre="$(git diff --exit-code "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? - if [[ $exit_status -gt 1 ]]; then + sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi - sub_commit_cur="$(git diff --exit-code "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? - if [[ $exit_status -gt 1 ]]; then + sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi @@ -53,16 +53,16 @@ function get_diff() { done < <(git submodule | awk '{print $2}') if [[ "$INPUT_DIR_NAMES" == "true" ]]; then - git diff --exit-code --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? + git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? - if [[ $exit_status -gt 1 ]]; then + if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get changed directories between: $base$DIFF$sha" exit 1 fi else - git diff --exit-code --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" && exit_status=$? || exit_status=$? + git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" && exit_status=$? || exit_status=$? - if [[ $exit_status -gt 1 ]]; then + if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get changed files between: $base$DIFF$sha" exit 1 fi @@ -74,14 +74,14 @@ function get_renames() { local sha="$2" while IFS='' read -r sub; do - sub_commit_pre="$(git diff --exit-code "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? - if [[ $exit_status -gt 1 ]]; then + sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi - sub_commit_cur="$(git diff --exit-code "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? - if [[ $exit_status -gt 1 ]]; then + sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi From 4034cb97bc983c70701a7f342d43f31ba54761f8 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 07:14:43 -0600 Subject: [PATCH 17/35] Update get-changed-paths.sh --- get-changed-paths.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index 6a7ebf4a..331aeea0 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -euo pipefail +set -exuo pipefail INPUT_SEPARATOR="${INPUT_SEPARATOR//'%'/'%25'}" INPUT_SEPARATOR="${INPUT_SEPARATOR//'.'/'%2E'}" From 61651ceaa902cdad66fde5241109205ab06fa3e5 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 07:35:32 -0600 Subject: [PATCH 18/35] Fixed test --- get-changed-paths.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index 331aeea0..eec90b74 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -30,13 +30,13 @@ function get_diff() { local filter="$3" while IFS='' read -r sub; do - sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' || true | awk '{print $3}')" && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi - sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' || true | awk '{print $3}')" && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha" exit 1 @@ -74,13 +74,13 @@ function get_renames() { local sha="$2" while IFS='' read -r sub; do - sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' || true | awk '{print $3}')" && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi - sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$? + sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' || true | awk '{print $3}')" && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha" exit 1 From 08fb627a3dfe328b07cb0514822a74212cd60229 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 07:50:49 -0600 Subject: [PATCH 19/35] Updated get-changed-paths.sh --- get-changed-paths.sh | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index eec90b74..666df66b 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -97,14 +97,14 @@ function get_renames() { done < <(git submodule | awk '{print $2}') if [[ "$INPUT_DIR_NAMES" == "true" ]]; then - git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? + git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" || true | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get renamed directories between: $base → $sha" exit 1 fi else - git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$? + git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" || true | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get renamed files between: $base → $sha" @@ -161,19 +161,19 @@ if [[ "$INPUT_HAS_CUSTOM_PATTERNS" == "false" ]]; then fi fi else - ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') if [[ $INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES == "true" ]]; then - ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | grep -w -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | grep -w -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') fi ALL_OTHER_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') From 10de0c5e4e97dbb838ff460aaae23ad1e1e54da7 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 08:03:14 -0600 Subject: [PATCH 20/35] Updated get-changed-paths.sh --- get-changed-paths.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index 666df66b..0a1a64bf 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -exuo pipefail +set -euo pipefail INPUT_SEPARATOR="${INPUT_SEPARATOR//'%'/'%25'}" INPUT_SEPARATOR="${INPUT_SEPARATOR//'.'/'%2E'}" From e712ee7e3d01a3f3e02f1eab545ab6b791797acc Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 08:12:20 -0600 Subject: [PATCH 21/35] Updated get-changed-paths.sh --- get-changed-paths.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index 0a1a64bf..cb68cfcc 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -97,14 +97,14 @@ function get_renames() { done < <(git submodule | awk '{print $2}') if [[ "$INPUT_DIR_NAMES" == "true" ]]; then - git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" || true | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? + git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" || true | awk '{print $2}' | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get renamed directories between: $base → $sha" exit 1 fi else - git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" || true | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$? + git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" || true | awk '{print $2}' | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get renamed files between: $base → $sha" From e15fb07855aedc748b30ea80a2418b28605cb6f7 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 08:14:00 -0600 Subject: [PATCH 22/35] Updated get-changed-paths.sh --- get-changed-paths.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index cb68cfcc..4827f724 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -97,14 +97,14 @@ function get_renames() { done < <(git submodule | awk '{print $2}') if [[ "$INPUT_DIR_NAMES" == "true" ]]; then - git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" || true | awk '{print $2}' | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? + git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get renamed directories between: $base → $sha" exit 1 fi else - git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" || true | awk '{print $2}' | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$? + git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get renamed files between: $base → $sha" From fea3b5eab8cbbfc51d8988e9bf95db3f7136d595 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 08:33:45 -0600 Subject: [PATCH 23/35] Updated test --- .github/workflows/test.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dfbb39e3..e6a0bf89 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -359,6 +359,16 @@ jobs: echo '${{ toJSON(steps.changed-files.outputs) }}' shell: bash + - name: Run changed-files with include_all_old_new_renamed_files + id: changed-files + uses: ./ + with: + include_all_old_new_renamed_files: true + - name: Show output + run: | + echo '${{ toJSON(steps.changed-files.outputs) }}' + shell: + bash - name: List all modified files run: | for file in ${{ steps.changed-files.outputs.modified_files }}; do From b2e6ecea0959f1ed9857ea975fcfe334ee47db2b Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 08:41:37 -0600 Subject: [PATCH 24/35] Updated test --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e6a0bf89..50266cdb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -360,13 +360,13 @@ jobs: shell: bash - name: Run changed-files with include_all_old_new_renamed_files - id: changed-files + id: changed-files-all-old-new-renamed-files uses: ./ with: include_all_old_new_renamed_files: true - name: Show output run: | - echo '${{ toJSON(steps.changed-files.outputs) }}' + echo '${{ toJSON(steps.changed-files-all-old-new-renamed-files.outputs) }}' shell: bash - name: List all modified files From be35464a0e666161bf53bdc078728aa3c7d5cd34 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 08:49:35 -0600 Subject: [PATCH 25/35] Updated get-changed-paths.sh --- get-changed-paths.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index 4827f724..65a2ee82 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -euo pipefail +set -euxo pipefail INPUT_SEPARATOR="${INPUT_SEPARATOR//'%'/'%25'}" INPUT_SEPARATOR="${INPUT_SEPARATOR//'.'/'%2E'}" @@ -104,7 +104,7 @@ function get_renames() { exit 1 fi else - git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$? + git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get renamed files between: $base → $sha" From 7d0716889bb9a0aa4c37a05f739fd66d6e130c04 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 08:58:59 -0600 Subject: [PATCH 26/35] Fixed the test --- get-changed-paths.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index 65a2ee82..ad13db9a 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -97,14 +97,14 @@ function get_renames() { done < <(git submodule | awk '{print $2}') if [[ "$INPUT_DIR_NAMES" == "true" ]]; then - git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? + git log --name-status --ignore-submodules=all "$base" "$sha" | { grep -E "^R" || true; } | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get renamed directories between: $base → $sha" exit 1 fi else - git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$? + git log --name-status --ignore-submodules=all "$base" "$sha" | { grep -E "^R" || true; } | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get renamed files between: $base → $sha" From 06d1e2d093f7f9ab5d1209c96ba0ea7e34c46e11 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 09:03:41 -0600 Subject: [PATCH 27/35] Updated get-changed-paths.sh --- get-changed-paths.sh | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/get-changed-paths.sh b/get-changed-paths.sh index ad13db9a..265ac711 100755 --- a/get-changed-paths.sh +++ b/get-changed-paths.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -euxo pipefail +set -euo pipefail INPUT_SEPARATOR="${INPUT_SEPARATOR//'%'/'%25'}" INPUT_SEPARATOR="${INPUT_SEPARATOR//'.'/'%2E'}" @@ -30,13 +30,13 @@ function get_diff() { local filter="$3" while IFS='' read -r sub; do - sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' || true | awk '{print $3}')" && exit_status=$? || exit_status=$? + sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | { grep '^[-]Subproject commit' || true; } | awk '{print $3}')" && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi - sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' || true | awk '{print $3}')" && exit_status=$? || exit_status=$? + sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | { grep '^[+]Subproject commit' || true; } | awk '{print $3}')" && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha" exit 1 @@ -74,13 +74,13 @@ function get_renames() { local sha="$2" while IFS='' read -r sub; do - sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' || true | awk '{print $3}')" && exit_status=$? || exit_status=$? + sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | { grep '^[-]Subproject commit' || true; } | awk '{print $3}')" && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha" exit 1 fi - sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' || true | awk '{print $3}')" && exit_status=$? || exit_status=$? + sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | { grep '^[+]Subproject commit' || true; } | awk '{print $3}')" && exit_status=$? || exit_status=$? if [[ $exit_status -ne 0 ]]; then echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha" exit 1 @@ -161,19 +161,19 @@ if [[ "$INPUT_HAS_CUSTOM_PATTERNS" == "false" ]]; then fi fi else - ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') if [[ $INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES == "true" ]]; then - ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | grep -w -E -f "$INPUT_FILES_PATTERN_FILE" || true | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | { grep -w -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') fi ALL_OTHER_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') From 7b3e6ed2f5bcdbaeb065e6c08a67eec06992e6c9 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 09:04:38 -0600 Subject: [PATCH 28/35] Updated diff-sha.sh --- diff-sha.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diff-sha.sh b/diff-sha.sh index 20a613d0..4a78fd92 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -eu +set -euo pipefail INITIAL_COMMIT="false" GITHUB_OUTPUT=${GITHUB_OUTPUT:-""} From 8fb8d46593e0f253dd2fe9a9ac7e1975cf8f3c64 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 09:12:49 -0600 Subject: [PATCH 29/35] Updated error message. --- diff-sha.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diff-sha.sh b/diff-sha.sh index 4a78fd92..95807a14 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -125,7 +125,7 @@ if [[ -z $GITHUB_BASE_REF ]]; then if [[ $exit_status -ne 0 ]]; then echo "::error::Unable to locate the previous sha: $PREVIOUS_SHA" - echo "::error::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage" + echo "::error::Please verify that both commit are valid, and increase the fetch_depth to a number higher than $INPUT_INPUT_FETCH_DEPTH." exit 1 fi else @@ -154,14 +154,14 @@ else if [[ $exit_status -ne 0 ]]; then echo "::error::Unable to locate the previous sha: $PREVIOUS_SHA" - echo "::error::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage" + echo "::error::Please verify that both commit are valid, and increase the fetch_depth to a number higher than $INPUT_INPUT_FETCH_DEPTH." exit 1 fi fi if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" && "$INITIAL_COMMIT" == "false" ]]; then echo "::error::Similar commit hashes detected: previous sha: $PREVIOUS_SHA is equivalent to the current sha: $CURRENT_SHA." - echo "::error::Please increase the fetch_depth to a number higher than the default." + echo "::error::Please verify that both commit are valid, and increase the fetch_depth to a number higher than $INPUT_INPUT_FETCH_DEPTH." exit 1 fi From 31d24d6654592f87821f12864249fbed2b87c7c7 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 09:31:04 -0600 Subject: [PATCH 30/35] Update test.yml --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 50266cdb..59033f9f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -211,12 +211,13 @@ jobs: max-parallel: 4 matrix: platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, ubuntu-18.04, windows-2022] + fetch-depth: [1, 2] steps: - name: Checkout to branch uses: actions/checkout@v3 with: - fetch-depth: 2 + fetch-depth: ${{ matrix.fetch-depth }} - name: Run changed-files id: changed-files From f8d4b5c28649ea42a995edff84132b6e3a63a3dc Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 09:50:18 -0600 Subject: [PATCH 31/35] Updated to fetch the current PR branch --- .github/workflows/test.yml | 3 +-- diff-sha.sh | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 59033f9f..50266cdb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -211,13 +211,12 @@ jobs: max-parallel: 4 matrix: platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, ubuntu-18.04, windows-2022] - fetch-depth: [1, 2] steps: - name: Checkout to branch uses: actions/checkout@v3 with: - fetch-depth: ${{ matrix.fetch-depth }} + fetch-depth: 2 - name: Run changed-files id: changed-files diff --git a/diff-sha.sh b/diff-sha.sh index 95807a14..d7e396aa 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -83,7 +83,7 @@ if [[ -z $GITHUB_BASE_REF ]]; then fi else git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" - + PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? if [[ -z "$PREVIOUS_SHA" ]]; then @@ -135,6 +135,7 @@ else if [[ -z $INPUT_BASE_SHA ]]; then git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" + git fetch --no-tags -u --progress origin "$CURRENT_BRANCH":"$CURRENT_BRANCH" PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? if [[ -z "$PREVIOUS_SHA" ]]; then @@ -143,6 +144,7 @@ else echo "::debug::Previous SHA: $PREVIOUS_SHA" else git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$? + git fetch --no-tags -u --progress origin "$CURRENT_BRANCH":"$CURRENT_BRANCH" PREVIOUS_SHA=$INPUT_BASE_SHA && exit_status=$? || exit_status=$? fi From c50a04d832dd9a269d6d72bea0dd483414d17ed7 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 09:54:28 -0600 Subject: [PATCH 32/35] Updated test.yml --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 50266cdb..59033f9f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -211,12 +211,13 @@ jobs: max-parallel: 4 matrix: platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, ubuntu-18.04, windows-2022] + fetch-depth: [1, 2] steps: - name: Checkout to branch uses: actions/checkout@v3 with: - fetch-depth: 2 + fetch-depth: ${{ matrix.fetch-depth }} - name: Run changed-files id: changed-files From bf1b284c20a4a7d2fe2cd146c4da60b9533338ac Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 10:00:55 -0600 Subject: [PATCH 33/35] Updated to fetch the current PR branch --- diff-sha.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diff-sha.sh b/diff-sha.sh index d7e396aa..31559568 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -135,7 +135,7 @@ else if [[ -z $INPUT_BASE_SHA ]]; then git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" - git fetch --no-tags -u --progress origin "$CURRENT_BRANCH":"$CURRENT_BRANCH" + git fetch --no-tags -u --progress origin "$CURRENT_BRANCH":"$GITHUB_HEAD_REF" PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? if [[ -z "$PREVIOUS_SHA" ]]; then @@ -144,7 +144,7 @@ else echo "::debug::Previous SHA: $PREVIOUS_SHA" else git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$? - git fetch --no-tags -u --progress origin "$CURRENT_BRANCH":"$CURRENT_BRANCH" + git fetch --no-tags -u --progress origin "$CURRENT_BRANCH":"$GITHUB_HEAD_REF" PREVIOUS_SHA=$INPUT_BASE_SHA && exit_status=$? || exit_status=$? fi From 764c2795098e851e7e7998c0cf79d3124d29826c Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 10:08:21 -0600 Subject: [PATCH 34/35] Updated to increase shallow clone depth --- diff-sha.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diff-sha.sh b/diff-sha.sh index 31559568..f1efb994 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -135,7 +135,7 @@ else if [[ -z $INPUT_BASE_SHA ]]; then git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" - git fetch --no-tags -u --progress origin "$CURRENT_BRANCH":"$GITHUB_HEAD_REF" + git fetch --no-tags -u --progress --deepen=40000 origin "$CURRENT_BRANCH":"$GITHUB_HEAD_REF" PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? if [[ -z "$PREVIOUS_SHA" ]]; then @@ -144,7 +144,7 @@ else echo "::debug::Previous SHA: $PREVIOUS_SHA" else git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$? - git fetch --no-tags -u --progress origin "$CURRENT_BRANCH":"$GITHUB_HEAD_REF" + git fetch --no-tags -u --progress --deepen=40000 origin "$CURRENT_BRANCH":"$GITHUB_HEAD_REF" PREVIOUS_SHA=$INPUT_BASE_SHA && exit_status=$? || exit_status=$? fi From f390b8d769a96f800260d5a268cd065016ca2d9e Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 3 Nov 2022 10:10:27 -0600 Subject: [PATCH 35/35] Updated to increase shallow clone depth --- diff-sha.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diff-sha.sh b/diff-sha.sh index f1efb994..5b3661fa 100644 --- a/diff-sha.sh +++ b/diff-sha.sh @@ -135,7 +135,7 @@ else if [[ -z $INPUT_BASE_SHA ]]; then git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH":"$TARGET_BRANCH" - git fetch --no-tags -u --progress --deepen=40000 origin "$CURRENT_BRANCH":"$GITHUB_HEAD_REF" + git fetch --no-tags -u --progress --deepen=40000 PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$? if [[ -z "$PREVIOUS_SHA" ]]; then @@ -144,7 +144,7 @@ else echo "::debug::Previous SHA: $PREVIOUS_SHA" else git fetch --no-tags -u --progress --depth="$INPUT_FETCH_DEPTH" origin "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$? - git fetch --no-tags -u --progress --deepen=40000 origin "$CURRENT_BRANCH":"$GITHUB_HEAD_REF" + git fetch --no-tags -u --progress --deepen=40000 PREVIOUS_SHA=$INPUT_BASE_SHA && exit_status=$? || exit_status=$? fi