Compare commits

...

27 Commits

Author SHA1 Message Date
Tonye Jack
1d6e210c97 Merge pull request #694 from tj-actions/chore/clean-up-test 2022-10-15 22:33:22 -06:00
Tonye Jack
f36f89daeb chore: clean up test 2022-10-15 22:13:19 -06:00
Tonye Jack
210f4edecf Merge pull request #693 from tj-actions/chore/clean-up-test
fix: bug setting until and since inputs.
2022-10-15 19:37:40 -06:00
Tonye Jack
a558487ee0 Updated usage of until 2022-10-15 18:21:02 -06:00
Tonye Jack
b45fdcf650 Updated test.yml 2022-10-15 18:03:55 -06:00
Tonye Jack
baf172ed6a Updated test.yml 2022-10-15 17:54:45 -06:00
Tonye Jack
e64110acb1 Update test.yml 2022-10-15 17:33:25 -06:00
Tonye Jack
d8ae75228d Updated diff-sha.sh 2022-10-15 17:25:37 -06:00
Tonye Jack
61ed208946 Updated diff-sha.sh 2022-10-15 16:26:42 -06:00
Tonye Jack
4f38efcb15 Updated debug message. 2022-10-15 16:01:59 -06:00
Tonye Jack
62c6729ad3 Update test.yml 2022-10-15 12:50:01 -06:00
Tonye Jack
fd0ee42a4d Update test.yml 2022-10-15 12:48:13 -06:00
Tonye Jack
d46fe4c5c6 Update test.yml 2022-10-15 12:47:32 -06:00
Tonye Jack
307e695c51 chore: clean up test 2022-10-15 12:34:47 -06:00
Tonye Jack
b3d763dd5c Merge pull request #692 from tj-actions/upgrade-to-v32.1.1 2022-10-14 15:56:24 -06:00
jackton1
f0555f4cd6 Upgraded from v32.1.0 -> v32.1.1 2022-10-14 19:26:31 +00:00
Tonye Jack
8953e851a1 Merge pull request #691 from tj-actions/feat/remove-duplicate-files-support-backwards-compatible-set-output 2022-10-14 13:22:11 -06:00
Tonye Jack
09ae9e21b6 Updated test.yml 2022-10-14 13:17:09 -06:00
Tonye Jack
982d4d0dea Update test. 2022-10-14 13:04:29 -06:00
Tonye Jack
724c3d91d5 Update diff-sha.sh 2022-10-14 13:01:08 -06:00
Tonye Jack
759895012f feat: remove duplicate files support backwards compatible set-output 2022-10-14 12:59:47 -06:00
Tonye Jack
48f056c336 Update README.md 2022-10-13 17:57:33 -06:00
Tonye Jack
7e7cfb8175 Update README.md 2022-10-13 11:10:10 -06:00
Tonye Jack
d8275c3c60 Merge pull request #687 from tj-actions/upgrade-to-v32.1.0
Upgraded to v32.1.0
2022-10-12 18:37:53 -06:00
jackton1
7c854716df Upgraded from v32.0.1 -> v32.1.0 2022-10-12 21:41:21 +00:00
Tonye Jack
efc6ca5073 Merge pull request #686 from tj-actions/chore/update-readme 2022-10-12 14:58:22 -06:00
jackton1
ff1033d6d9 Updated README.md 2022-10-12 20:37:10 +00:00
8 changed files with 283 additions and 146 deletions

View File

@@ -84,6 +84,62 @@ jobs:
shell:
bash
test-using-since-and-until:
name: Test changed-files using since and until
runs-on: ${{ matrix.platform }}
if: github.event_name == 'push'
strategy:
fail-fast: false
max-parallel: 4
matrix:
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, ubuntu-18.04, windows-2022]
steps:
- name: Checkout to branch
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Run changed-files since 2022-08-19
id: changed-files-since
uses: ./
with:
since: "2022-08-19"
- name: Check output
if: "!contains(steps.changed-files-since.outputs.all_changed_files, '.github/workflows/sync-release-version.yml')"
run: |
echo "Invalid output: Expected to include (.github/workflows/sync-release-version.yml) got (${{ steps.changed-files-since.outputs.all_changed_files }})"
exit 1
shell:
bash
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-since.outputs) }}'
shell:
bash
- name: Run changed-files until 2022-08-20
id: changed-files-until
uses: ./
with:
until: "2022-08-20"
- name: Check output
if: "!contains(steps.changed-files-until.outputs.all_changed_files, 'entrypoint.sh')"
run: |
echo "Invalid output: Expected to include (entrypoint.sh) got (${{ steps.changed-files-until.outputs.all_changed_files }})"
exit 1
shell:
bash
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-until.outputs) }}'
shell:
bash
test-similar-base-and-commit-sha:
name: Test changed-files similar base and commit sha
runs-on: ${{ matrix.platform }}
@@ -119,6 +175,34 @@ jobs:
shell:
bash
test-unset-github-output-env:
name: Test unset GITHUB_OUTPUT env
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
max-parallel: 4
matrix:
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, ubuntu-18.04, windows-2022]
steps:
- name: Checkout to branch
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Run changed-files with unset GITHUB_OUTPUT env
id: changed-files
continue-on-error: true
uses: ./
env:
GITHUB_OUTPUT: ""
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files.outputs) }}'
shell:
bash
test-single-commit-history:
name: Test changed-files single commit history
runs-on: ${{ matrix.platform }}
@@ -329,28 +413,6 @@ jobs:
exit 1
shell:
bash
- name: Run changed-files since 2022-08-19
id: changed-files-since
uses: ./
continue-on-error: true
with:
since: "2022-08-19"
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-since.outputs) }}'
shell:
bash
- name: Run changed-files until 2022-08-20
id: changed-files-until
uses: ./
continue-on-error: true
with:
until: "2022-08-20"
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-until.outputs) }}'
shell:
bash
- name: Run changed-files with forward slash separator
id: changed-files-forward-slash
uses: ./

View File

@@ -2,19 +2,52 @@
## [Unreleased](https://github.com/tj-actions/changed-files/tree/HEAD)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.0.1...HEAD)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.1.1...HEAD)
**Fixed bugs:**
- \[BUG\] Random GITHUB\_OUTPUT: unbound variable in get-sha.sh [\#690](https://github.com/tj-actions/changed-files/issues/690)
## [v32.1.1](https://github.com/tj-actions/changed-files/tree/v32.1.1) (2022-10-14)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32...v32.1.1)
## [v32](https://github.com/tj-actions/changed-files/tree/v32) (2022-10-14)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.1.0...v32)
**Merged pull requests:**
- feat: remove duplicate files add back support for deprecated set-output [\#691](https://github.com/tj-actions/changed-files/pull/691) ([jackton1](https://github.com/jackton1))
- Upgraded to v32.1.0 [\#687](https://github.com/tj-actions/changed-files/pull/687) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#686](https://github.com/tj-actions/changed-files/pull/686) ([jackton1](https://github.com/jackton1))
## [v32.1.0](https://github.com/tj-actions/changed-files/tree/v32.1.0) (2022-10-12)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.0.1...v32.1.0)
**Fixed bugs:**
- \[BUG\] runner is reporting old Node.js version. [\#678](https://github.com/tj-actions/changed-files/issues/678)
- \[BUG\] New commits pushed to the base branch results in errors when shallow history is used. [\#668](https://github.com/tj-actions/changed-files/issues/668)
**Closed issues:**
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
**Merged pull requests:**
- docs: add lpulley as a contributor for code [\#685](https://github.com/tj-actions/changed-files/pull/685) ([allcontributors[bot]](https://github.com/apps/allcontributors))
- Updated README.md [\#684](https://github.com/tj-actions/changed-files/pull/684) ([jackton1](https://github.com/jackton1))
- chore: update test [\#683](https://github.com/tj-actions/changed-files/pull/683) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#682](https://github.com/tj-actions/changed-files/pull/682) ([jackton1](https://github.com/jackton1))
- fix: bug with new commits pushed to the base branch that result in errors when shallow history is used [\#681](https://github.com/tj-actions/changed-files/pull/681) ([jackton1](https://github.com/jackton1))
- Upgraded to v32.0.1 [\#680](https://github.com/tj-actions/changed-files/pull/680) ([jackton1](https://github.com/jackton1))
- Use `>>$GITHUB_OUTPUT` instead of `::set-output` [\#679](https://github.com/tj-actions/changed-files/pull/679) ([lpulley](https://github.com/lpulley))
## [v32.0.1](https://github.com/tj-actions/changed-files/tree/v32.0.1) (2022-10-11)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32...v32.0.1)
## [v32](https://github.com/tj-actions/changed-files/tree/v32) (2022-10-11)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.0.0...v32)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.0.0...v32.0.1)
**Fixed bugs:**
@@ -103,7 +136,7 @@
## [v30.0.0](https://github.com/tj-actions/changed-files/tree/v30.0.0) (2022-09-24)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29...v30.0.0)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.9...v30.0.0)
**Fixed bugs:**
@@ -119,13 +152,13 @@
- chore\(deps\): update codacy/codacy-analysis-cli-action action to v4.2.0 [\#634](https://github.com/tj-actions/changed-files/pull/634) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v29.0.9 [\#633](https://github.com/tj-actions/changed-files/pull/633) ([jackton1](https://github.com/jackton1))
## [v29](https://github.com/tj-actions/changed-files/tree/v29) (2022-09-20)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.9...v29)
## [v29.0.9](https://github.com/tj-actions/changed-files/tree/v29.0.9) (2022-09-20)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.8...v29.0.9)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29...v29.0.9)
## [v29](https://github.com/tj-actions/changed-files/tree/v29) (2022-09-20)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.8...v29)
**Implemented enhancements:**

View File

@@ -6,12 +6,14 @@
[![Windows](https://img.shields.io/badge/Windows-0078D6?logo=windows\&logoColor=white)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-16-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
## changed-files
Retrieve all changed files and directories relative to the target branch (`pull_request*` based events) or the last remote commit (`push` or `pull_request*` based event) returning the **absolute path** to all changed files and directories from the project root.
Retrieve all changed files and directories relative to the target branch or the last remote commit returning the **absolute path** from the project root.
## Features
@@ -339,7 +341,7 @@ Support this project with a :star:
uses: tj-actions/changed-files@v32
with:
dir_names: "true"
# All outputs are JSON formatted arrays and can be used in other actions and matrix compatible jobs.
- name: Run changed-files with json output
id: changed-files-json
@@ -396,8 +398,11 @@ If you are reporting a bug, please include:
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
@@ -426,6 +431,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->

View File

@@ -150,33 +150,6 @@ outputs:
runs:
using: "composite"
steps:
- run: |
# "Calculate the base sha..."
bash $GITHUB_ACTION_PATH/get-base-sha.sh
id: base-sha
shell: bash
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
GITHUB_EVENT_BEFORE: ${{ github.event.before }}
GITHUB_EVENT_FORCED : ${{ github.event.forced }}
# INPUT_<VARIABLE_NAME> is not available in Composite run steps
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#example-specifying-inputs
INPUT_SINCE: ${{ inputs.since }}
INPUT_BASE_SHA: ${{ inputs.base_sha }}
INPUT_SHA: ${{ inputs.sha }}
INPUT_PATH: ${{ inputs.path }}
- run: |
# "Calculate the sha..."
bash $GITHUB_ACTION_PATH/get-sha.sh
id: sha
shell: bash
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
# INPUT_<VARIABLE_NAME> is not available in Composite run steps
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#example-specifying-inputs
INPUT_UNTIL: ${{ inputs.until }}
INPUT_SHA: ${{ inputs.sha }}
INPUT_PATH: ${{ inputs.path }}
- run: |
# "Calculating the previous and current SHA..."
bash $GITHUB_ACTION_PATH/diff-sha.sh
@@ -193,8 +166,10 @@ runs:
GITHUB_EVENT_FORCED: ${{ github.event.forced }}
# INPUT_<VARIABLE_NAME> is not available in Composite run steps
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#example-specifying-inputs
INPUT_SHA: ${{ steps.sha.outputs.sha }}
INPUT_BASE_SHA: ${{ steps.base-sha.outputs.base_sha }}
INPUT_SHA: ${{ inputs.sha }}
INPUT_BASE_SHA: ${{ inputs.base_sha }}
INPUT_SINCE: ${{ inputs.since }}
INPUT_UNTIL: ${{ inputs.until }}
INPUT_PATH: ${{ inputs.path }}
INPUT_TARGET_BRANCH_FETCH_DEPTH: ${{ inputs.target_branch_fetch_depth }}
- name: Glob match

View File

@@ -3,6 +3,7 @@
set -eu
INITIAL_COMMIT="false"
GITHUB_OUTPUT=${GITHUB_OUTPUT:-""}
echo "::group::changed-files-diff-sha"
@@ -39,10 +40,20 @@ fi
echo "::debug::Getting HEAD SHA..."
if [[ -z $INPUT_SHA ]]; then
CURRENT_SHA=$(git rev-list -n 1 "HEAD" 2>&1) && exit_status=$? || exit_status=$?
if [[ -n "$INPUT_UNTIL" ]]; then
echo "::debug::Getting HEAD SHA for '$INPUT_UNTIL'..."
CURRENT_SHA=$(git log -1 --format="%H" --date=local --until="$INPUT_UNTIL") && exit_status=$? || exit_status=$?
if [[ $exit_status -ne 0 ]]; then
echo "::error::Invalid until date: $INPUT_UNTIL"
exit 1
fi
else
CURRENT_SHA=$INPUT_SHA; exit_status=$?
if [[ -z $INPUT_SHA ]]; then
CURRENT_SHA=$(git rev-list -n 1 "HEAD" 2>&1) && exit_status=$? || exit_status=$?
else
CURRENT_SHA=$INPUT_SHA; exit_status=$?
fi
fi
echo "::debug::Verifying the current commit SHA: $CURRENT_SHA"
@@ -62,23 +73,39 @@ if [[ -z $GITHUB_BASE_REF ]]; then
CURRENT_BRANCH=$TARGET_BRANCH && exit_status=$? || exit_status=$?
if [[ -z $INPUT_BASE_SHA ]]; then
git fetch --no-tags -u --progress origin --depth="$INPUT_TARGET_BRANCH_FETCH_DEPTH" "${TARGET_BRANCH}":"${TARGET_BRANCH}" && exit_status=$? || exit_status=$?
PREVIOUS_SHA=""
if [[ -n "$INPUT_SINCE" ]]; then
echo "::debug::Getting base SHA for '$INPUT_SINCE'..."
PREVIOUS_SHA=$(git log --format="%H" --date=local --since="$INPUT_SINCE" | tail -1) && exit_status=$? || exit_status=$?
if [[ "$GITHUB_EVENT_FORCED" == "false" ]]; then
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE
fi
if [[ -z "$PREVIOUS_SHA" ]]; then
echo "::error::Unable to locate a previous commit for the specified date: $INPUT_SINCE"
exit 1
fi
else
git fetch --no-tags -u --progress origin --depth="$INPUT_TARGET_BRANCH_FETCH_DEPTH" "${TARGET_BRANCH}":"${TARGET_BRANCH}" && exit_status=$? || exit_status=$?
if [[ -z "$PREVIOUS_SHA" || "$PREVIOUS_SHA" == "0000000000000000000000000000000000000000" ]]; then
PREVIOUS_SHA=$(git rev-parse "$(git branch -r --sort=-committerdate | head -1 | xargs)")
fi
PREVIOUS_SHA=""
if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" ]]; then
PREVIOUS_SHA=$(git rev-parse "$CURRENT_SHA^1")
if [[ "$GITHUB_EVENT_FORCED" == "false" ]]; then
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE
fi
if [[ -z "$PREVIOUS_SHA" || "$PREVIOUS_SHA" == "0000000000000000000000000000000000000000" ]]; then
PREVIOUS_SHA=$(git rev-parse "$(git branch -r --sort=-committerdate | head -1 | xargs)")
fi
if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" ]]; then
INITIAL_COMMIT="true"
echo "::debug::Initial commit detected"
PREVIOUS_SHA=$(git rev-parse "$CURRENT_SHA^1")
if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" ]]; then
INITIAL_COMMIT="true"
echo "::debug::Initial commit detected"
fi
fi
if [[ -z "$PREVIOUS_SHA" ]]; then
echo "::error::Unable to locate a previous commit"
exit 1
fi
fi
else
@@ -132,11 +159,18 @@ if [[ -n "$PREVIOUS_SHA" && -n "$CURRENT_SHA" && "$PREVIOUS_SHA" == "$CURRENT_SH
exit 1
fi
cat <<EOF >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=target_branch::$TARGET_BRANCH"
echo "::set-output name=current_branch::$CURRENT_BRANCH"
echo "::set-output name=previous_sha::$PREVIOUS_SHA"
echo "::set-output name=current_sha::$CURRENT_SHA"
else
cat <<EOF >> "$GITHUB_OUTPUT"
target_branch=$TARGET_BRANCH
current_branch=$CURRENT_BRANCH
previous_sha=$PREVIOUS_SHA
current_sha=$CURRENT_SHA
EOF
fi
echo "::endgroup::"

View File

@@ -1,24 +0,0 @@
#!/usr/bin/env bash
set -eu
if [[ -n $INPUT_PATH ]]; then
REPO_DIR="$GITHUB_WORKSPACE/$INPUT_PATH"
echo "Resolving repository path: $REPO_DIR"
if [[ ! -d "$REPO_DIR" ]]; then
echo "::error::Invalid repository path: $REPO_DIR"
exit 1
fi
cd "$REPO_DIR"
fi
if [[ -n "$INPUT_SINCE" ]]; then
BASE_SHA=$(git log --format="%H" --date=local --since="$INPUT_SINCE" --reverse | head -n 1)
if [[ -z "$BASE_SHA" ]]; then
echo "::warning::The BASE_SHA for date '$INPUT_SINCE' couldn't be determined."
fi
echo "base_sha=$BASE_SHA" >> "$GITHUB_OUTPUT"
elif [[ -n "$INPUT_BASE_SHA" ]]; then
echo "base_sha=$INPUT_BASE_SHA" >> "$GITHUB_OUTPUT"
fi

View File

@@ -7,6 +7,8 @@ INPUT_SEPARATOR="${INPUT_SEPARATOR//'.'/'%2E'}"
INPUT_SEPARATOR="${INPUT_SEPARATOR//$'\n'/'%0A'}"
INPUT_SEPARATOR="${INPUT_SEPARATOR//$'\r'/'%0D'}"
GITHUB_OUTPUT=${GITHUB_OUTPUT:-""}
if [[ $INPUT_QUOTEPATH == "false" ]]; then
git config --global core.quotepath off
else
@@ -131,9 +133,17 @@ else
if [[ -n "${ALL_CHANGED}" ]]; then
echo "::debug::Matching changed files: ${ALL_CHANGED}"
echo "any_changed=true" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_changed::true"
else
echo "any_changed=true" >> "$GITHUB_OUTPUT"
fi
else
echo "any_changed=false" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_changed::false"
else
echo "any_changed=false" >> "$GITHUB_OUTPUT"
fi
fi
OTHER_CHANGED=""
@@ -154,19 +164,38 @@ else
if [[ -n "${OTHER_CHANGED}" && "${OTHER_CHANGED}" != "[]" ]]; then
echo "::debug::Non Matching changed files: ${OTHER_CHANGED}"
echo "only_changed=false" >> "$GITHUB_OUTPUT"
echo "other_changed_files=$OTHER_CHANGED" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=only_changed::false"
echo "::set-output name=other_changed_files::$OTHER_CHANGED"
else
echo "only_changed=false" >> "$GITHUB_OUTPUT"
echo "other_changed_files=$OTHER_CHANGED" >> "$GITHUB_OUTPUT"
fi
elif [[ -n "${ALL_CHANGED}" ]]; then
echo "only_changed=true" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=only_changed::true"
else
echo "only_changed=true" >> "$GITHUB_OUTPUT"
fi
fi
ALL_OTHER_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
if [[ -n "${ALL_MODIFIED}" ]]; then
echo "::debug::Matching modified files: ${ALL_MODIFIED}"
echo "any_modified=true" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_modified::true"
else
echo "any_modified=true" >> "$GITHUB_OUTPUT"
fi
else
echo "any_modified=false" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_modified::false"
else
echo "any_modified=false" >> "$GITHUB_OUTPUT"
fi
fi
OTHER_MODIFIED=""
@@ -187,19 +216,37 @@ else
if [[ -n "${OTHER_MODIFIED}" && "$OTHER_MODIFIED" != "[]" ]]; then
echo "::debug::Non Matching modified files: ${OTHER_MODIFIED}"
echo "only_modified=false" >> "$GITHUB_OUTPUT"
echo "other_modified_files=$OTHER_MODIFIED" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=only_modified::false"
echo "::set-output name=other_modified_files::$OTHER_MODIFIED"
else
echo "only_modified=false" >> "$GITHUB_OUTPUT"
echo "other_modified_files=$OTHER_MODIFIED" >> "$GITHUB_OUTPUT"
fi
elif [[ -n "${ALL_MODIFIED}" ]]; then
echo "only_modified=true" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=only_modified::true"
else
echo "only_modified=true" >> "$GITHUB_OUTPUT"
fi
fi
ALL_OTHER_DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
if [[ -n "${DELETED}" ]]; then
echo "::debug::Matching deleted files: ${DELETED}"
echo "any_deleted=true" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_deleted::true"
else
echo "any_deleted=true" >> "$GITHUB_OUTPUT"
fi
else
echo "any_deleted=false" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_deleted::false"
else
echo "any_deleted=false" >> "$GITHUB_OUTPUT"
fi
fi
OTHER_DELETED=""
@@ -220,10 +267,19 @@ else
if [[ -n "${OTHER_DELETED}" && "${OTHER_DELETED}" != "[]" ]]; then
echo "::debug::Non Matching deleted files: ${OTHER_DELETED}"
echo "only_deleted=false" >> "$GITHUB_OUTPUT"
echo "other_deleted_files=$OTHER_DELETED" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=only_deleted::false"
echo "::set-output name=other_deleted_files::$OTHER_DELETED"
else
echo "only_deleted=false" >> "$GITHUB_OUTPUT"
echo "other_deleted_files=$OTHER_DELETED" >> "$GITHUB_OUTPUT"
fi
elif [[ -n "${DELETED}" ]]; then
echo "only_deleted=true" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=only_deleted::true"
else
echo "only_deleted=true" >> "$GITHUB_OUTPUT"
fi
fi
if [[ "$INPUT_JSON" == "false" ]]; then
ADDED=$(echo "${ADDED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
@@ -267,7 +323,20 @@ if [[ $INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES == "true" ]]; then
echo "::debug::All old & new renamed files: $ALL_OLD_NEW_RENAMED"
fi
cat <<EOF >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
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=type_changed_files::$TYPE_CHANGED"
echo "::set-output name=unmerged_files::$UNMERGED"
echo "::set-output name=unknown_files::$UNKNOWN"
echo "::set-output name=all_changed_and_modified_files::$ALL_CHANGED_AND_MODIFIED"
echo "::set-output name=all_changed_files::$ALL_CHANGED"
echo "::set-output name=all_modified_files::$ALL_MODIFIED"
else
cat <<EOF >> "$GITHUB_OUTPUT"
added_files=$ADDED
copied_files=$COPIED
deleted_files=$DELETED
@@ -280,8 +349,14 @@ all_changed_and_modified_files=$ALL_CHANGED_AND_MODIFIED
all_changed_files=$ALL_CHANGED
all_modified_files=$ALL_MODIFIED
EOF
fi
if [[ $INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES == "true" ]]; then
echo "all_old_new_renamed_files=$ALL_OLD_NEW_RENAMED" >> "$GITHUB_OUTPUT"
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=all_old_new_renamed_files::$ALL_OLD_NEW_RENAMED"
else
echo "all_old_new_renamed_files=$ALL_OLD_NEW_RENAMED" >> "$GITHUB_OUTPUT"
fi
fi
echo "::endgroup::"

View File

@@ -1,24 +0,0 @@
#!/usr/bin/env bash
set -eu
if [[ -n $INPUT_PATH ]]; then
REPO_DIR="$GITHUB_WORKSPACE/$INPUT_PATH"
echo "Resolving repository path: $REPO_DIR"
if [[ ! -d "$REPO_DIR" ]]; then
echo "::error::Invalid repository path: $REPO_DIR"
exit 1
fi
cd "$REPO_DIR"
fi
if [[ -n "$INPUT_UNTIL" ]]; then
SHA=$(git log -1 --format="%H" --date=local --until="$INPUT_UNTIL")
if [[ -z "$SHA" ]]; then
echo "::warning::The SHA for date '$INPUT_UNTIL' couldn't be determined, falling back to the current sha."
fi
echo "sha=$SHA" >> "$GITHUB_OUTPUT"
else
echo "sha=$INPUT_SHA" >> "$GITHUB_OUTPUT"
fi