Compare commits

...

105 Commits

Author SHA1 Message Date
Tonye Jack
d5414fd30b fix: bug with pr from forks with similar branch names (#981) 2023-02-13 21:26:59 -07:00
Tonye Jack
85bd8694a9 Update README.md 2023-02-09 12:47:53 -07:00
Tonye Jack
4dce8843f8 Upgraded to v35.5.2 (#977)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-02-09 16:55:28 +00:00
Tonye Jack
7f2aa19bdc chore: update use of tilde to use caret instead (#975) 2023-02-09 14:33:33 +00:00
Tonye Jack
4ffc815953 Upgraded to v35.5.1 (#974)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-02-07 03:44:03 +00:00
Tonye Jack
210cc839c2 fix: including non branch changes in diff output (#973)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-02-07 01:25:06 +00:00
Tonye Jack
2c684aedfa Update README.md 2023-02-06 18:09:57 -07:00
Tonye Jack
2703edcc41 chore: update readme (#971) 2023-02-04 21:44:21 +00:00
Tonye Jack
1a3ea1d324 Upgraded to v35.5.0 (#969)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-02-01 04:01:02 +00:00
Tonye Jack
db3ea27a0c Updated README.md (#968)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-01-31 18:53:59 -07:00
Tonye Jack
fc6ac10d4c Merge branch 'feat/add-support-for-excluding-the-top-level-directory' 2023-01-31 18:42:28 -07:00
Tonye Jack
08f351ba16 feat: add support for excluding the top level directory (#967) 2023-02-01 00:38:55 +00:00
Tonye Jack
aae4005247 Update action.yml 2023-01-31 17:23:32 -07:00
Tonye Jack
eb97e78971 Update test.yml 2023-01-31 17:19:40 -07:00
Tonye Jack
35d9bb6ce9 Updated the test 2023-01-31 17:09:22 -07:00
Tonye Jack
ce8c198347 Updated the test. 2023-01-31 17:06:50 -07:00
Tonye Jack
1982157b6c feat: add support for excluding the top level directory 2023-01-31 16:54:49 -07:00
Tonye Jack
dddfbd694c Update README.md 2023-01-26 11:49:02 -07:00
Tonye Jack
41ed98fdd5 chore: update docs (#964) 2023-01-25 08:14:32 -07:00
renovate[bot]
966bc5f420 chore(deps): update reviewdog/action-shellcheck action to v1.17 (#961)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-21 23:54:28 +00:00
Tonye Jack
ddcadfd11d Upgraded to v35.4.4 (#960)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-19 23:28:17 +00:00
Tonye Jack
299748b520 chore: code clean up (#959) 2023-01-19 22:49:37 +00:00
Tonye Jack
57d9664f8e Update diff-sha.sh 2023-01-19 14:15:50 -07:00
Tonye Jack
653adcf614 fix: revert change to pull pr branch via the branch name (#958) 2023-01-19 14:11:25 -07:00
Tonye Jack
019dd18a51 Update README.md 2023-01-19 08:58:09 -07:00
Tonye Jack
235067705e Upgraded to v35.4.3 (#954)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-18 19:02:34 -07:00
Tonye Jack
f487fc6c7b feat: add guide for retrieving changed files for tags (#955) 2023-01-18 19:02:19 -07:00
Tonye Jack
0953088baa Update diff-sha.sh 2023-01-18 17:44:51 -07:00
Tonye Jack
ddc065bac8 Update diff-sha.sh 2023-01-18 17:42:26 -07:00
Tonye Jack
82b26d6c01 Update diff-sha.sh 2023-01-18 17:05:21 -07:00
Tonye Jack
c54e638a31 Update diff-sha.sh 2023-01-18 16:51:30 -07:00
Tonye Jack
e7bcef0f0b fix: handling since last remote commits for the first pr branch commit (#953) 2023-01-18 23:35:50 +00:00
Tonye Jack
6f8a32e362 Upgraded to v35.4.2 (#951)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-18 19:22:55 +00:00
Tonye Jack
0562b9f865 fix: handle case of invalid file patterns (#950) 2023-01-18 11:54:46 -07:00
Tonye Jack
be519638b0 Update README.md 2023-01-17 17:27:32 -07:00
Tonye Jack
596fc641d0 Update README.md 2023-01-17 17:19:40 -07:00
Tonye Jack
c0c2634976 Update README.md 2023-01-17 05:26:20 -07:00
Tonye Jack
5ac4c9fe42 Updated README.md (#948)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-13 19:34:44 +00:00
Tonye Jack
93ae7c6b6a Update README.md 2023-01-13 12:16:39 -07:00
Tonye Jack
ca8881ae34 Upgraded to v35.4.1 (#946)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-11 23:15:50 +00:00
Tonye Jack
487675b843 fix: bug retrieving diff with custom a base sha (#945)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-01-11 20:58:50 +00:00
Tonye Jack
988322a381 Update diff-sha.sh 2023-01-11 13:36:35 -07:00
Tonye Jack
30649ae7e0 Updated README.md (#943)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
2023-01-10 19:55:11 +00:00
Tonye Jack
52c733bd7b chore: make since_last_remote_commit optional (#942) 2023-01-10 19:38:39 +00:00
Tonye Jack
e6a750f507 Update README.md 2023-01-06 10:58:28 -07:00
Tonye Jack
b1a4c25c63 Updated .github/workflows/update-readme.yml 2023-01-05 22:01:58 -07:00
Tonye Jack
15be594e99 Updated .github/workflows/update-readme.yml 2023-01-05 21:46:20 -07:00
Tonye Jack
5af8560e3b Updated .github/workflows/update-readme.yml 2023-01-05 21:22:49 -07:00
Tonye Jack
ef3b39a58e Updated .github/workflows/update-readme.yml 2023-01-05 21:21:03 -07:00
Tonye Jack
a7850c2ddb Upgraded to v35.4.0 (#937)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-05 20:25:57 +00:00
Chiel Fernhout
9a6dabf8d1 Make example consistent and out of the box usable (#931)
Co-authored-by: Tonye Jack <jtonye@ymail.com>
2023-01-05 19:24:02 +00:00
Tonye Jack
4f9f822a4a Update README.md 2023-01-05 12:09:37 -07:00
Tonye Jack
e5ceb2cea2 Update README.md 2023-01-05 11:20:14 -07:00
Tonye Jack
238f44e1cf Upgraded to v35.3.2 (#936)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-05 11:12:15 -07:00
Tonye Jack
dc4c7d50aa fix: error overriding the base sha (#933) 2023-01-05 11:12:03 -07:00
Tonye Jack
ebf889a3b1 feat: skip fetching remote refs for non shallow clones (#934) 2023-01-05 11:01:14 -07:00
Tonye Jack
45c8d9cb88 Updated README.md (#935)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-05 11:00:54 -07:00
allcontributors[bot]
19b584354a docs: add cfernhout as a contributor for doc (#932)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2023-01-05 10:58:53 -07:00
Tonye Jack
7839ede089 fix(regression): invalid json output. (#930)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-01-05 10:19:06 -07:00
renovate[bot]
15cb0ce053 chore(deps): update actions/checkout action to v3.3.0 (#929)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-01-05 08:19:08 -07:00
Tonye Jack
c50c1e0f0c Update manual-test.yml 2023-01-05 08:17:46 -07:00
Tonye Jack
b6c440bf6f Upgraded to v35.3.1 (#928)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-05 09:32:32 +00:00
Tonye Jack
c2296c1b04 fix: json output (#927) 2023-01-05 02:09:03 -07:00
Tonye Jack
bacda0ec4f Upgraded to v35.3.0 (#925)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-04 20:23:36 -07:00
Tonye Jack
ea251d4d2f fix: bug dirnames output (#923) 2023-01-04 18:13:54 -07:00
renovate[bot]
41e8587ad1 chore(deps): update tj-actions/auto-doc action to v1.7.3 (#922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-04 00:26:33 +00:00
Tonye Jack
6159d43b91 Updated README.md (#921)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-03 00:40:10 -07:00
Tonye Jack
83eb7d0871 Update action.yml 2023-01-03 00:31:55 -07:00
Tonye Jack
e80b1c7e65 Updated README.md (#920)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-02 20:23:37 +00:00
Tonye Jack
4c09115926 Update action.yml 2023-01-02 13:06:25 -07:00
Tonye Jack
3f78288717 Upgraded to v35.2.1 (#919)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-02 06:54:57 +00:00
Tonye Jack
1d1287f9fa Updated README.md (#918)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-01-01 21:41:47 -07:00
Tonye Jack
613e474ee0 Update README.md 2023-01-01 21:40:36 -07:00
Tonye Jack
8125192be8 chore: update readme (#916) 2023-01-02 04:40:19 +00:00
Tonye Jack
d5d55864de Update action.yml 2023-01-01 20:00:39 -07:00
dependabot[bot]
508ea1fe11 Bump tj-actions/auto-doc from 1.7.1 to 1.7.2 (#917)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-01 19:55:51 -07:00
Tonye Jack
dbfd5e10a7 fix: bug running on pull_request_review (#915) 2023-01-01 11:39:47 -07:00
Tonye Jack
4ca6f666de Updated .github/workflows/update-readme.yml 2022-12-30 21:52:25 -07:00
Tonye Jack
20abff4daa Updated README.md (#914)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
2022-12-31 03:59:38 +00:00
renovate[bot]
011c918754 chore(deps): update tj-actions/auto-doc action to v1.7.2 (#913)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-31 03:43:36 +00:00
Tonye Jack
71a44a5c8c Updated README.md (#912)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
2022-12-30 09:34:56 +00:00
renovate[bot]
42b8312161 chore(deps): update tj-actions/auto-doc action to v1.7.1 (#911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-30 09:15:29 +00:00
Tonye Jack
99639db2ad Upgraded to v35.2.0 (#910)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2022-12-30 07:52:59 +00:00
Tonye Jack
392359fc8c chore: update the test (#909) 2022-12-30 07:03:31 +00:00
Tonye Jack
b4afd867a1 Updated README.md (#908)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2022-12-29 22:27:48 -07:00
adonisgarciac
171fd357a8 add raw-output option for json output (#900)
Co-authored-by: Tonye Jack <jtonye@ymail.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-12-29 22:27:08 -07:00
allcontributors[bot]
232c8a3b69 docs: add adonisgarciac as a contributor for code, and doc (#907)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2022-12-29 22:26:57 -07:00
Tonye Jack
8fb979df89 Upgraded to v35.1.2 (#905)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2022-12-29 22:24:18 +00:00
Tonye Jack
7f33882a12 Updated README.md (#904)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2022-12-29 14:58:35 -07:00
Tonye Jack
8aef40ac80 Update action.yml 2022-12-29 14:53:10 -07:00
Tonye Jack
7fcaecbe85 Updated README.md (#903)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
2022-12-29 14:52:22 -07:00
Tonye Jack
8bb2cb2854 feat: add support for excluding matched directories (#902) 2022-12-29 21:50:16 +00:00
renovate[bot]
088336658d chore(deps): update tj-actions/github-changelog-generator action to v1.17 (#899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-28 17:45:55 +00:00
Tonye Jack
57f3d32fad Update test.yml 2022-12-28 10:28:40 -07:00
Tonye Jack
d09f11f8d0 Update test.yml 2022-12-28 09:43:06 -07:00
Tonye Jack
7e8d87b891 Update manual-matrix-test.yml 2022-12-28 09:34:06 -07:00
Tonye Jack
ee6a0bc6dc Upgraded to v35.1.1 (#898)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2022-12-26 16:07:35 +00:00
Tonye Jack
1d8a2f9137 Updated README.md (#897)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
2022-12-26 07:07:22 +00:00
Tonye Jack
8a5f6280e6 chore: update the default sha (#896) 2022-12-26 06:51:17 +00:00
Tonye Jack
61648e78ea Update README.md 2022-12-22 00:22:12 -07:00
Tonye Jack
2693e63ae2 Update README.md 2022-12-20 21:07:01 -07:00
Tonye Jack
ed82d95e3a Upgraded to v35.1.0 (#892)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2022-12-19 19:06:13 +00:00
Tonye Jack
0626c3f940 Updated README.md (#891)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
2022-12-19 11:00:26 -07:00
Tonye Jack
83952deb06 feat: add support for writing outputs to files (#890)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-12-19 17:51:22 +00:00
Tonye Jack
c4bb28b25e Upgraded to v35.0.1 (#889)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2022-12-19 09:32:06 +00:00
15 changed files with 882 additions and 269 deletions

View File

@@ -159,6 +159,25 @@
"contributions": [
"code"
]
},
{
"login": "adonisgarciac",
"name": "adonisgarciac",
"avatar_url": "https://avatars.githubusercontent.com/u/71078987?v=4",
"profile": "https://github.com/adonisgarciac",
"contributions": [
"code",
"doc"
]
},
{
"login": "cfernhout",
"name": "Chiel Fernhout",
"avatar_url": "https://avatars.githubusercontent.com/u/22294606?v=4",
"profile": "https://github.com/cfernhout",
"contributions": [
"doc"
]
}
],
"contributorsPerLine": 7,

View File

@@ -3,6 +3,7 @@ name: Manual Test
on:
workflow_dispatch:
jobs:
test:
name: Test changed-files

View File

@@ -1,7 +1,10 @@
name: Manual Matrix Test
name: Matrix Test
on:
workflow_dispatch:
pull_request:
branches:
- main
jobs:
changed-files:
@@ -13,16 +16,14 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # needed for tj-actions/changed-files
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: ./
with:
json: true
- name: List all changed files
run: |
echo '${{ steps.changed-files.outputs.all_changed_files }}'
run: echo '${{ steps.changed-files.outputs.all_changed_files }}'
- id: set-matrix
run: echo "matrix={\"container\":${{ steps.changed-files.outputs.all_changed_files }}}" >> "$GITHUB_OUTPUT"

View File

@@ -22,7 +22,7 @@ jobs:
paths: |
README.md
- name: Generate CHANGELOG
uses: tj-actions/github-changelog-generator@v1.15
uses: tj-actions/github-changelog-generator@v1.17
with:
output: 'HISTORY.md'
- name: Create Pull Request

View File

@@ -3,7 +3,6 @@ name: CI
on:
push:
branches:
- main
- "**"
pull_request:
types:
@@ -13,8 +12,8 @@ on:
branches:
- main
pull_request_review:
types:
- submitted
branches:
- main
jobs:
shellcheck:
@@ -25,9 +24,7 @@ jobs:
- name: Checkout to branch
uses: actions/checkout@v3
- name: shellcheck
uses: reviewdog/action-shellcheck@v1.16
with:
github_token: ${{ secrets.PAT_TOKEN }}
uses: reviewdog/action-shellcheck@v1.17
test-multiple-repositories:
name: Test with multiple repositories
@@ -213,6 +210,7 @@ jobs:
matrix:
platform: [ubuntu-latest]
fetch-depth: [1, 2]
input-fetch_depth: [1, 50]
steps:
- name: Checkout to branch
@@ -223,6 +221,8 @@ jobs:
- name: Run changed-files
id: changed-files
uses: ./
with:
fetch_depth: ${{ matrix.input-fetch_depth }}
- name: Show output
run: |
@@ -372,6 +372,18 @@ jobs:
echo '${{ toJSON(steps.changed-files-since-last-remote-commit.outputs) }}'
shell:
bash
- name: Run changed-files with write_output_files
id: changed-files-write-output-files
uses: ./
with:
json: true
write_output_files: true
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-write-output-files.outputs.all_changed_files) }}'
cat .github/outputs/all_changed_files.json
shell:
bash
- name: Run changed-files with include_all_old_new_renamed_files
id: changed-files-all-old-new-renamed-files
uses: ./
@@ -437,6 +449,28 @@ jobs:
exit 1
shell:
bash
- name: Run changed-files with dir_names and dir_names_exclude_root
id: changed-files-dir-names-exclude-root
uses: ./
with:
base_sha: dddfbd69
sha: ce8c1983
fetch_depth: 60000
dir_names: "true"
dir_names_exclude_root: "true"
dir_names_max_depth: "1"
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-dir-names-exclude-root.outputs) }}'
shell:
bash
- name: Check dir_names output
if: steps.changed-files-dir-names-exclude-root.outputs.all_changed_files != '.github'
run: |
echo "Invalid output: Expected (.github) got (${{ steps.changed-files-dir-names-exclude-root.outputs.all_changed_files }})"
exit 1
shell:
bash
- name: Run changed-files with dir_names
id: changed-files-dir-names
uses: ./
@@ -451,9 +485,9 @@ jobs:
shell:
bash
- name: Check dir_names output
if: "!contains(steps.changed-files-dir-names.outputs.all_changed_files, 'test')"
if: steps.changed-files-dir-names.outputs.all_changed_files != 'test'
run: |
echo "Invalid output: Expected to include (test) got (${{ steps.changed-files-dir-names.outputs.all_changed_files }})"
echo "Invalid output: Expected (test) got (${{ steps.changed-files-dir-names.outputs.all_changed_files }})"
exit 1
shell:
bash
@@ -472,9 +506,9 @@ jobs:
shell:
bash
- name: Check dir_names output
if: "!contains(steps.changed-files-dir-names-specific.outputs.all_changed_files, 'test')"
if: steps.changed-files-dir-names.outputs.all_changed_files != 'test'
run: |
echo "Invalid output: Expected to include (test) got (${{ steps.changed-files-dir-names-specific.outputs.all_changed_files }})"
echo "Invalid output: Expected (test) got (${{ steps.changed-files-dir-names-specific.outputs.all_changed_files }})"
exit 1
shell:
bash
@@ -519,6 +553,18 @@ jobs:
echo '${{ toJSON(steps.changed-files-json.outputs.all_changed_files) }}'
shell:
bash
- name: Run changed-files with json raw format
id: changed-files-json-raw-format
uses: ./
with:
json: true
json_raw_format: true
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-json-raw-format.outputs) }}'
echo '${{ toJSON(steps.changed-files-json-raw-format.outputs.all_changed_files) }}'
shell:
bash
- name: Run changed-files with comma separator
id: changed-files-comma
uses: ./
@@ -837,8 +883,11 @@ jobs:
(
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'action.yml') &&
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, '.github/workflows/test.yml') &&
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, '.github/workflows/greetings.yml') &&
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'test/test.txt')
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'test/test.txt') &&
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'test/test2/test.txt') &&
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'test/test2/test3/test4/test.txt') &&
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, '[test new].txt') &&
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, '.github/workflows/greetings.yml')
)
run: |
if [[ "${{ steps.changed-files-specific-source-file.outputs.any_changed }}" != "false" ]]; then
@@ -859,8 +908,11 @@ jobs:
(
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'action.yml') &&
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, '.github/workflows/test.yml') &&
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, '.github/workflows/greetings.yml') &&
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'test/test.txt')
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'test/test.txt') &&
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'test/test2/test.txt') &&
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'test/test2/test3/test4/test.txt') &&
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, '[test new].txt') &&
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, '.github/workflows/greetings.yml')
)
run: |
if [[ "${{ steps.changed-files-specific-source-file.outputs.any_modified }}" != "false" ]]; then
@@ -877,7 +929,16 @@ jobs:
shell:
bash
- name: Verify any_deleted from source files
if: "!contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'action.yml') && !contains(steps.changed-files-specific-source-file.outputs.deleted_files, '.github/workflows/test.yml') && !contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'test/test.txt')"
if: |
(
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'action.yml') &&
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, '.github/workflows/test.yml') &&
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'test/test.txt') &&
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'test/test2/test.txt') &&
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'test/test2/test3/test4/test.txt') &&
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, '[test new].txt') &&
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, '.github/workflows/greetings.yml')
)
run: |
if [[ "${{ steps.changed-files-specific-source-file.outputs.any_deleted }}" != "false" ]]; then
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-source-file.outputs.any_deleted }})"
@@ -903,7 +964,15 @@ jobs:
shell:
bash
- name: Verify any_changed files comma separator
if: "!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, 'action.yml') && !contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, '.github/workflows/test.yml') && !contains(steps.changed-files-specific-comma.outputs.all_changed_files, 'test/test.txt')"
if: |
(
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, 'action.yml') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, '.github/workflows/test.yml') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, 'test/test.txt') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, 'test/test2/test.txt') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, 'test/test2/test3/test4/test.txt') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, '[test new].txt')
)
run: |
if [[ "${{ steps.changed-files-specific-comma-source-file.outputs.any_changed }}" != "false" ]]; then
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma-source-file.outputs.any_changed }})"
@@ -912,7 +981,15 @@ jobs:
shell:
bash
- name: Verify any_modified files comma separator
if: "!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, 'action.yml') && !contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, '.github/workflows/test.yml') && !contains(steps.changed-files-specific-comma.outputs.all_modified_files, 'test/test.txt')"
if: |
(
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, 'action.yml') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, '.github/workflows/test.yml') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, 'test/test.txt') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, 'test/test2/test.txt') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, 'test/test2/test3/test4/test.txt') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, '[test new].txt')
)
run: |
if [[ "${{ steps.changed-files-specific-comma-source-file.outputs.any_modified }}" != "false" ]]; then
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma-source-file.outputs.any_modified }})"
@@ -921,7 +998,15 @@ jobs:
shell:
bash
- name: Verify any_deleted files with comma separator
if: "!contains(steps.changed-files-specific-comma-source-file.outputs.deleted_files, 'action.yml') && !contains(steps.changed-files-specific-comma-source-file.outputs.deleted_files, '.github/workflows/test.yml') && !contains(steps.changed-files-specific-comma.outputs.deleted_files, 'test/test.txt')"
if: |
(
!contains(steps.changed-files-specific-comma-source-file.outputs.deleted_files, 'action.yml') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.deleted_files, '.github/workflows/test.yml') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.deleted_files, 'test/test.txt') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.deleted_files, 'test/test2/test.txt') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.deleted_files, 'test/test2/test3/test4/test.txt') &&
!contains(steps.changed-files-specific-comma-source-file.outputs.deleted_files, '[test new].txt')
)
run: |
if [[ "${{ steps.changed-files-specific-comma-source-file.outputs.any_deleted }}" != "false" ]]; then
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma-source-file.outputs.any_deleted }})"
@@ -929,18 +1014,6 @@ jobs:
fi
shell:
bash
- name: Run changed-files with custom sha
id: changed-files-custom-sha
if: github.event_name == 'pull_request' && github.event.action != 'closed'
uses: ./
with:
sha: ${{ github.event.pull_request.head.sha }}
- name: Show output
if: github.event.action != 'closed'
run: |
echo '${{ toJSON(steps.changed-files-custom-sha.outputs) }}'
shell:
bash
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v6
@@ -963,6 +1036,31 @@ jobs:
echo '${{ toJSON(steps.changed-files-custom-base-sha.outputs) }}'
shell:
bash
- name: Run changed-files with custom sha
id: changed-files-custom-sha
if: github.event_name == 'pull_request' && github.event.action != 'closed'
uses: ./
with:
sha: ${{ github.event.pull_request.head.sha }}
- name: Show output
if: github.event.action != 'closed'
run: |
echo '${{ toJSON(steps.changed-files-custom-sha.outputs) }}'
shell:
bash
- name: Run changed-files with the pull request base sha and head sha
id: changed-files-pull-request-base-sha-head-sha
if: github.event_name == 'pull_request' && github.event.action != 'closed'
uses: ./
with:
base_sha: ${{ github.event.pull_request.base.sha }}
sha: ${{ github.event.pull_request.head.sha }}
- name: Show output
if: github.event.action != 'closed'
run: |
echo '${{ toJSON(steps.changed-files-pull-request-base-sha-head-sha.outputs) }}'
shell:
bash
- name: Run changed-files with specific files (only-changed)
id: changed-files-specific-only-changed
uses: ./

View File

@@ -9,14 +9,14 @@ jobs:
sync-assets:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.2.0
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Run auto-doc
uses: tj-actions/auto-doc@v1.6.0
uses: tj-actions/auto-doc@v1
- name: Run test
- name: Run remark
uses: tj-actions/remark@v3
- name: Verify Changed files
@@ -34,7 +34,7 @@ jobs:
- name: Create Pull Request
if: failure()
uses: peter-evans/create-pull-request@v4.2.3
uses: peter-evans/create-pull-request@v4
with:
base: "main"
labels: "merge when passing"

View File

@@ -1,17 +1,280 @@
# Changelog
## [v35.5.2](https://github.com/tj-actions/changed-files/tree/v35.5.2) (2023-02-09)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35...v35.5.2)
## [v35](https://github.com/tj-actions/changed-files/tree/v35) (2023-02-09)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.5.1...v35)
**Fixed bugs:**
- \[BUG\] Unsynced target branch changes listed by action in pull requests [\#972](https://github.com/tj-actions/changed-files/issues/972)
**Merged pull requests:**
- chore: update use of tilde to use caret instead [\#975](https://github.com/tj-actions/changed-files/pull/975) ([jackton1](https://github.com/jackton1))
- Upgraded to v35.5.1 [\#974](https://github.com/tj-actions/changed-files/pull/974) ([jackton1](https://github.com/jackton1))
## [v35.5.1](https://github.com/tj-actions/changed-files/tree/v35.5.1) (2023-02-07)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.5.0...v35.5.1)
**Fixed bugs:**
- \[BUG\] Action started failing [\#970](https://github.com/tj-actions/changed-files/issues/970)
**Merged pull requests:**
- fix: including non branch changes in diff output [\#973](https://github.com/tj-actions/changed-files/pull/973) ([jackton1](https://github.com/jackton1))
- chore: update readme [\#971](https://github.com/tj-actions/changed-files/pull/971) ([jackton1](https://github.com/jackton1))
- Upgraded to v35.5.0 [\#969](https://github.com/tj-actions/changed-files/pull/969) ([jackton1](https://github.com/jackton1))
## [v35.5.0](https://github.com/tj-actions/changed-files/tree/v35.5.0) (2023-02-01)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.4.4...v35.5.0)
**Implemented enhancements:**
- \[Feature\] Exclude the top-level/root directory when dir\_names="true" [\#965](https://github.com/tj-actions/changed-files/issues/965)
- \[Feature\] Exclude Files [\#963](https://github.com/tj-actions/changed-files/issues/963)
- \[Feature\] Rename `files` -\> `paths` \[\#tara-label-enhancement\] \[\#tara-label-good first issue\] [\#125](https://github.com/tj-actions/changed-files/issues/125)
**Fixed bugs:**
- \[BUG\] PR between branch and main - unsynced changes appearing in changed files. [\#966](https://github.com/tj-actions/changed-files/issues/966)
- ::error::Failed to get current commit for submodule [\#962](https://github.com/tj-actions/changed-files/issues/962)
**Closed issues:**
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
**Merged pull requests:**
- Updated README.md [\#968](https://github.com/tj-actions/changed-files/pull/968) ([jackton1](https://github.com/jackton1))
- feat: add support for excluding the top level directory [\#967](https://github.com/tj-actions/changed-files/pull/967) ([jackton1](https://github.com/jackton1))
- chore: update docs [\#964](https://github.com/tj-actions/changed-files/pull/964) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update reviewdog/action-shellcheck action to v1.17 [\#961](https://github.com/tj-actions/changed-files/pull/961) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v35.4.4 [\#960](https://github.com/tj-actions/changed-files/pull/960) ([jackton1](https://github.com/jackton1))
- chore: code clean up [\#959](https://github.com/tj-actions/changed-files/pull/959) ([jackton1](https://github.com/jackton1))
## [v35.4.4](https://github.com/tj-actions/changed-files/tree/v35.4.4) (2023-01-19)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.4.3...v35.4.4)
**Fixed bugs:**
- \[BUG\] Action is evaluating branch instead of sha [\#957](https://github.com/tj-actions/changed-files/issues/957)
- \[BUG\] Unable to run on windows self-hosted runner [\#956](https://github.com/tj-actions/changed-files/issues/956)
**Closed issues:**
- Comparing differences between tags/releases [\#949](https://github.com/tj-actions/changed-files/issues/949)
**Merged pull requests:**
- fix: revert change to pull pr branch via the branch name [\#958](https://github.com/tj-actions/changed-files/pull/958) ([jackton1](https://github.com/jackton1))
- feat: add guide for retrieving changed files for tags [\#955](https://github.com/tj-actions/changed-files/pull/955) ([jackton1](https://github.com/jackton1))
- Upgraded to v35.4.3 [\#954](https://github.com/tj-actions/changed-files/pull/954) ([jackton1](https://github.com/jackton1))
## [v35.4.3](https://github.com/tj-actions/changed-files/tree/v35.4.3) (2023-01-19)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.4.2...v35.4.3)
**Fixed bugs:**
- \[BUG\] Files not found when not last commit on new branch [\#952](https://github.com/tj-actions/changed-files/issues/952)
- \[BUG\] `changed-files` error during run [\#875](https://github.com/tj-actions/changed-files/issues/875)
**Merged pull requests:**
- fix: handling since last remote commits for the first pr branch commit [\#953](https://github.com/tj-actions/changed-files/pull/953) ([jackton1](https://github.com/jackton1))
- Upgraded to v35.4.2 [\#951](https://github.com/tj-actions/changed-files/pull/951) ([jackton1](https://github.com/jackton1))
## [v35.4.2](https://github.com/tj-actions/changed-files/tree/v35.4.2) (2023-01-18)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.4.1...v35.4.2)
**Fixed bugs:**
- \[BUG\] Unable find a diff between ... [\#944](https://github.com/tj-actions/changed-files/issues/944)
**Merged pull requests:**
- fix: handle case of invalid file patterns [\#950](https://github.com/tj-actions/changed-files/pull/950) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#948](https://github.com/tj-actions/changed-files/pull/948) ([jackton1](https://github.com/jackton1))
- Upgraded to v35.4.1 [\#946](https://github.com/tj-actions/changed-files/pull/946) ([jackton1](https://github.com/jackton1))
## [v35.4.1](https://github.com/tj-actions/changed-files/tree/v35.4.1) (2023-01-11)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.4.0...v35.4.1)
**Implemented enhancements:**
- \[Feature\] Specify base branch, not just base-sha [\#941](https://github.com/tj-actions/changed-files/issues/941)
- \[Feature\] Get contents of deleted file [\#938](https://github.com/tj-actions/changed-files/issues/938)
**Merged pull requests:**
- fix: bug retrieving diff with custom a base sha [\#945](https://github.com/tj-actions/changed-files/pull/945) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#943](https://github.com/tj-actions/changed-files/pull/943) ([jackton1](https://github.com/jackton1))
- chore: make since\_last\_remote\_commit optional [\#942](https://github.com/tj-actions/changed-files/pull/942) ([jackton1](https://github.com/jackton1))
- Upgraded to v35.4.0 [\#937](https://github.com/tj-actions/changed-files/pull/937) ([jackton1](https://github.com/jackton1))
## [v35.4.0](https://github.com/tj-actions/changed-files/tree/v35.4.0) (2023-01-05)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.3.2...v35.4.0)
**Implemented enhancements:**
- \[Feature\] Skip fetching remote refs for non shallow clones [\#924](https://github.com/tj-actions/changed-files/issues/924)
**Fixed bugs:**
- \[BUG\] v35.3.0 Fails to add \[\] around files when with:json: true [\#926](https://github.com/tj-actions/changed-files/issues/926)
**Merged pull requests:**
- Upgraded to v35.3.2 [\#936](https://github.com/tj-actions/changed-files/pull/936) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#935](https://github.com/tj-actions/changed-files/pull/935) ([jackton1](https://github.com/jackton1))
- feat: skip fetching remote refs for non shallow clones [\#934](https://github.com/tj-actions/changed-files/pull/934) ([jackton1](https://github.com/jackton1))
- fix: error overriding the base sha [\#933](https://github.com/tj-actions/changed-files/pull/933) ([jackton1](https://github.com/jackton1))
- docs: add cfernhout as a contributor for doc [\#932](https://github.com/tj-actions/changed-files/pull/932) ([allcontributors[bot]](https://github.com/apps/allcontributors))
- Make example consistent and out of the box usable [\#931](https://github.com/tj-actions/changed-files/pull/931) ([cfernhout](https://github.com/cfernhout))
## [v35.3.2](https://github.com/tj-actions/changed-files/tree/v35.3.2) (2023-01-05)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.3.1...v35.3.2)
**Merged pull requests:**
- fix\(regression\): invalid json output. [\#930](https://github.com/tj-actions/changed-files/pull/930) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update actions/checkout action to v3.3.0 [\#929](https://github.com/tj-actions/changed-files/pull/929) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v35.3.1 [\#928](https://github.com/tj-actions/changed-files/pull/928) ([jackton1](https://github.com/jackton1))
## [v35.3.1](https://github.com/tj-actions/changed-files/tree/v35.3.1) (2023-01-05)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.3.0...v35.3.1)
**Fixed bugs:**
- \[BUG\] `files_ignore` used with `files` not ignoring as expected [\#901](https://github.com/tj-actions/changed-files/issues/901)
**Merged pull requests:**
- fix: json output [\#927](https://github.com/tj-actions/changed-files/pull/927) ([jackton1](https://github.com/jackton1))
- Upgraded to v35.3.0 [\#925](https://github.com/tj-actions/changed-files/pull/925) ([jackton1](https://github.com/jackton1))
## [v35.3.0](https://github.com/tj-actions/changed-files/tree/v35.3.0) (2023-01-05)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.2.1...v35.3.0)
**Merged pull requests:**
- fix: bug dirnames output [\#923](https://github.com/tj-actions/changed-files/pull/923) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update tj-actions/auto-doc action to v1.7.3 [\#922](https://github.com/tj-actions/changed-files/pull/922) ([renovate[bot]](https://github.com/apps/renovate))
- Updated README.md [\#921](https://github.com/tj-actions/changed-files/pull/921) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#920](https://github.com/tj-actions/changed-files/pull/920) ([jackton1](https://github.com/jackton1))
- Upgraded to v35.2.1 [\#919](https://github.com/tj-actions/changed-files/pull/919) ([jackton1](https://github.com/jackton1))
## [v35.2.1](https://github.com/tj-actions/changed-files/tree/v35.2.1) (2023-01-02)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.2.0...v35.2.1)
**Fixed bugs:**
- \[BUG\] On pull\_request\_review error [\#906](https://github.com/tj-actions/changed-files/issues/906)
**Merged pull requests:**
- Updated README.md [\#918](https://github.com/tj-actions/changed-files/pull/918) ([jackton1](https://github.com/jackton1))
- Bump tj-actions/auto-doc from 1.7.1 to 1.7.2 [\#917](https://github.com/tj-actions/changed-files/pull/917) ([dependabot[bot]](https://github.com/apps/dependabot))
- chore: update readme [\#916](https://github.com/tj-actions/changed-files/pull/916) ([jackton1](https://github.com/jackton1))
- fix: bug running on pull\_request\_review [\#915](https://github.com/tj-actions/changed-files/pull/915) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#914](https://github.com/tj-actions/changed-files/pull/914) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update tj-actions/auto-doc action to v1.7.2 [\#913](https://github.com/tj-actions/changed-files/pull/913) ([renovate[bot]](https://github.com/apps/renovate))
- Updated README.md [\#912](https://github.com/tj-actions/changed-files/pull/912) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update tj-actions/auto-doc action to v1.7.1 [\#911](https://github.com/tj-actions/changed-files/pull/911) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v35.2.0 [\#910](https://github.com/tj-actions/changed-files/pull/910) ([jackton1](https://github.com/jackton1))
## [v35.2.0](https://github.com/tj-actions/changed-files/tree/v35.2.0) (2022-12-30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.1.2...v35.2.0)
**Merged pull requests:**
- chore: update the test [\#909](https://github.com/tj-actions/changed-files/pull/909) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#908](https://github.com/tj-actions/changed-files/pull/908) ([jackton1](https://github.com/jackton1))
- docs: add adonisgarciac as a contributor for code, and doc [\#907](https://github.com/tj-actions/changed-files/pull/907) ([allcontributors[bot]](https://github.com/apps/allcontributors))
- Upgraded to v35.1.2 [\#905](https://github.com/tj-actions/changed-files/pull/905) ([jackton1](https://github.com/jackton1))
- add raw-output option for json output [\#900](https://github.com/tj-actions/changed-files/pull/900) ([adonisgarciac](https://github.com/adonisgarciac))
## [v35.1.2](https://github.com/tj-actions/changed-files/tree/v35.1.2) (2022-12-29)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.1.1...v35.1.2)
**Merged pull requests:**
- Updated README.md [\#904](https://github.com/tj-actions/changed-files/pull/904) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#903](https://github.com/tj-actions/changed-files/pull/903) ([jackton1](https://github.com/jackton1))
- feat: add support for excluding matched directories [\#902](https://github.com/tj-actions/changed-files/pull/902) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update tj-actions/github-changelog-generator action to v1.17 [\#899](https://github.com/tj-actions/changed-files/pull/899) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v35.1.1 [\#898](https://github.com/tj-actions/changed-files/pull/898) ([jackton1](https://github.com/jackton1))
## [v35.1.1](https://github.com/tj-actions/changed-files/tree/v35.1.1) (2022-12-26)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.1.0...v35.1.1)
**Implemented enhancements:**
- \[Feature\] Output which file changed from files input [\#895](https://github.com/tj-actions/changed-files/issues/895)
**Fixed bugs:**
- pipeline failed in tj-action [\#894](https://github.com/tj-actions/changed-files/issues/894)
**Merged pull requests:**
- Updated README.md [\#897](https://github.com/tj-actions/changed-files/pull/897) ([jackton1](https://github.com/jackton1))
- chore: update the default sha [\#896](https://github.com/tj-actions/changed-files/pull/896) ([jackton1](https://github.com/jackton1))
- Upgraded to v35.1.0 [\#892](https://github.com/tj-actions/changed-files/pull/892) ([jackton1](https://github.com/jackton1))
## [v35.1.0](https://github.com/tj-actions/changed-files/tree/v35.1.0) (2022-12-19)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.0.1...v35.1.0)
**Implemented enhancements:**
- \[Feature\] Output changes to json files in filesystem for processing [\#688](https://github.com/tj-actions/changed-files/issues/688)
**Merged pull requests:**
- Updated README.md [\#891](https://github.com/tj-actions/changed-files/pull/891) ([jackton1](https://github.com/jackton1))
- feat: add support for writing outputs to files [\#890](https://github.com/tj-actions/changed-files/pull/890) ([jackton1](https://github.com/jackton1))
- Upgraded to v35.0.1 [\#889](https://github.com/tj-actions/changed-files/pull/889) ([jackton1](https://github.com/jackton1))
## [v35.0.1](https://github.com/tj-actions/changed-files/tree/v35.0.1) (2022-12-19)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.0.0...v35.0.1)
**Implemented enhancements:**
- Changed lines of modified files [\#858](https://github.com/tj-actions/changed-files/issues/858)
**Merged pull requests:**
- chore: update test [\#888](https://github.com/tj-actions/changed-files/pull/888) ([jackton1](https://github.com/jackton1))
- chore: code cleanup [\#887](https://github.com/tj-actions/changed-files/pull/887) ([jackton1](https://github.com/jackton1))
- Upgraded to v35 [\#886](https://github.com/tj-actions/changed-files/pull/886) ([jackton1](https://github.com/jackton1))
## [v35.0.0](https://github.com/tj-actions/changed-files/tree/v35.0.0) (2022-12-19)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35...v35.0.0)
## [v35](https://github.com/tj-actions/changed-files/tree/v35) (2022-12-19)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.6.2...v35)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.6.2...v35.0.0)
**Fixed bugs:**
- \[BUG\] Process completed with exit code 1 [\#884](https://github.com/tj-actions/changed-files/issues/884)
- \[BUG\] `changed-files` error during run [\#875](https://github.com/tj-actions/changed-files/issues/875)
**Closed issues:**
@@ -36,10 +299,6 @@
- \[BUG\] github actions has depreciated and will remove a feature used in this action 'set-output' see link [\#865](https://github.com/tj-actions/changed-files/issues/865)
**Closed issues:**
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
**Merged pull requests:**
- fix: bug using since\_last\_remote\_commit with force push [\#877](https://github.com/tj-actions/changed-files/pull/877) ([jackton1](https://github.com/jackton1))
@@ -256,7 +515,7 @@
## [v34.3.3](https://github.com/tj-actions/changed-files/tree/v34.3.3) (2022-11-08)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.3.1...v34.3.3)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.3.2...v34.3.3)
**Fixed bugs:**
@@ -271,13 +530,13 @@
- chore: update readme [\#784](https://github.com/tj-actions/changed-files/pull/784) ([jackton1](https://github.com/jackton1))
- Upgraded to v34.3.2 [\#781](https://github.com/tj-actions/changed-files/pull/781) ([jackton1](https://github.com/jackton1))
## [v34.3.1](https://github.com/tj-actions/changed-files/tree/v34.3.1) (2022-11-07)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.3.2...v34.3.1)
## [v34.3.2](https://github.com/tj-actions/changed-files/tree/v34.3.2) (2022-11-07)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.3.0...v34.3.2)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.3.1...v34.3.2)
## [v34.3.1](https://github.com/tj-actions/changed-files/tree/v34.3.1) (2022-11-07)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.3.0...v34.3.1)
**Fixed bugs:**
@@ -559,7 +818,7 @@
- Updated README.md [\#674](https://github.com/tj-actions/changed-files/pull/674) ([jackton1](https://github.com/jackton1))
- add kostiantyn-korniienko-aurea as a contributor for doc [\#673](https://github.com/tj-actions/changed-files/pull/673) ([allcontributors[bot]](https://github.com/apps/allcontributors))
- TYPO fix [\#671](https://github.com/tj-actions/changed-files/pull/671) ([kostiantyn-korniienko-aurea](https://github.com/kostiantyn-korniienko-aurea))
- TYPO fix [\#671](https://github.com/tj-actions/changed-files/pull/671) ([kostiantyn-korniienko](https://github.com/kostiantyn-korniienko))
- chore\(deps\): update tj-actions/glob action to v14 [\#670](https://github.com/tj-actions/changed-files/pull/670) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update actions/checkout action to v3.1.0 [\#669](https://github.com/tj-actions/changed-files/pull/669) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v31.0.3 [\#667](https://github.com/tj-actions/changed-files/pull/667) ([jackton1](https://github.com/jackton1))
@@ -610,7 +869,7 @@
## [v31.0.0](https://github.com/tj-actions/changed-files/tree/v31.0.0) (2022-09-25)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v30.0.0...v31.0.0)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v30...v31.0.0)
**Merged pull requests:**
@@ -623,13 +882,13 @@
- chore: update broken link [\#642](https://github.com/tj-actions/changed-files/pull/642) ([jackton1](https://github.com/jackton1))
- Upgraded to v30.0.0 [\#641](https://github.com/tj-actions/changed-files/pull/641) ([jackton1](https://github.com/jackton1))
## [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/v30...v30.0.0)
## [v30](https://github.com/tj-actions/changed-files/tree/v30) (2022-09-24)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.9...v30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v30.0.0...v30)
## [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.0.9...v30.0.0)
**Fixed bugs:**
@@ -1576,7 +1835,7 @@
## [v12](https://github.com/tj-actions/changed-files/tree/v12) (2021-12-14)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11...v12)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.9...v12)
**Implemented enhancements:**
@@ -1594,13 +1853,13 @@
- \[PR 1\]: Renamed all\_modified\_files to all\_changed\_files [\#283](https://github.com/tj-actions/changed-files/pull/283) ([jackton1](https://github.com/jackton1))
- Upgraded to v11.9 [\#280](https://github.com/tj-actions/changed-files/pull/280) ([jackton1](https://github.com/jackton1))
## [v11](https://github.com/tj-actions/changed-files/tree/v11) (2021-12-04)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.9...v11)
## [v11.9](https://github.com/tj-actions/changed-files/tree/v11.9) (2021-12-04)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v1.3.1...v11.9)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11...v11.9)
## [v11](https://github.com/tj-actions/changed-files/tree/v11) (2021-12-04)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v1.3.1...v11)
**Implemented enhancements:**
@@ -1689,7 +1948,7 @@
## [v1.2.1](https://github.com/tj-actions/changed-files/tree/v1.2.1) (2021-11-08)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.5...v1.2.1)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v1.2.0...v1.2.1)
**Implemented enhancements:**
@@ -1703,13 +1962,13 @@
- Update actions/checkout action to v2.4.0 [\#243](https://github.com/tj-actions/changed-files/pull/243) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v11.5 [\#241](https://github.com/tj-actions/changed-files/pull/241) ([jackton1](https://github.com/jackton1))
## [v11.5](https://github.com/tj-actions/changed-files/tree/v11.5) (2021-10-30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v1.2.0...v11.5)
## [v1.2.0](https://github.com/tj-actions/changed-files/tree/v1.2.0) (2021-10-30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.4...v1.2.0)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.5...v1.2.0)
## [v11.5](https://github.com/tj-actions/changed-files/tree/v11.5) (2021-10-30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.4...v11.5)
**Merged pull requests:**

209
README.md
View File

@@ -9,7 +9,7 @@
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-17-orange.svg?style=flat-square)](#contributors-)
[![All Contributors](https://img.shields.io/badge/all_contributors-19-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
@@ -19,13 +19,14 @@ Retrieve all changed files and directories relative to the target branch or the
## Features
* Fast execution (0-2 seconds on average).
* Fast execution (0-10 seconds on average).
* Easy to debug.
* Scales to large repositories.
* Git submodules support.
* Supports Git submodules.
* Escaped JSON Output which can be used for running matrix jobs based on changed files.
* Optionally list only changed directories.
* List changed directories.
* Restrict the max depth of changed directories.
* Write outputs to files at a specified location for further processing.
* Monorepos (Fetches only the last remote commit).
* Supports all platforms (Linux, MacOS, Windows).
* [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners) support
@@ -38,6 +39,7 @@ Retrieve all changed files and directories relative to the target branch or the
* Restrict change detection to a subset of files and directories:
* Boolean output indicating that certain files have been changed.
* Using [Glob pattern](https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet) matching.
* Brace expansion.
## Usage
@@ -47,23 +49,23 @@ Retrieve all changed files and directories relative to the target branch or the
> * For monorepos where pulling all the branch history might not be desired, you can omit `fetch-depth` for `pull_request` events.
> * For files located in a sub-directory ensure that the pattern specified contains `**/` (globstar) to match any preceding directories or explicitly pass the full path relative to the project root. See: [#314](https://github.com/tj-actions/changed-files/issues/314).
> * All multiline inputs should not use double or single qoutes since the value is already a string seperated by a newline character. See [Examples](#examples) for more information.
> * Ensure that `persist-credentials` is set to `true` when configuring `actions/checkout` if `fetch-depth` isn't set to `0`.
```yaml
name: CI
on:
# Compare the preceeding commit of main -> to the current commit of the main branch.
# (Note: To compare changes between the last pushed commit to the remote main branch set `since_last_remote_commit: true`)
# Compare the preceeding commit -> to the current commit of the main branch.
# (Note: To compare changes between the current commit to the last pushed remote commit of the main branch set `since_last_remote_commit: true`)
push:
branches:
- main
# Compare the last commit of main -> to the current commit of a PR branch.
# (Note: To compare changes between the last pushed commit to the remote PR branch set `since_last_remote_commit: true`)
# Compare the last commit of main -> to the current commit of a PR branch.
# (Note: To compare changes between the current commit to the last pushed remote commit of a PR branch set `since_last_remote_commit: true`)
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest # windows-latest | macos-latest
@@ -89,17 +91,29 @@ jobs:
id: changed-files-specific
uses: tj-actions/changed-files@v35
with:
files: |
docs/**
files: docs/*.{js,html} # Alternatively using: `docs/**` or `docs`
- name: Run step if any file(s) in the docs folder change
if: steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "One or more files in the docs folder has changed."
echo "List all the files that have changed: ${{ steps.changed-files-specific.outputs.all_changed_files }}"
```
# Example 3
- name: Get changed js files excluding the docs folder
id: changed-files-excluded
uses: tj-actions/changed-files@v35
with:
files: |
**/*.js
files_ignore: docs/** # Alternatively using: `docs`
I want to thank everyone supporting and using this project, your are awesome. Special thanks to every contributor.
- name: Run step if any other js file(s) change
if: steps.changed-files-excluded.outputs.any_changed == 'true'
run: |
echo "One or more js files not in the doc folder has changed."
echo "List all the files that have changed: ${{ steps.changed-files-excluded.outputs.all_changed_files }}"
```
If you feel generous and want to show some extra appreciation:
@@ -128,29 +142,29 @@ Support this project with a :star:
<!-- AUTO-DOC-OUTPUT:START - Do not remove or modify this section -->
| OUTPUT | TYPE | DESCRIPTION |
|--------------------------------|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| added\_files | string | Returns only files that are Added (A).<br> |
| all\_changed\_and\_modified\_files | string | Returns all changed and modified files i.e.<br>*a combination of (ACMRDTUX)* |
| all\_changed\_files | string | Returns all changed files i.e. *a combination<br>of all added, copied, modified and renamed<br>files (ACMR)* |
| all\_modified\_files | string | Returns all changed files i.e. *a combination<br>of all added, copied, modified, renamed and<br>deleted files (ACMRD)*. |
| all\_old\_new\_renamed\_files | string | Returns only files that are Renamed and<br>list their old and new names. **NOTE:**<br>This requires setting `include_all_old_new_renamed_files` to `true` (R)<br> |
| any\_changed | string | Returns `true` when any of the filenames<br>provided using the `files` input has changed.<br>If no `files` have been specified,an empty<br>string `''` is returned. i.e. *using a<br>combination of all added, copied, modified and<br>renamed files (ACMR)*. |
| any\_deleted | string | Returns `true` when any of the filenames<br>provided using the `files` input has been<br>deleted. If no `files` have been specified,an<br>empty string `''` is returned. (D) |
| any\_modified | string | Returns `true` when any of the filenames<br>provided using the `files` input has been<br>modified. If no `files` have been specified,an<br>empty string `''` is returned. i.e. *using<br>a combination of all added, copied, modified,<br>renamed, and deleted files (ACMRD)*. |
| copied\_files | string | Returns only files that are Copied (C).<br> |
| deleted\_files | string | Returns only files that are Deleted (D).<br> |
| modified\_files | string | Returns only files that are Modified (M).<br> |
| only\_changed | string | Returns `true` when only files provided using<br>the `files` input has changed. If no<br>`files` have been specified,an empty string `''`<br>is returned. i.e. *using a combination of<br>all added, copied, modified and renamed files<br>(ACMR)*. |
| only\_deleted | string | Returns `true` when only files provided using<br>the `files` input has been deleted. If<br>no `files` have been specified,an empty string<br>`''` is returned. (D) |
| only\_modified | string | Returns `true` when only files provided using<br>the `files` input has been modified. If<br>no `files` have been specified,an empty string<br>`''` is returned.(ACMRD). |
| other\_changed\_files | string | Returns all other changed files not listed<br>in the files input i.e. *using a<br>combination of all added, copied, modified and<br>renamed files (ACMR)*. |
| other\_deleted\_files | string | Returns all other deleted files not listed<br>in the files input i.e. *a combination<br>of all deleted files (D)* |
| other\_modified\_files | string | Returns all other modified files not listed<br>in the files input i.e. *a combination<br>of all added, copied, modified, and deleted<br>files (ACMRD)* |
| renamed\_files | string | Returns only files that are Renamed (R).<br> |
| type\_changed\_files | string | Returns only files that have their file<br>type changed (T). |
| unknown\_files | string | Returns only files that are Unknown (X).<br> |
| unmerged\_files | string | Returns only files that are Unmerged (U).<br> |
| OUTPUT | TYPE | DESCRIPTION |
|--------------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| added\_files | string | Returns only files that are Added<br>(A). |
| all\_changed\_and\_modified\_files | string | Returns all changed and modified files<br>i.e. *a combination of (ACMRDTUX)* |
| all\_changed\_files | string | Returns all changed files i.e. *a<br> combination of all added, copied, modified<br>and renamed files (ACMR)* |
| all\_modified\_files | string | Returns all changed files i.e. *a<br> combination of all added, copied, modified,<br>renamed and deleted files (ACMRD)*. |
| all\_old\_new\_renamed\_files | string | Returns only files that are Renamed<br> and list their old and new<br> names. **NOTE:** This requires setting `include_all_old_new_renamed_files`<br>to `true` (R) |
| any\_changed | string | Returns `true` when any of the<br> filenames provided using the `files` input<br> has changed. If no `files` have<br> been specified,an empty string `''` is<br> returned. i.e. *using a combination of<br> all added, copied, modified and renamed<br>files (ACMR)*. |
| any\_deleted | string | Returns `true` when any of the<br> filenames provided using the `files` input<br> has been deleted. If no `files`<br> have been specified,an empty string `''`<br>is returned. (D) |
| any\_modified | string | Returns `true` when any of the<br> filenames provided using the `files` input<br> has been modified. If no `files`<br> have been specified,an empty string `''`<br> is returned. i.e. *using a combination<br> of all added, copied, modified, renamed,<br>and deleted files (ACMRD)*. |
| copied\_files | string | Returns only files that are Copied<br>(C). |
| deleted\_files | string | Returns only files that are Deleted<br>(D). |
| modified\_files | string | Returns only files that are Modified<br>(M). |
| only\_changed | string | Returns `true` when only files provided<br> using the `files` input has changed.<br> If no `files` have been specified,an<br> empty string `''` is returned. i.e.<br> *using a combination of all added,<br>copied, modified and renamed files (ACMR)*. |
| only\_deleted | string | Returns `true` when only files provided<br> using the `files` input has been<br> deleted. If no `files` have been<br> specified,an empty string `''` is returned.<br>(D) |
| only\_modified | string | Returns `true` when only files provided<br> using the `files` input has been<br> modified. If no `files` have been<br>specified,an empty string `''` is returned.(ACMRD). |
| other\_changed\_files | string | Returns all other changed files not<br> listed in the files input i.e.<br> *using a combination of all added,<br>copied, modified and renamed files (ACMR)*. |
| other\_deleted\_files | string | Returns all other deleted files not<br> listed in the files input i.e.<br> *a combination of all deleted files<br>(D)* |
| other\_modified\_files | string | Returns all other modified files not<br> listed in the files input i.e.<br> *a combination of all added, copied,<br>modified, and deleted files (ACMRD)* |
| renamed\_files | string | Returns only files that are Renamed<br>(R). |
| type\_changed\_files | string | Returns only files that have their<br>file type changed (T). |
| unknown\_files | string | Returns only files that are Unknown<br>(X). |
| unmerged\_files | string | Returns only files that are Unmerged<br>(U). |
<!-- AUTO-DOC-OUTPUT:END -->
@@ -158,30 +172,35 @@ Support this project with a :star:
<!-- AUTO-DOC-INPUT:START - Do not remove or modify this section -->
| INPUT | TYPE | REQUIRED | DEFAULT | DESCRIPTION |
|-----------------------------------|--------|----------|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| base\_sha | string | false | | Specify a different base commit SHA used<br>for comparing changes |
| diff\_relative | string | false | | Exclude changes outside the current directory and<br>show path names relative to it. **NOTE:**<br>This requires you to specify the top<br>level directory via the `path` input. |
| dir\_names | string | false | `"false"` | Output unique changed directories instead of filenames.<br>**NOTE:** This returns `.` for changed files<br>located in the root of the project.<br> |
| dir\_names\_max\_depth | string | false | | Maximum depth of directories to output. e.g<br>`test/test1/test2` with max depth of `2` returns<br>`test/test1`. |
| fetch\_depth | string | false | `"50"` | Depth of additional branch history fetched. **NOTE**:<br>This can be adjusted to resolve errors<br>with insufficient history. |
| files | string | false | | File and directory patterns to detect changes<br>using only these list of file(s) (Defaults<br>to the entire repo) **NOTE:** Multiline file/directory<br>patterns should not include quotes. |
| files\_from\_source\_file | string | false | | Source file(s) used to populate the `files`<br>input. |
| files\_ignore | string | false | | Ignore changes to these file(s) **NOTE:** Multiline<br>file/directory patterns should not include quotes. |
| files\_ignore\_from\_source\_file | string | false | | Source file(s) used to populate the `files_ignore`<br>input |
| files\_ignore\_separator | string | false | `"\n"` | Separator used to split the `files_ignore` input<br> |
| files\_separator | string | false | `"\n"` | Separator used to split the `files` input<br> |
| include\_all\_old\_new\_renamed\_files | string | false | `"false"` | Include `all_old_new_renamed_files` output. Note this can generate<br>a large output See: [#501](https://github.com/tj-actions/changed-files/issues/501). |
| json | string | false | `"false"` | Output list of changed files in a<br>JSON formatted string which can be used<br>for matrix jobs. |
| old\_new\_files\_separator | string | false | `" "` | Split character for old and new renamed<br>filename pairs. |
| old\_new\_separator | string | false | `","` | Split character for old and new filename<br>pairs. |
| path | string | false | `"."` | Specify a relative path under `$GITHUB_WORKSPACE` to<br>locate the repository. |
| quotepath | string | false | `"true"` | Use non ascii characters to match files<br>and output the filenames completely verbatim by<br>setting this to `false` |
| separator | string | false | `" "` | Split character for output strings |
| sha | string | false | `"${{ github.sha }}"` | Specify a different commit SHA used for<br>comparing changes |
| since | string | false | | Get changed files for commits whose timestamp<br>is older than the given time. |
| since\_last\_remote\_commit | string | true | `"false"` | Use the last commit on the remote<br>branch as the `base_sha`. Defaults to the<br>last non merge commit on the target<br>branch for pull request events and the<br>previous remote commit of the current branch<br>for push events. |
| until | string | false | | Get changed files for commits whose timestamp<br>is earlier than the given time. |
| INPUT | TYPE | REQUIRED | DEFAULT | DESCRIPTION |
|-----------------------------------|--------|----------|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| base\_sha | string | false | | Specify a different base commit SHA<br>used for comparing changes |
| diff\_relative | string | false | | Exclude changes outside the current directory<br> and show path names relative to<br> it. **NOTE:** This requires you to<br> specify the top level directory via<br>the `path` input. |
| dir\_names | string | false | `"false"` | Output unique changed directories instead of<br> filenames. **NOTE:** This returns `.` for<br> changed files located in the root<br>of the project. |
| dir\_names\_exclude\_root | string | false | `"false"` | Exclude the root directory represented by<br> `.` from the output when `dir_names`is<br>set to `true`. |
| dir\_names\_max\_depth | string | false | | Maximum depth of directories to output.<br> e.g `test/test1/test2` with max depth of<br>`2` returns `test/test1`. |
| fetch\_depth | string | false | `"50"` | Depth of additional branch history fetched.<br> **NOTE**: This can be adjusted to<br>resolve errors with insufficient history. |
| files | string | false | | File and directory patterns to detect<br> changes using only these list of<br> file(s) (Defaults to the entire repo)<br> **NOTE:** Multiline file/directory patterns should not<br>include quotes. |
| files\_from\_source\_file | string | false | | Source file(s) used to populate the<br>`files` input. |
| files\_ignore | string | false | | Ignore changes to these file(s) **NOTE:**<br> Multiline file/directory patterns should not include<br>quotes. |
| files\_ignore\_from\_source\_file | string | false | | Source file(s) used to populate the<br>`files_ignore` input |
| files\_ignore\_separator | string | false | `"\n"` | Separator used to split the `files_ignore`<br>input |
| files\_separator | string | false | `"\n"` | Separator used to split the `files`<br>input |
| include\_all\_old\_new\_renamed\_files | string | false | `"false"` | Include `all_old_new_renamed_files` output. Note this can<br>generate a large output See: [#501](https://github.com/tj-actions/changed-files/issues/501). |
| json | string | false | `"false"` | Output list of changed files in<br> a JSON formatted string which can<br>be used for matrix jobs. |
| json\_raw\_format | string | false | `"false"` | Output list of changed files in<br> [jq](https://devdocs.io/jq/) raw output format which means that the output will not be<br> surrounded by quotes and special characters<br>will not be escaped. |
| match\_directories | string | false | `"true"` | Indicates whether to include match directories |
| old\_new\_files\_separator | string | false | `" "` | Split character for old and new<br>renamed filename pairs. |
| old\_new\_separator | string | false | `","` | Split character for old and new<br>filename pairs. |
| output\_dir | string | false | `".github/outputs"` | Directory to store output files. |
| path | string | false | `"."` | Specify a relative path under `$GITHUB_WORKSPACE`<br>to locate the repository. |
| quotepath | string | false | `"true"` | Use non ascii characters to match<br> files and output the filenames completely<br>verbatim by setting this to `false` |
| separator | string | false | `" "` | Split character for output strings |
| sha | string | false | | Specify a different commit SHA used<br>for comparing changes |
| since | string | false | | Get changed files for commits whose<br> timestamp is older than the given<br>time. |
| since\_last\_remote\_commit | string | false | `"false"` | Use the last commit on the<br> remote branch as the `base_sha`. Defaults<br> to the last non merge commit<br> on the target branch for pull<br> request events and the previous remote<br> commit of the current branch for<br>push events. |
| until | string | false | | Get changed files for commits whose<br> timestamp is earlier than the given<br>time. |
| write\_output\_files | string | false | `"false"` | Write outputs to files in the<br>`.github/outputs` folder by default. |
<!-- AUTO-DOC-INPUT:END -->
@@ -225,7 +244,7 @@ See [inputs](#inputs) for more information.
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v35
- name: List all added files
run: |
for file in ${{ steps.changed-files.outputs.added_files }}; do
@@ -282,12 +301,12 @@ See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files using a list of files and take action base on the changes</summary>
<summary>Get all changed files using a list of files and take action based on the changes</summary>
```yaml
...
- name: Get changed files
id: changed-files
id: changed-files-specific
uses: tj-actions/changed-files@v35
with:
files: |
@@ -309,16 +328,16 @@ See [inputs](#inputs) for more information.
echo "Only files listed above have changed."
- name: Run step if any of the listed files above is deleted
if: steps.changed-files.outputs.any_deleted == 'true'
if: steps.changed-files-specific.outputs.any_deleted == 'true'
run: |
for file in ${{ steps.changed-files.outputs.deleted_files }}; do
for file in ${{ steps.changed-files-specific.outputs.deleted_files }}; do
echo "$file was deleted"
done
- name: Run step if all listed files above have been deleted
if: steps.changed-files.outputs.only_deleted == 'true'
if: steps.changed-files-specific.outputs.only_deleted == 'true'
run: |
for file in ${{ steps.changed-files.outputs.deleted_files }}; do
for file in ${{ steps.changed-files-specific.outputs.deleted_files }}; do
echo "$file was deleted"
done
...
@@ -400,6 +419,56 @@ See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files between the previous tag and the current tag</summary>
```yaml
...
on:
push:
tags:
- 'v*'
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Get Base SHA
id: get-base-sha
run: |
echo "base_sha=$(git rev-parse "$(git tag --sort=-v:refname | head -n 2 | tail -n 1)")" >> $GITHUB_OUTPUT
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v35
with:
base_sha: ${{ steps.get-base-sha.outputs.base_sha }}
- name: Get changed files in the .github folder
id: changed-files-specific
uses: tj-actions/changed-files@v35
with:
base_sha: ${{ steps.get-base-sha.outputs.base_sha }}
files: .github/**
- name: Run step if any file(s) in the .github folder change
if: steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "One or more files in the .github folder has changed."
echo "List all the files that have changed: ${{ steps.changed-files-specific.outputs.all_changed_files }}"
...
```
See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files for a repository located in a different path</summary>
@@ -470,7 +539,7 @@ See [inputs](#inputs) for more information.
- uses: nrwl/nx-set-shas@v3
id: last_successful_commit_push
with:
main-branch-name: ${{ steps.branch-name.outputs.current_branch }} # Get the last successful commit for the current branch.
main-branch-name: ${{ steps.branch-name.outputs.current_branch }} # Get the last successful commit for the current branch.
workflow-id: 'test.yml'
- name: Run changed-files with the commit of the last successful test workflow run
@@ -497,7 +566,7 @@ See [inputs](#inputs) for more information.
- uses: nrwl/nx-set-shas@v3
id: last_successful_commit_pull_request
with:
main-branch-name: ${{ steps.branch-name.outputs.base_ref_branch }} # Get the last successful commit on master or main branch
main-branch-name: ${{ steps.branch-name.outputs.base_ref_branch }} # Get the last successful commit on master or main branch
workflow_id: 'test.yml'
- name: Run changed-files with the commit of the last successful test workflow run on main
@@ -683,6 +752,8 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<td align="center"><a href="https://github.com/kostiantyn-korniienko-aurea"><img src="https://avatars.githubusercontent.com/u/37180625?v=4?s=100" width="100px;" alt="Kostiantyn Korniienko"/><br /><sub><b>Kostiantyn Korniienko</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=kostiantyn-korniienko-aurea" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/lpulley"><img src="https://avatars.githubusercontent.com/u/7193187?v=4?s=100" width="100px;" alt="Logan Pulley"/><br /><sub><b>Logan Pulley</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=lpulley" title="Code">💻</a></td>
<td align="center"><a href="https://www.linkedin.com/in/kenji-miyake/"><img src="https://avatars.githubusercontent.com/u/31987104?v=4?s=100" width="100px;" alt="Kenji Miyake"/><br /><sub><b>Kenji Miyake</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=kenji-miyake" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/adonisgarciac"><img src="https://avatars.githubusercontent.com/u/71078987?v=4?s=100" width="100px;" alt="adonisgarciac"/><br /><sub><b>adonisgarciac</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=adonisgarciac" title="Code">💻</a> <a href="https://github.com/tj-actions/changed-files/commits?author=adonisgarciac" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/cfernhout"><img src="https://avatars.githubusercontent.com/u/22294606?v=4?s=100" width="100px;" alt="Chiel Fernhout"/><br /><sub><b>Chiel Fernhout</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=cfernhout" title="Documentation">📖</a></td>
</tr>
</tbody>
</table>

View File

@@ -46,7 +46,6 @@ inputs:
sha:
description: "Specify a different commit SHA used for comparing changes"
required: false
default: ${{ github.sha }}
base_sha:
description: "Specify a different base commit SHA used for comparing changes"
required: false
@@ -76,18 +75,38 @@ inputs:
dir_names_max_depth:
description: "Maximum depth of directories to output. e.g `test/test1/test2` with max depth of `2` returns `test/test1`."
required: false
dir_names_exclude_root:
description: "Exclude the root directory represented by `.` from the output when `dir_names`is set to `true`."
required: false
default: "false"
json:
description: "Output list of changed files in a JSON formatted string which can be used for matrix jobs."
required: false
default: "false"
json_raw_format:
description: "Output list of changed files in [jq](https://devdocs.io/jq/) raw output format which means that the output will not be surrounded by quotes and special characters will not be escaped."
required: false
default: "false"
fetch_depth:
description: "Depth of additional branch history fetched. **NOTE**: This can be adjusted to resolve errors with insufficient history."
required: false
default: "50"
since_last_remote_commit:
description: "Use the last commit on the remote branch as the `base_sha`. Defaults to the last non merge commit on the target branch for pull request events and the previous remote commit of the current branch for push events."
required: true
required: false
default: "false"
write_output_files:
description: "Write outputs to files in the `.github/outputs` folder by default."
required: false
default: "false"
output_dir:
description: "Directory to store output files."
required: false
default: ".github/outputs"
match_directories:
description: "Indicates whether to include match directories"
default: "true"
required: false
outputs:
added_files:
@@ -166,11 +185,12 @@ runs:
GITHUB_SERVER_URL: ${{ github.server_url }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_REF: ${{ github.ref }}
GITHUB_BASE_REF: ${{ github.base_ref }}
GITHUB_HEAD_REF: ${{ github.head_ref }}
GITHUB_SHA: ${{ github.sha }}
GITHUB_WORKSPACE: ${{ github.workspace }}
GITHUB_EVENT_NUMBER: ${{ github.event.number }}
GITHUB_EVENT_HEAD_REPO_FORK: ${{ github.event.pull_request.head.repo.fork }}
GITHUB_EVENT_PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number }}
GITHUB_EVENT_PULL_REQUEST_BASE_REF: ${{ github.event.pull_request.base.ref }}
GITHUB_EVENT_PULL_REQUEST_HEAD_REF: ${{ github.event.pull_request.head.ref }}
GITHUB_EVENT_PULL_REQUEST_BASE_SHA: ${{ github.event.pull_request.base.sha }}
GITHUB_EVENT_PULL_REQUEST_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
GITHUB_EVENT_PULL_REQUEST_COMMITS: ${{ github.event.pull_request.commits }}
@@ -201,6 +221,7 @@ runs:
base-sha: ${{ steps.changed-files-diff-sha.outputs.previous_sha }}
sha: ${{ steps.changed-files-diff-sha.outputs.current_sha }}
diff: ${{ steps.changed-files-diff-sha.outputs.diff }}
match-directories: ${{ inputs.match_directories }}
include-deleted-files: true
separator: "|"
- run: |
@@ -209,8 +230,8 @@ runs:
shell: bash
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
GITHUB_BASE_REF: ${{ github.base_ref }}
GITHUB_EVENT_HEAD_REPO_FORK: ${{ github.event.pull_request.head.repo.fork }}
GITHUB_EVENT_PULL_REQUEST_BASE_REF: ${{ github.event.pull_request.base.ref }}
GITHUB_EVENT_PULL_REQUEST_HEAD_REPO_FORK: ${{ github.event.pull_request.head.repo.fork }}
# 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_FILES_PATTERN_FILE: ${{ steps.glob.outputs.paths-output-file }}
@@ -228,8 +249,40 @@ runs:
INPUT_DIFF_RELATIVE: ${{ inputs.diff_relative }}
INPUT_DIR_NAMES: ${{ inputs.dir_names }}
INPUT_DIR_NAMES_MAX_DEPTH: ${{ inputs.dir_names_max_depth }}
INPUT_DIR_NAMES_EXCLUDE_ROOT: ${{ inputs.dir_names_exclude_root }}
INPUT_JSON: ${{ inputs.json }}
INPUT_HAS_CUSTOM_PATTERNS: ${{ steps.glob.outputs.has-custom-patterns }}
INPUT_JSON_RAW_FORMAT: ${{ inputs.json_raw_format }}
- name: Generate output files
uses: tj-actions/json2file@v1
if: inputs.write_output_files == 'true'
with:
outputs: ${{ toJSON(steps.changed-files.outputs) }}
directory: ${{ inputs.output_dir }}
skip_missing_keys: true
keys: |
added_files
copied_files
deleted_files
modified_files
renamed_files
all_old_new_renamed_files
type_changed_files
unmerged_files
unknown_files
all_changed_and_modified_files
all_changed_files
any_changed
only_changed
other_changed_files
all_modified_files
any_modified
only_modified
other_modified_files
any_deleted
only_deleted
other_deleted_files
extension: ${{ steps.changed-files.outputs.outputs_extension }}
branding:
icon: file-text

View File

@@ -8,12 +8,14 @@ EXTRA_ARGS="--no-tags --prune --no-recurse-submodules"
PREVIOUS_SHA=""
CURRENT_SHA=""
DIFF="..."
IS_TAG="false"
if [[ "$GITHUB_REF" == "refs/tags/"* ]]; then
IS_TAG="true"
EXTRA_ARGS="--prune --no-recurse-submodules"
fi
if [[ -z $GITHUB_BASE_REF || "$GITHUB_EVENT_HEAD_REPO_FORK" == "true" ]]; then
if [[ -z $GITHUB_EVENT_PULL_REQUEST_BASE_REF || "$GITHUB_EVENT_HEAD_REPO_FORK" == "true" ]]; then
DIFF=".."
fi
@@ -50,11 +52,17 @@ else
echo "Valid git version found: ($GIT_VERSION)"
fi
if [[ -z $GITHUB_BASE_REF ]]; then
if [[ -z $GITHUB_EVENT_PULL_REQUEST_BASE_REF ]]; then
echo "Running on a push event..."
TARGET_BRANCH=$GITHUB_REFNAME
CURRENT_BRANCH=$TARGET_BRANCH
if [[ -f .git/shallow ]]; then
echo "Fetching remote refs..."
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH" origin "$CURRENT_BRANCH" 1>/dev/null || true
fi
echo "::debug::Getting HEAD SHA..."
if [[ -n "$INPUT_UNTIL" ]]; then
echo "::debug::Getting HEAD SHA for '$INPUT_UNTIL'..."
@@ -68,8 +76,6 @@ if [[ -z $GITHUB_BASE_REF ]]; then
if [[ -z $INPUT_SHA ]]; then
CURRENT_SHA=$(git rev-list -n 1 HEAD) && exit_status=$? || exit_status=$?
else
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH" origin "$CURRENT_BRANCH" 1>/dev/null 2>&1
CURRENT_SHA=$INPUT_SHA; exit_status=$?
fi
fi
@@ -99,20 +105,16 @@ if [[ -z $GITHUB_BASE_REF ]]; then
PREVIOUS_SHA=""
if [[ "$GITHUB_EVENT_FORCED" == "false" || -z "$GITHUB_EVENT_FORCED" ]]; then
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE && exit_status=$? || exit_status=$?
else
PREVIOUS_SHA=$(git rev-list -n 1 "HEAD^") && exit_status=$? || exit_status=$?
fi
else
PREVIOUS_SHA=$(git rev-list -n 1 "$TARGET_BRANCH") && exit_status=$? || exit_status=$?
if [[ -z "$PREVIOUS_SHA" ]]; then
if [[ "$GITHUB_EVENT_FORCED" == "false" || -z "$GITHUB_EVENT_FORCED" ]]; then
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE
fi
fi
PREVIOUS_SHA=$(git rev-list -n 1 "HEAD^") && exit_status=$? || exit_status=$?
fi
if [[ -z "$PREVIOUS_SHA" || "$PREVIOUS_SHA" == "0000000000000000000000000000000000000000" ]]; then
PREVIOUS_SHA=$(git rev-parse "$(git branch -r --sort=-committerdate | head -1 | xargs)")
PREVIOUS_SHA=$(git rev-list -n 1 "HEAD^") && exit_status=$? || exit_status=$?
fi
if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" ]]; then
@@ -131,9 +133,11 @@ if [[ -z $GITHUB_BASE_REF ]]; then
fi
fi
else
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH" origin "$CURRENT_BRANCH" 1>/dev/null 2>&1
PREVIOUS_SHA=$INPUT_BASE_SHA
if [[ "$IS_TAG" == "true" ]]; then
TARGET_BRANCH=$(git describe --tags "$PREVIOUS_SHA")
fi
fi
echo "::debug::Target branch $TARGET_BRANCH..."
@@ -149,16 +153,25 @@ if [[ -z $GITHUB_BASE_REF ]]; then
fi
else
echo "Running on a pull request event..."
TARGET_BRANCH=$GITHUB_BASE_REF
CURRENT_BRANCH=$GITHUB_HEAD_REF
TARGET_BRANCH=$GITHUB_EVENT_PULL_REQUEST_BASE_REF
CURRENT_BRANCH=$GITHUB_EVENT_PULL_REQUEST_HEAD_REF
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" == "true" ]]; then
TARGET_BRANCH=$CURRENT_BRANCH
fi
echo "Fetching remote refs..."
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress origin pull/"$GITHUB_EVENT_NUMBER"/head:"$CURRENT_BRANCH" 1>/dev/null 2>&1
if [[ -f .git/shallow ]]; then
echo "Fetching remote refs..."
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress origin pull/"$GITHUB_EVENT_PULL_REQUEST_NUMBER"/head:"$CURRENT_BRANCH" 1>/dev/null
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" != "true" ]]; then
echo "::debug::Fetching remote target branch..."
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH" origin +refs/heads/"$TARGET_BRANCH":refs/remotes/origin/"$TARGET_BRANCH" 1>/dev/null
git branch --track "$TARGET_BRANCH" origin/"$TARGET_BRANCH" 1>/dev/null || true
fi
fi
echo "::debug::Getting HEAD SHA..."
if [[ -n "$INPUT_UNTIL" ]]; then
@@ -174,10 +187,6 @@ else
CURRENT_SHA=$(git rev-list -n 1 HEAD) && exit_status=$? || exit_status=$?
else
CURRENT_SHA=$INPUT_SHA; exit_status=$?
if [[ "$CURRENT_SHA" == "$GITHUB_EVENT_PULL_REQUEST_HEAD_SHA" ]]; then
CURRENT_SHA=$(git rev-list -n 1 HEAD) && exit_status=$? || exit_status=$?
fi
fi
fi
@@ -200,13 +209,24 @@ else
PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA
fi
else
echo "::debug::Fetching remote target branch..."
# shellcheck disable=SC2086
git fetch -u --progress $EXTRA_ARGS --depth="$INPUT_FETCH_DEPTH" origin +refs/heads/"$TARGET_BRANCH":refs/remotes/origin/"$TARGET_BRANCH" 1>/dev/null 2>&1
PREVIOUS_SHA=$(git rev-parse origin/"$TARGET_BRANCH") && exit_status=$? || exit_status=$?
git branch --track "$TARGET_BRANCH" origin/"$TARGET_BRANCH" 1>/dev/null 2>&1 || true
PREVIOUS_SHA=$(git merge-base "$TARGET_BRANCH" "$CURRENT_SHA") && exit_status=$? || exit_status=$?
if [[ -f .git/shallow ]]; then
# check if the merge base is in the local history
if ! git merge-base "$PREVIOUS_SHA" "$CURRENT_SHA" 1>/dev/null 2>&1; then
echo "::debug::Merge base is not in the local history, fetching remote target branch..."
# Fetch more of the target branch history until the merge base is found
for i in {1..10}; do
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH" origin "$TARGET_BRANCH:$TARGET_BRANCH" 1>/dev/null
if git merge-base "$PREVIOUS_SHA" "$CURRENT_SHA" 1>/dev/null 2>&1; then
break
fi
echo "::debug::Merge base is not in the local history, fetching remote target branch again..."
echo "::debug::Attempt $i/10"
done
fi
fi
fi
if [[ -z "$PREVIOUS_SHA" || "$PREVIOUS_SHA" == "$CURRENT_SHA" ]]; then
@@ -219,13 +239,7 @@ else
fi
if ! git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA$DIFF$CURRENT_SHA" 1>/dev/null 2>&1; then
PREVIOUS_SHA=$(git rev-parse "$TARGET_BRANCH") && exit_status=$? || exit_status=$?
DIFF=".."
if ! git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA$DIFF$CURRENT_SHA" 1>/dev/null 2>&1; then
echo "::error::Unable find a diff between $PREVIOUS_SHA and $CURRENT_SHA"
exit 1
fi
fi
echo "::debug::Target branch: $TARGET_BRANCH"
@@ -239,6 +253,11 @@ else
echo "::error::Please verify that the previous sha is valid, and increase the fetch_depth to a number higher than $INPUT_FETCH_DEPTH."
exit 1
fi
if ! git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA$DIFF$CURRENT_SHA" 1>/dev/null 2>&1; then
echo "::error::Unable to determine a difference between $PREVIOUS_SHA$DIFF$CURRENT_SHA"
exit 1
fi
fi
if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" && "$INITIAL_COMMIT" == "false" ]]; then

View File

@@ -10,6 +10,12 @@ INPUT_SEPARATOR="${INPUT_SEPARATOR//$'\r'/'%0D'}"
GITHUB_OUTPUT=${GITHUB_OUTPUT:-""}
DIFF=$INPUT_DIFF
OUTPUTS_EXTENSION="txt"
if [[ "$INPUT_JSON" == "true" ]]; then
OUTPUTS_EXTENSION="json"
fi
if [[ $INPUT_QUOTEPATH == "false" ]]; then
git config --global core.quotepath off
else
@@ -41,10 +47,24 @@ function get_dirname_max_depth() {
depth=$((depth + 1))
done
if [[ "$INPUT_DIR_NAMES_EXCLUDE_ROOT" == "true" && "$output" == "." ]]; then
continue
fi
echo "$output"
done < <(uniq)
}
function json_output() {
JQ_ARGS="-sR"
if [[ "$INPUT_JSON_RAW_FORMAT" == "true" ]]; then
JQ_ARGS="$JQ_ARGS -r"
fi
# shellcheck disable=SC2086
jq $JQ_ARGS 'split("\n") | map(select(. != "")) | @json' | sed -r 's/^"|"$//g' | tr -s /
}
function get_diff() {
local base="$1"
local sha="$2"
@@ -73,20 +93,11 @@ function get_diff() {
fi
done < <(git submodule | awk '{print $2}')
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
git diff --diff-filter="$filter" --name-only --ignore-submodules=all --no-merges "$base$DIFF$sha" | xargs -I {} dirname {} | get_dirname_max_depth | uniq && exit_status=$? || exit_status=$?
git diff --diff-filter="$filter" --name-only --ignore-submodules=all --no-merges "$base$DIFF$sha" && exit_status=$? || exit_status=$?
if [[ $exit_status -ne 0 ]]; 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 --no-merges "$base$DIFF$sha" && exit_status=$? || exit_status=$?
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get changed files between: $base$DIFF$sha"
exit 1
fi
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get changed files between: $base$DIFF$sha"
exit 1
fi
}
@@ -117,20 +128,11 @@ function get_renames() {
fi
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 {} | get_dirname_max_depth | 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}' && 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=$?
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get renamed files between: $base$sha"
exit 1
fi
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get renamed files between: $base$sha"
exit 1
fi
}
@@ -149,36 +151,72 @@ fi
echo "Retrieving changes between $INPUT_PREVIOUS_SHA ($INPUT_TARGET_BRANCH) → $INPUT_CURRENT_SHA ($INPUT_CURRENT_BRANCH)"
if [[ "$INPUT_HAS_CUSTOM_PATTERNS" == "false" ]]; then
if [[ "$INPUT_HAS_CUSTOM_PATTERNS" == "false" || -z "$INPUT_FILES_PATTERN_FILE" ]]; then
if [[ "$INPUT_JSON" == "false" ]]; then
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
else
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
fi
if [[ $INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES == "true" ]]; then
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
else
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
fi
fi
else
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
else
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | json_output)
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | json_output)
DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | json_output)
MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | json_output)
RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | json_output)
TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | json_output)
UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | json_output)
UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | json_output)
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | json_output)
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | json_output)
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | json_output)
fi
if [[ $INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES == "true" ]]; then
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
else
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | json_output)
fi
fi
fi
else
@@ -225,9 +263,17 @@ else
fi
if [[ "$INPUT_JSON" == "false" ]]; then
OTHER_CHANGED=$(echo "${OTHER_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
OTHER_CHANGED=$(echo "${OTHER_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
else
OTHER_CHANGED=$(echo "${OTHER_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
fi
else
OTHER_CHANGED=$(echo "${OTHER_CHANGED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
OTHER_CHANGED=$(echo "${OTHER_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
else
OTHER_CHANGED=$(echo "${OTHER_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
fi
fi
if [[ -n "${OTHER_CHANGED}" && "${OTHER_CHANGED}" != "[]" ]]; then
@@ -277,9 +323,17 @@ else
fi
if [[ "$INPUT_JSON" == "false" ]]; then
OTHER_MODIFIED=$(echo "${OTHER_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
OTHER_MODIFIED=$(echo "${OTHER_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
else
OTHER_MODIFIED=$(echo "${OTHER_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
fi
else
OTHER_MODIFIED=$(echo "${OTHER_MODIFIED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
OTHER_MODIFIED=$(echo "${OTHER_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
else
OTHER_MODIFIED=$(echo "${OTHER_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
fi
fi
if [[ -n "${OTHER_MODIFIED}" && "$OTHER_MODIFIED" != "[]" ]]; then
@@ -328,9 +382,17 @@ else
fi
if [[ "$INPUT_JSON" == "false" ]]; then
OTHER_DELETED=$(echo "${OTHER_DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
OTHER_DELETED=$(echo "${OTHER_DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
else
OTHER_DELETED=$(echo "${OTHER_DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
fi
else
OTHER_DELETED=$(echo "${OTHER_DELETED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
OTHER_DELETED=$(echo "${OTHER_DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
else
OTHER_DELETED=$(echo "${OTHER_DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
fi
fi
if [[ -n "${OTHER_DELETED}" && "${OTHER_DELETED}" != "[]" ]]; then
@@ -350,29 +412,57 @@ else
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}')
COPIED=$(echo "${COPIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
DELETED=$(echo "${DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
MODIFIED=$(echo "${MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
RENAMED=$(echo "${RENAMED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
TYPE_CHANGED=$(echo "${TYPE_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNMERGED=$(echo "${UNMERGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNKNOWN=$(echo "${UNKNOWN}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED_AND_MODIFIED=$(echo "${ALL_CHANGED_AND_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED=$(echo "${ALL_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
ADDED=$(echo "${ADDED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
COPIED=$(echo "${COPIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
DELETED=$(echo "${DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
MODIFIED=$(echo "${MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
RENAMED=$(echo "${RENAMED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
TYPE_CHANGED=$(echo "${TYPE_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNMERGED=$(echo "${UNMERGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNKNOWN=$(echo "${UNKNOWN}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED_AND_MODIFIED=$(echo "${ALL_CHANGED_AND_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED=$(echo "${ALL_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
else
ADDED=$(echo "${ADDED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
COPIED=$(echo "${COPIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
DELETED=$(echo "${DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
MODIFIED=$(echo "${MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
RENAMED=$(echo "${RENAMED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
TYPE_CHANGED=$(echo "${TYPE_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNMERGED=$(echo "${UNMERGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
UNKNOWN=$(echo "${UNKNOWN}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED_AND_MODIFIED=$(echo "${ALL_CHANGED_AND_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED=$(echo "${ALL_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
fi
else
ADDED=$(echo "${ADDED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
COPIED=$(echo "${COPIED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
DELETED=$(echo "${DELETED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
MODIFIED=$(echo "${MODIFIED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
RENAMED=$(echo "${RENAMED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
TYPE_CHANGED=$(echo "${TYPE_CHANGED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
UNMERGED=$(echo "${UNMERGED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
UNKNOWN=$(echo "${UNKNOWN}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_CHANGED_AND_MODIFIED=$(echo "${ALL_CHANGED_AND_MODIFIED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_CHANGED=$(echo "${ALL_CHANGED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
ADDED=$(echo "${ADDED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
COPIED=$(echo "${COPIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
DELETED=$(echo "${DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
MODIFIED=$(echo "${MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
RENAMED=$(echo "${RENAMED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
TYPE_CHANGED=$(echo "${TYPE_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
UNMERGED=$(echo "${UNMERGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
UNKNOWN=$(echo "${UNKNOWN}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
ALL_CHANGED_AND_MODIFIED=$(echo "${ALL_CHANGED_AND_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
ALL_CHANGED=$(echo "${ALL_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq | json_output)
else
ADDED=$(echo "${ADDED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
COPIED=$(echo "${COPIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
DELETED=$(echo "${DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
MODIFIED=$(echo "${MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
RENAMED=$(echo "${RENAMED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
TYPE_CHANGED=$(echo "${TYPE_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
UNMERGED=$(echo "${UNMERGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
UNKNOWN=$(echo "${UNKNOWN}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
ALL_CHANGED_AND_MODIFIED=$(echo "${ALL_CHANGED_AND_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
ALL_CHANGED=$(echo "${ALL_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | json_output)
fi
fi
fi
@@ -403,6 +493,7 @@ if [[ -z "$GITHUB_OUTPUT" ]]; then
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"
echo "::set-output name=outputs_extension::$OUTPUTS_EXTENSION"
else
cat <<EOF >>"$GITHUB_OUTPUT"
added_files=$ADDED
@@ -416,6 +507,7 @@ unknown_files=$UNKNOWN
all_changed_and_modified_files=$ALL_CHANGED_AND_MODIFIED
all_changed_files=$ALL_CHANGED
all_modified_files=$ALL_MODIFIED
outputs_extension=$OUTPUTS_EXTENSION
EOF
fi

View File

@@ -1 +1 @@
This is a test file
This is a test file.

View File

@@ -1 +1 @@
This is a test file
This is a test file.

View File

@@ -1 +1 @@
Lorem ipsum dolor sit amet, consectetur adip eget, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.