Compare commits
152 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72d3bb8b33 | ||
|
|
d908ddd2ef | ||
|
|
8dc46ae460 | ||
|
|
1218e11f1e | ||
|
|
18ddeeb8bc | ||
|
|
3b614c0cfa | ||
|
|
5f89dc7d6e | ||
|
|
2d251d6924 | ||
|
|
c46761fdcd | ||
|
|
321490c60a | ||
|
|
dc88c3a0c5 | ||
|
|
2125c059c3 | ||
|
|
f6e319ef2e | ||
|
|
3d1f14f079 | ||
|
|
1abc7bec79 | ||
|
|
18dfe0dd4e | ||
|
|
c94657a1d8 | ||
|
|
c755692dde | ||
|
|
1e46f60599 | ||
|
|
f009ea4a47 | ||
|
|
7cdc68de58 | ||
|
|
734bb168e3 | ||
|
|
6e227a5e76 | ||
|
|
307c11527a | ||
|
|
5621d09ed1 | ||
|
|
8c4057e25f | ||
|
|
8f47019836 | ||
|
|
7a799a583e | ||
|
|
ae54c380bb | ||
|
|
738ce05a6a | ||
|
|
b4f323482c | ||
|
|
e957501bc3 | ||
|
|
f38b70aee3 | ||
|
|
62aa9ed8ce | ||
|
|
eada3203b5 | ||
|
|
e2d72e213a | ||
|
|
664f1245dd | ||
|
|
d41a74b958 | ||
|
|
d2e030b6ed | ||
|
|
1b73c818fe | ||
|
|
a2913c1b3d | ||
|
|
95f386689b | ||
|
|
6ba3c59bc6 | ||
|
|
e65822d31a | ||
|
|
866ffdf84d | ||
|
|
338a11e8c5 | ||
|
|
6a0f4e7f4d | ||
|
|
dee73a71be | ||
|
|
9b079a7363 | ||
|
|
ac593b977e | ||
|
|
5b43f91839 | ||
|
|
ece8e1f566 | ||
|
|
cfbf2ee2ea | ||
|
|
6042b819eb | ||
|
|
367c547d7d | ||
|
|
6ac1087775 | ||
|
|
2982c7c1d0 | ||
|
|
a3a62da413 | ||
|
|
958d453c5d | ||
|
|
0f09389954 | ||
|
|
dc104b5c83 | ||
|
|
97e67238ea | ||
|
|
ac72938f3a | ||
|
|
133f857c90 | ||
|
|
3e8708a684 | ||
|
|
90a4d2a19b | ||
|
|
251c03879a | ||
|
|
ae5f032774 | ||
|
|
dd6f3c9e10 | ||
|
|
84396edc7e | ||
|
|
6079b26874 | ||
|
|
b94eca1419 | ||
|
|
a14ccf053e | ||
|
|
1fd624717d | ||
|
|
dca71d6aaa | ||
|
|
441dd9f254 | ||
|
|
6e95ff3cd5 | ||
|
|
a4d7180f07 | ||
|
|
8890344e49 | ||
|
|
d3f15b49f1 | ||
|
|
8227e3155d | ||
|
|
d0e44775cd | ||
|
|
5f73da34f8 | ||
|
|
ed9a8c623c | ||
|
|
ad3a3e02a7 | ||
|
|
08509d9a42 | ||
|
|
99d1026ab8 | ||
|
|
a471e65bf2 | ||
|
|
807520bd14 | ||
|
|
68efb13b02 | ||
|
|
3351aa00b2 | ||
|
|
b4b4b40c03 | ||
|
|
bfe077bfb6 | ||
|
|
62aef87f39 | ||
|
|
a8965747f2 | ||
|
|
6a28d55cbf | ||
|
|
902daca592 | ||
|
|
b8094dc31e | ||
|
|
e2bb33a278 | ||
|
|
0cf7a23785 | ||
|
|
984ab2b4b8 | ||
|
|
99b636b6a7 | ||
|
|
22c9314c52 | ||
|
|
d96e4cfa30 | ||
|
|
f390b8d769 | ||
|
|
764c279509 | ||
|
|
bf1b284c20 | ||
|
|
c50a04d832 | ||
|
|
f8d4b5c286 | ||
|
|
31d24d6654 | ||
|
|
8fb8d46593 | ||
|
|
7b3e6ed2f5 | ||
|
|
06d1e2d093 | ||
|
|
7d0716889b | ||
|
|
be35464a0e | ||
|
|
b2e6ecea09 | ||
|
|
fea3b5eab8 | ||
|
|
e15fb07855 | ||
|
|
e712ee7e3d | ||
|
|
10de0c5e4e | ||
|
|
08fb627a3d | ||
|
|
61651ceaa9 | ||
|
|
4034cb97bc | ||
|
|
de59412f4b | ||
|
|
13809e0a15 | ||
|
|
c715985c07 | ||
|
|
32c930e9ab | ||
|
|
f1febd43b2 | ||
|
|
b9fcfc65d8 | ||
|
|
19ffb8fde5 | ||
|
|
420c851349 | ||
|
|
75a97e3f7b | ||
|
|
61af1b57e4 | ||
|
|
4703a0ce80 | ||
|
|
4054514874 | ||
|
|
b969806a43 | ||
|
|
b9e70f7821 | ||
|
|
2a5aadbf48 | ||
|
|
0f0e558289 | ||
|
|
7cdc1871c1 | ||
|
|
12633630ab | ||
|
|
0643dfe61b | ||
|
|
d66098e3dd | ||
|
|
3fa5a82cb1 | ||
|
|
58b52f3bf8 | ||
|
|
368551a133 | ||
|
|
2aafb8f8d0 | ||
|
|
9c4736bb17 | ||
|
|
57168941b2 | ||
|
|
dedb6325a8 | ||
|
|
d3cd1f406f | ||
|
|
986dcdd054 |
@@ -150,6 +150,15 @@
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "kenji-miyake",
|
||||
"name": "Kenji Miyake",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/31987104?v=4",
|
||||
"profile": "https://www.linkedin.com/in/kenji-miyake/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
|
||||
54
.github/workflows/test.yml
vendored
54
.github/workflows/test.yml
vendored
@@ -211,12 +211,15 @@ jobs:
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, ubuntu-18.04, windows-2022]
|
||||
fetch-depth: [1, 2]
|
||||
|
||||
steps:
|
||||
- name: Checkout to branch
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: ${{ matrix.fetch-depth }}
|
||||
|
||||
- name: Run changed-files with a single commit history
|
||||
- name: Run changed-files
|
||||
id: changed-files
|
||||
uses: ./
|
||||
|
||||
@@ -338,13 +341,14 @@ jobs:
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, ubuntu-18.04, windows-2022]
|
||||
fetch-depth: [0, 1]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
fetch-depth: ${{ matrix.fetch-depth }}
|
||||
- name: Dump GitHub context
|
||||
env:
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
@@ -357,6 +361,26 @@ jobs:
|
||||
echo '${{ toJSON(steps.changed-files.outputs) }}'
|
||||
shell:
|
||||
bash
|
||||
- name: Run changed-files with since_last_remote_commit
|
||||
id: changed-files-since-last-remote-commit
|
||||
uses: ./
|
||||
with:
|
||||
since_last_remote_commit: true
|
||||
- name: Show output
|
||||
run: |
|
||||
echo '${{ toJSON(steps.changed-files-since-last-remote-commit.outputs) }}'
|
||||
shell:
|
||||
bash
|
||||
- name: Run changed-files with include_all_old_new_renamed_files
|
||||
id: changed-files-all-old-new-renamed-files
|
||||
uses: ./
|
||||
with:
|
||||
include_all_old_new_renamed_files: true
|
||||
- name: Show output
|
||||
run: |
|
||||
echo '${{ toJSON(steps.changed-files-all-old-new-renamed-files.outputs) }}'
|
||||
shell:
|
||||
bash
|
||||
- name: List all modified files
|
||||
run: |
|
||||
for file in ${{ steps.changed-files.outputs.modified_files }}; do
|
||||
@@ -397,6 +421,7 @@ jobs:
|
||||
with:
|
||||
base_sha: d1c0ee4
|
||||
sha: 4d04215
|
||||
fetch_depth: 60000
|
||||
dir_names: "true"
|
||||
- name: Show output
|
||||
run: |
|
||||
@@ -410,6 +435,27 @@ jobs:
|
||||
exit 1
|
||||
shell:
|
||||
bash
|
||||
- name: Run changed-files with dir_names specific
|
||||
id: changed-files-dir-names-specific
|
||||
uses: ./
|
||||
with:
|
||||
base_sha: d1c0ee4
|
||||
sha: 4d04215
|
||||
fetch_depth: 60000
|
||||
dir_names: "true"
|
||||
files: test/**
|
||||
- name: Show output
|
||||
run: |
|
||||
echo '${{ toJSON(steps.changed-files-dir-names-specific.outputs) }}'
|
||||
shell:
|
||||
bash
|
||||
- name: Check dir_names output
|
||||
if: "!contains(steps.changed-files-dir-names-specific.outputs.all_changed_files, 'test')"
|
||||
run: |
|
||||
echo "Invalid output: Expected to include (test) got (${{ steps.changed-files-dir-names-specific.outputs.all_changed_files }})"
|
||||
exit 1
|
||||
shell:
|
||||
bash
|
||||
- name: Run changed-files with forward slash separator
|
||||
id: changed-files-forward-slash
|
||||
uses: ./
|
||||
@@ -488,6 +534,7 @@ jobs:
|
||||
with:
|
||||
base_sha: d1c0ee4
|
||||
sha: 4d04215
|
||||
fetch_depth: 60000
|
||||
include_all_old_new_renamed_files: true
|
||||
- name: Show output
|
||||
run: |
|
||||
@@ -507,6 +554,7 @@ jobs:
|
||||
with:
|
||||
base_sha: 4d04215
|
||||
sha: fe238e6
|
||||
fetch_depth: 60000
|
||||
include_all_old_new_renamed_files: true
|
||||
- name: Show output
|
||||
run: |
|
||||
@@ -861,10 +909,12 @@ jobs:
|
||||
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:
|
||||
|
||||
180
HISTORY.md
180
HISTORY.md
@@ -1,12 +1,134 @@
|
||||
# Changelog
|
||||
|
||||
## [v34.3.0](https://github.com/tj-actions/changed-files/tree/v34.3.0) (2022-11-07)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34...v34.3.0)
|
||||
|
||||
## [v34](https://github.com/tj-actions/changed-files/tree/v34) (2022-11-07)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.2.2...v34)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- How can I let the workflow to detect the changes only in the certain micro service? [\#766](https://github.com/tj-actions/changed-files/issues/766)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- chore: exclude fetching tags [\#776](https://github.com/tj-actions/changed-files/pull/776) ([jackton1](https://github.com/jackton1))
|
||||
- chore: update test [\#775](https://github.com/tj-actions/changed-files/pull/775) ([jackton1](https://github.com/jackton1))
|
||||
- Updated README.md [\#774](https://github.com/tj-actions/changed-files/pull/774) ([jackton1](https://github.com/jackton1))
|
||||
- feat: add support for using the last remote commit [\#773](https://github.com/tj-actions/changed-files/pull/773) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.2.2 [\#772](https://github.com/tj-actions/changed-files/pull/772) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.2.2](https://github.com/tj-actions/changed-files/tree/v34.2.2) (2022-11-06)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.2.1...v34.2.2)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Updated README.md [\#771](https://github.com/tj-actions/changed-files/pull/771) ([jackton1](https://github.com/jackton1))
|
||||
- Updated README.md [\#770](https://github.com/tj-actions/changed-files/pull/770) ([jackton1](https://github.com/jackton1))
|
||||
- Updated README.md [\#769](https://github.com/tj-actions/changed-files/pull/769) ([jackton1](https://github.com/jackton1))
|
||||
- docs: add kenji-miyake as a contributor for code [\#768](https://github.com/tj-actions/changed-files/pull/768) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||
- chore: change `sha` to non-required [\#767](https://github.com/tj-actions/changed-files/pull/767) ([kenji-miyake](https://github.com/kenji-miyake))
|
||||
- Upgraded to v34.2.1 [\#765](https://github.com/tj-actions/changed-files/pull/765) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.2.1](https://github.com/tj-actions/changed-files/tree/v34.2.1) (2022-11-05)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.2.0...v34.2.1)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- chore: update debug message [\#764](https://github.com/tj-actions/changed-files/pull/764) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.2.0 [\#763](https://github.com/tj-actions/changed-files/pull/763) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.2.0](https://github.com/tj-actions/changed-files/tree/v34.2.0) (2022-11-05)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.1.1...v34.2.0)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- \[BUG\] dir\_names + files combo ends up in error [\#757](https://github.com/tj-actions/changed-files/issues/757)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- \[BUG\] Action failing on PR with "Unable to find merge-base in shallow clone. Please increase 'max\_fetch\_depth' to at least 340." [\#755](https://github.com/tj-actions/changed-files/issues/755)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Updated README.md [\#762](https://github.com/tj-actions/changed-files/pull/762) ([jackton1](https://github.com/jackton1))
|
||||
- chore: fixed test [\#761](https://github.com/tj-actions/changed-files/pull/761) ([jackton1](https://github.com/jackton1))
|
||||
- chore: update env [\#760](https://github.com/tj-actions/changed-files/pull/760) ([jackton1](https://github.com/jackton1))
|
||||
- fix: error finding merge-base [\#759](https://github.com/tj-actions/changed-files/pull/759) ([jackton1](https://github.com/jackton1))
|
||||
- chore: improve test coverage [\#758](https://github.com/tj-actions/changed-files/pull/758) ([jackton1](https://github.com/jackton1))
|
||||
- Updated README.md [\#756](https://github.com/tj-actions/changed-files/pull/756) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.1.1 [\#754](https://github.com/tj-actions/changed-files/pull/754) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.1.1](https://github.com/tj-actions/changed-files/tree/v34.1.1) (2022-11-04)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.1.0...v34.1.1)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Upgraded to v34.1.0 [\#753](https://github.com/tj-actions/changed-files/pull/753) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.1.0 [\#752](https://github.com/tj-actions/changed-files/pull/752) ([jackton1](https://github.com/jackton1))
|
||||
- Updated README.md [\#751](https://github.com/tj-actions/changed-files/pull/751) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.0.5 [\#749](https://github.com/tj-actions/changed-files/pull/749) ([jackton1](https://github.com/jackton1))
|
||||
- chore: update test [\#746](https://github.com/tj-actions/changed-files/pull/746) ([jackton1](https://github.com/jackton1))
|
||||
- fix: including changed files from merge commits, no merge-base found [\#736](https://github.com/tj-actions/changed-files/pull/736) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.1.0](https://github.com/tj-actions/changed-files/tree/v34.1.0) (2022-11-04)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.0.5...v34.1.0)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- \[BUG\] diff-sha.sh results in "fatal: ambiguous argument '': unknown revision or path not in the working tree." [\#750](https://github.com/tj-actions/changed-files/issues/750)
|
||||
- \[BUG\] Action failing on PR with "Unable to find merge-base in shallow clone" [\#737](https://github.com/tj-actions/changed-files/issues/737)
|
||||
- \[BUG\] Wrong changed-files returned for forked PRs [\#714](https://github.com/tj-actions/changed-files/issues/714)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Logical Issue in deepenShallowCloneToFindCommit [\#747](https://github.com/tj-actions/changed-files/issues/747)
|
||||
|
||||
## [v34.0.5](https://github.com/tj-actions/changed-files/tree/v34.0.5) (2022-11-02)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.0.4...v34.0.5)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- fix: error finding merge-base [\#748](https://github.com/tj-actions/changed-files/pull/748) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.0.4 [\#745](https://github.com/tj-actions/changed-files/pull/745) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.0.3 [\#744](https://github.com/tj-actions/changed-files/pull/744) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.0.4](https://github.com/tj-actions/changed-files/tree/v34.0.4) (2022-11-02)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.0.3...v34.0.4)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Updated README.md [\#743](https://github.com/tj-actions/changed-files/pull/743) ([jackton1](https://github.com/jackton1))
|
||||
- feat: increase the default max\_fetch\_depth [\#742](https://github.com/tj-actions/changed-files/pull/742) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.0.3](https://github.com/tj-actions/changed-files/tree/v34.0.3) (2022-11-02)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.0.2...v34.0.3)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- Retrieve all changed files and directories relative to the last completed run of a GitHub Actions check [\#735](https://github.com/tj-actions/changed-files/issues/735)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- chore: update test increase max-parallel [\#741](https://github.com/tj-actions/changed-files/pull/741) ([jackton1](https://github.com/jackton1))
|
||||
- feat: pull initial history when using the default fetch-depth [\#740](https://github.com/tj-actions/changed-files/pull/740) ([jackton1](https://github.com/jackton1))
|
||||
- chore: fixed typo. [\#739](https://github.com/tj-actions/changed-files/pull/739) ([jackton1](https://github.com/jackton1))
|
||||
- chore: update test [\#738](https://github.com/tj-actions/changed-files/pull/738) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.0.2 [\#734](https://github.com/tj-actions/changed-files/pull/734) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.0.2](https://github.com/tj-actions/changed-files/tree/v34.0.2) (2022-10-31)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34...v34.0.2)
|
||||
|
||||
## [v34](https://github.com/tj-actions/changed-files/tree/v34) (2022-10-31)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.0.1...v34)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.0.1...v34.0.2)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
@@ -52,7 +174,7 @@
|
||||
|
||||
## [v34.0.0](https://github.com/tj-actions/changed-files/tree/v34.0.0) (2022-10-25)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v33.0.0...v34.0.0)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v33...v34.0.0)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
@@ -65,13 +187,13 @@
|
||||
- feat: add support for fetching more history [\#709](https://github.com/tj-actions/changed-files/pull/709) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v33.0.0 [\#707](https://github.com/tj-actions/changed-files/pull/707) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v33.0.0](https://github.com/tj-actions/changed-files/tree/v33.0.0) (2022-10-21)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v33...v33.0.0)
|
||||
|
||||
## [v33](https://github.com/tj-actions/changed-files/tree/v33) (2022-10-21)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.1.2...v33)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v33.0.0...v33)
|
||||
|
||||
## [v33.0.0](https://github.com/tj-actions/changed-files/tree/v33.0.0) (2022-10-21)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.1.2...v33.0.0)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
@@ -152,7 +274,7 @@
|
||||
|
||||
## [v32.0.0](https://github.com/tj-actions/changed-files/tree/v32.0.0) (2022-10-06)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v31.0.3...v32.0.0)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v31...v32.0.0)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
@@ -163,13 +285,13 @@
|
||||
- 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))
|
||||
|
||||
## [v31.0.3](https://github.com/tj-actions/changed-files/tree/v31.0.3) (2022-10-02)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v31...v31.0.3)
|
||||
|
||||
## [v31](https://github.com/tj-actions/changed-files/tree/v31) (2022-10-02)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v31.0.2...v31)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v31.0.3...v31)
|
||||
|
||||
## [v31.0.3](https://github.com/tj-actions/changed-files/tree/v31.0.3) (2022-10-02)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v31.0.2...v31.0.3)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
@@ -228,7 +350,7 @@
|
||||
|
||||
## [v30](https://github.com/tj-actions/changed-files/tree/v30) (2022-09-24)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29...v30)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.9...v30)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
@@ -244,13 +366,13 @@
|
||||
- chore\(deps\): update codacy/codacy-analysis-cli-action action to v4.2.0 [\#634](https://github.com/tj-actions/changed-files/pull/634) ([renovate[bot]](https://github.com/apps/renovate))
|
||||
- Upgraded to v29.0.9 [\#633](https://github.com/tj-actions/changed-files/pull/633) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v29](https://github.com/tj-actions/changed-files/tree/v29) (2022-09-20)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.9...v29)
|
||||
|
||||
## [v29.0.9](https://github.com/tj-actions/changed-files/tree/v29.0.9) (2022-09-20)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.8...v29.0.9)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29...v29.0.9)
|
||||
|
||||
## [v29](https://github.com/tj-actions/changed-files/tree/v29) (2022-09-20)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.8...v29)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
@@ -1175,7 +1297,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:**
|
||||
|
||||
@@ -1193,13 +1315,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:**
|
||||
|
||||
|
||||
53
README.md
53
README.md
@@ -9,7 +9,7 @@
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||
|
||||
[](#contributors-)
|
||||
[](#contributors-)
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||
|
||||
@@ -94,6 +94,8 @@ jobs:
|
||||
echo "List all the files that have changed: ${{ steps.changed-files-specific.outputs.all_changed_files }}"
|
||||
```
|
||||
|
||||
I want to thank everyone supporting and using this project, your are awesome. Special thanks to every contributor.
|
||||
|
||||
If you feel generous and want to show some extra appreciation:
|
||||
|
||||
Support this project with a :star:
|
||||
@@ -151,28 +153,29 @@ 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<br>SHA used for comparing changes<br> |
|
||||
| diff\_relative | string | false | | Exclude changes outside the current<br>directory and show pathnames relative<br>to it. **NOTE:** This requires<br>you to specify the top<br>level directory via the `path`<br>input. |
|
||||
| dir\_names | string | false | `"false"` | Output unique changed directories instead<br>of filenames. **NOTE:** This returns<br>`.` for changed files located<br>in the root of the<br>project. |
|
||||
| files | string | false | | File and directory patterns to<br>detect changes using only these<br>list of file(s) (Defaults to<br>the entire repo) **NOTE:** Multiline<br>file/directory patterns should not include<br>qoutes. |
|
||||
| files\_from\_source\_file | string | false | | Source file(s) used to populate<br>the `files` input. |
|
||||
| files\_ignore | string | false | | Ignore changes to these file(s)<br>**NOTE:** Multiline file/directory patterns should<br>not include qoutes. |
|
||||
| files\_ignore\_from\_source\_file | string | false | | Source file(s) used to populate<br>the `files_ignore` input |
|
||||
| files\_ignore\_separator | string | false | `"\n"` | Separator used to split the<br>`files-ignore` input |
|
||||
| files\_separator | string | false | `"\n"` | Separator used to split the<br>`files` input |
|
||||
| include\_all\_old\_new\_renamed\_files | string | false | `"false"` | Include `all_old_new_renamed_files` output. Note this<br>can generate a large output<br>See: [#501](https://github.com/tj-actions/changed-files/issues/501). |
|
||||
| json | string | false | `"false"` | Output list of changed files<br>in a JSON formatted string<br>which can be used for<br>matrix jobs. |
|
||||
| max\_fetch\_depth | string | false | `"300"` | Max limit for fetching branch<br>history. **NOTE**: This can be<br>adjusted to resolve errors with<br>insufficient history. |
|
||||
| old\_new\_files\_separator | string | false | `" "` | Split character for multiple old<br>and new filename pairs. |
|
||||
| old\_new\_separator | string | false | `","` | Split character for old and<br>new filename pairs. |
|
||||
| path | string | false | `"."` | Specify a relative path under<br>`$GITHUB_WORKSPACE` to locate the repository.<br> |
|
||||
| quotepath | string | false | `"true"` | Use non ascii characters to<br>match files and output the<br>filenames completely verbatim by setting<br>this to `false` |
|
||||
| separator | string | false | `" "` | Split character for output strings<br> |
|
||||
| sha | string | true | `"${{ github.sha }}"` | Specify a different commit SHA<br>used for comparing changes |
|
||||
| since | string | false | | Get changed files for commits<br>whose timestamp is older than<br>the given time. |
|
||||
| until | string | false | | Get changed files for commits<br>whose timestamp is earlier than<br>the given time. |
|
||||
| INPUT | TYPE | REQUIRED | DEFAULT | DESCRIPTION |
|
||||
|-----------------------------------|--------|----------|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| base\_sha | string | false | | Specify a different base commit<br>SHA used for comparing changes<br> |
|
||||
| diff\_relative | string | false | | Exclude changes outside the current<br>directory and show pathnames relative<br>to it. **NOTE:** This requires<br>you to specify the top<br>level directory via the `path`<br>input. |
|
||||
| dir\_names | string | false | `"false"` | Output unique changed directories instead<br>of filenames. **NOTE:** This returns<br>`.` for changed files located<br>in the root of the<br>project. |
|
||||
| fetch\_depth | string | false | `"40"` | Limit depth of the branch<br>history fetched. **NOTE**: This can<br>be adjusted to resolve errors<br>with insufficient history. |
|
||||
| files | string | false | | File and directory patterns to<br>detect changes using only these<br>list of file(s) (Defaults to<br>the entire repo) **NOTE:** Multiline<br>file/directory patterns should not include<br>qoutes. |
|
||||
| files\_from\_source\_file | string | false | | Source file(s) used to populate<br>the `files` input. |
|
||||
| files\_ignore | string | false | | Ignore changes to these file(s)<br>**NOTE:** Multiline file/directory patterns should<br>not include qoutes. |
|
||||
| files\_ignore\_from\_source\_file | string | false | | Source file(s) used to populate<br>the `files_ignore` input |
|
||||
| files\_ignore\_separator | string | false | `"\n"` | Separator used to split the<br>`files-ignore` input |
|
||||
| files\_separator | string | false | `"\n"` | Separator used to split the<br>`files` input |
|
||||
| include\_all\_old\_new\_renamed\_files | string | false | `"false"` | Include `all_old_new_renamed_files` output. Note this<br>can generate a large output<br>See: [#501](https://github.com/tj-actions/changed-files/issues/501). |
|
||||
| json | string | false | `"false"` | Output list of changed files<br>in a JSON formatted string<br>which can be used for<br>matrix jobs. |
|
||||
| old\_new\_files\_separator | string | false | `" "` | Split character for multiple old<br>and new filename pairs. |
|
||||
| old\_new\_separator | string | false | `","` | Split character for old and<br>new filename pairs. |
|
||||
| path | string | false | `"."` | Specify a relative path under<br>`$GITHUB_WORKSPACE` to locate the repository.<br> |
|
||||
| quotepath | string | false | `"true"` | Use non ascii characters to<br>match files and output the<br>filenames completely verbatim by setting<br>this to `false` |
|
||||
| separator | string | false | `" "` | Split character for output strings<br> |
|
||||
| sha | string | false | `"${{ github.sha }}"` | Specify a different commit SHA<br>used for comparing changes |
|
||||
| since | string | false | | Get changed files for commits<br>whose timestamp is older than<br>the given time. |
|
||||
| since\_last\_remote\_commit | string | true | `"false"` | Use the last commit on<br>the remote branch as the<br>`base_sha`. Defaults to the last<br>non merge commit on the<br>target branch for pull request<br>events and the previous commit<br>of the current branch for<br>push events. |
|
||||
| until | string | false | | Get changed files for commits<br>whose timestamp is earlier than<br>the given time. |
|
||||
|
||||
<!-- AUTO-DOC-INPUT:END -->
|
||||
|
||||
@@ -592,9 +595,10 @@ This package was created with [Cookiecutter](https://github.com/cookiecutter/coo
|
||||
* [tj-actions/glob](https://github.com/tj-actions/glob)
|
||||
* [tj-actions/demo](https://github.com/tj-actions/demo)
|
||||
* [tj-actions/demo2](https://github.com/tj-actions/demo2)
|
||||
* [tj-actions/demo3](https://github.com/tj-actions/demo3)
|
||||
* [tj-actions/release-tagger](https://github.com/tj-actions/release-tagger)
|
||||
* [tj-actions/auto-doc](https://github.com/tj-actions/auto-doc)
|
||||
* \[tj-actions/verify-changed-files]\(https://github.com/tj-actions/verify-changed-files
|
||||
* [tj-actions/verify-changed-files](https://github.com/tj-actions/verify-changed-files)
|
||||
|
||||
## Report Bugs
|
||||
|
||||
@@ -639,6 +643,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||
<tr>
|
||||
<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>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
16
action.yml
16
action.yml
@@ -45,7 +45,7 @@ inputs:
|
||||
default: ""
|
||||
sha:
|
||||
description: "Specify a different commit SHA used for comparing changes"
|
||||
required: true
|
||||
required: false
|
||||
default: ${{ github.sha }}
|
||||
base_sha:
|
||||
description: "Specify a different base commit SHA used for comparing changes"
|
||||
@@ -77,10 +77,14 @@ inputs:
|
||||
description: "Output list of changed files in a JSON formatted string which can be used for matrix jobs."
|
||||
required: false
|
||||
default: "false"
|
||||
max_fetch_depth:
|
||||
description: "Max limit for fetching branch history. **NOTE**: This can be adjusted to resolve errors with insufficient history."
|
||||
fetch_depth:
|
||||
description: "Limit depth of the branch history fetched. **NOTE**: This can be adjusted to resolve errors with insufficient history."
|
||||
required: false
|
||||
default: "300"
|
||||
default: "40"
|
||||
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 commit of the current branch for push events."
|
||||
required: true
|
||||
default: "false"
|
||||
|
||||
outputs:
|
||||
added_files:
|
||||
@@ -158,6 +162,7 @@ runs:
|
||||
env:
|
||||
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_WORKSPACE: ${{ github.workspace }}
|
||||
@@ -171,7 +176,8 @@ runs:
|
||||
INPUT_SINCE: ${{ inputs.since }}
|
||||
INPUT_UNTIL: ${{ inputs.until }}
|
||||
INPUT_PATH: ${{ inputs.path }}
|
||||
INPUT_MAX_FETCH_DEPTH: ${{ inputs.max_fetch_depth }}
|
||||
INPUT_FETCH_DEPTH: ${{ inputs.fetch_depth }}
|
||||
INPUT_SINCE_LAST_REMOTE_COMMIT: ${{ inputs.since_last_remote_commit }}
|
||||
- name: Glob match
|
||||
uses: tj-actions/glob@v15
|
||||
id: glob
|
||||
|
||||
193
diff-sha.sh
193
diff-sha.sh
@@ -1,9 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eu
|
||||
set -euo pipefail
|
||||
|
||||
INITIAL_COMMIT="false"
|
||||
GITHUB_OUTPUT=${GITHUB_OUTPUT:-""}
|
||||
EXTRA_ARGS="--no-tags"
|
||||
|
||||
if [[ "$GITHUB_REF" == "refs/tags/"* ]]; then
|
||||
EXTRA_ARGS=""
|
||||
fi
|
||||
|
||||
echo "::group::changed-files-diff-sha"
|
||||
|
||||
@@ -38,62 +43,41 @@ else
|
||||
echo "Valid git version found: ($GIT_VERSION)"
|
||||
fi
|
||||
|
||||
echo "::debug::Getting HEAD SHA..."
|
||||
|
||||
if [[ -n "$INPUT_UNTIL" ]]; then
|
||||
echo "::debug::Getting HEAD SHA for '$INPUT_UNTIL'..."
|
||||
CURRENT_SHA=$(git log -1 --format="%H" --date=local --until="$INPUT_UNTIL") && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Invalid until date: $INPUT_UNTIL"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [[ -z $INPUT_SHA ]]; then
|
||||
CURRENT_SHA=$(git rev-list -n 1 "HEAD" 2>&1) && exit_status=$? || exit_status=$?
|
||||
else
|
||||
CURRENT_SHA=$INPUT_SHA; exit_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "::debug::Verifying the current commit SHA: $CURRENT_SHA"
|
||||
git rev-parse --quiet --verify "$CURRENT_SHA^{commit}" 1>/dev/null 2>&1 && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Unable to locate the current sha: $CURRENT_SHA"
|
||||
echo "::error::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage"
|
||||
exit 1
|
||||
else
|
||||
echo "::debug::Current SHA: $CURRENT_SHA"
|
||||
fi
|
||||
|
||||
function deepenShallowCloneToFindCommit() {
|
||||
local base_ref="$1"
|
||||
local diff="$2"
|
||||
local ref="$3"
|
||||
local target_branch="$4"
|
||||
local depth=20
|
||||
local max_depth=$INPUT_MAX_FETCH_DEPTH
|
||||
|
||||
while ! git diff "$base_ref$diff$ref" &>/dev/null; do
|
||||
echo "::debug::Unable to find merge-base in shallow clone. Increasing depth to $((depth * 2))..."
|
||||
|
||||
depth=$((depth * 2))
|
||||
|
||||
if [[ $depth -gt $max_depth ]]; then
|
||||
echo "::error::Unable to find merge-base in shallow clone. Please increase 'max_fetch_depth' to at least $((depth + 20))."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git fetch --no-tags -u --progress --deepen="$depth" origin "$target_branch":"$target_branch"
|
||||
done
|
||||
}
|
||||
|
||||
if [[ -z $GITHUB_BASE_REF ]]; then
|
||||
echo "Running on a push event..."
|
||||
TARGET_BRANCH=${GITHUB_REF/refs\/heads\//} && exit_status=$? || exit_status=$?
|
||||
CURRENT_BRANCH=$TARGET_BRANCH && exit_status=$? || exit_status=$?
|
||||
|
||||
echo "::debug::Getting HEAD SHA..."
|
||||
if [[ -n "$INPUT_UNTIL" ]]; then
|
||||
echo "::debug::Getting HEAD SHA for '$INPUT_UNTIL'..."
|
||||
CURRENT_SHA=$(git log -1 --format="%H" --date=local --until="$INPUT_UNTIL") && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Invalid until date: $INPUT_UNTIL"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [[ -z $INPUT_SHA ]]; then
|
||||
CURRENT_SHA=$(git rev-list -n 1 HEAD 2>&1) && exit_status=$? || exit_status=$?
|
||||
else
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH"
|
||||
CURRENT_SHA=$INPUT_SHA; exit_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "::debug::Verifying the current commit SHA: $CURRENT_SHA"
|
||||
git rev-parse --quiet --verify "$CURRENT_SHA^{commit}" 1>/dev/null 2>&1 && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Unable to locate the current sha: $CURRENT_SHA"
|
||||
echo "::error::Please verify that current sha is valid, and increase the fetch_depth to a number higher than $INPUT_FETCH_DEPTH."
|
||||
exit 1
|
||||
else
|
||||
echo "::debug::Current SHA: $CURRENT_SHA"
|
||||
fi
|
||||
|
||||
if [[ -z $INPUT_BASE_SHA ]]; then
|
||||
if [[ -n "$INPUT_SINCE" ]]; then
|
||||
echo "::debug::Getting base SHA for '$INPUT_SINCE'..."
|
||||
@@ -104,10 +88,20 @@ if [[ -z $GITHUB_BASE_REF ]]; then
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
PREVIOUS_SHA=""
|
||||
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" == "true" ]]; then
|
||||
PREVIOUS_SHA=""
|
||||
|
||||
if [[ "$GITHUB_EVENT_FORCED" == "false" || -z "$GITHUB_EVENT_FORCED" ]]; then
|
||||
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE
|
||||
if [[ "$GITHUB_EVENT_FORCED" == "false" || -z "$GITHUB_EVENT_FORCED" ]]; then
|
||||
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE
|
||||
fi
|
||||
else
|
||||
PREVIOUS_SHA=$(git rev-list -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ -z "$PREVIOUS_SHA" ]]; then
|
||||
if [[ "$GITHUB_EVENT_FORCED" == "false" || -z "$GITHUB_EVENT_FORCED" ]]; then
|
||||
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z "$PREVIOUS_SHA" || "$PREVIOUS_SHA" == "0000000000000000000000000000000000000000" ]]; then
|
||||
@@ -130,6 +124,8 @@ if [[ -z $GITHUB_BASE_REF ]]; then
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH"
|
||||
PREVIOUS_SHA=$INPUT_BASE_SHA
|
||||
TARGET_BRANCH=$(git name-rev --name-only "$PREVIOUS_SHA" 2>&1) && exit_status=$? || exit_status=$?
|
||||
CURRENT_BRANCH=$TARGET_BRANCH
|
||||
@@ -138,15 +134,12 @@ if [[ -z $GITHUB_BASE_REF ]]; then
|
||||
echo "::debug::Target branch $TARGET_BRANCH..."
|
||||
echo "::debug::Current branch $CURRENT_BRANCH..."
|
||||
|
||||
echo "::debug::Fetching previous commit SHA: $PREVIOUS_SHA"
|
||||
deepenShallowCloneToFindCommit "$PREVIOUS_SHA" ".." "$CURRENT_SHA" "$TARGET_BRANCH"
|
||||
|
||||
echo "::debug::Verifying the previous commit SHA: $PREVIOUS_SHA"
|
||||
git rev-parse --quiet --verify "$PREVIOUS_SHA^{commit}" 1>/dev/null 2>&1 && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Unable to locate the previous sha: $PREVIOUS_SHA"
|
||||
echo "::error::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage"
|
||||
echo "::error::Please verify that the previous sha commit is valid, and increase the fetch_depth to a number higher than $INPUT_FETCH_DEPTH."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
@@ -154,34 +147,96 @@ else
|
||||
TARGET_BRANCH=$GITHUB_BASE_REF
|
||||
CURRENT_BRANCH=$GITHUB_HEAD_REF
|
||||
|
||||
echo "Fetching remote refs..."
|
||||
|
||||
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" == "false" ]]; then
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS --depth="$INPUT_FETCH_DEPTH" origin +refs/heads/"$TARGET_BRANCH":refs/remotes/origin/"$TARGET_BRANCH"
|
||||
git branch --track "$TARGET_BRANCH" origin/"$TARGET_BRANCH" 2>/dev/null || true
|
||||
|
||||
depth=$INPUT_FETCH_DEPTH
|
||||
|
||||
while [ -z "$( git merge-base "$TARGET_BRANCH" HEAD )" ]; do
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS --deepen="$depth" origin "$TARGET_BRANCH" HEAD;
|
||||
depth=$((depth * 10))
|
||||
max_depth=5000
|
||||
|
||||
if [[ $depth -gt $max_depth ]]; then
|
||||
echo "::error::Unable to find merge-base between $TARGET_BRANCH and HEAD."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo "::debug::Getting HEAD SHA..."
|
||||
if [[ -n "$INPUT_UNTIL" ]]; then
|
||||
echo "::debug::Getting HEAD SHA for '$INPUT_UNTIL'..."
|
||||
CURRENT_SHA=$(git log -1 --format="%H" --date=local --until="$INPUT_UNTIL") && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Invalid until date: $INPUT_UNTIL"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [[ -z $INPUT_SHA ]]; then
|
||||
CURRENT_SHA=$(git rev-list --no-merges -n 1 HEAD 2>&1) && exit_status=$? || exit_status=$?
|
||||
else
|
||||
CURRENT_SHA=$INPUT_SHA; exit_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "::debug::Verifying the current commit SHA: $CURRENT_SHA"
|
||||
git rev-parse --quiet --verify "$CURRENT_SHA^{commit}" 1>/dev/null 2>&1 && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Unable to locate the current sha: $CURRENT_SHA"
|
||||
echo "::error::Please verify that current sha is valid, and increase the fetch_depth to a number higher than $INPUT_FETCH_DEPTH."
|
||||
exit 1
|
||||
else
|
||||
echo "::debug::Current SHA: $CURRENT_SHA"
|
||||
fi
|
||||
|
||||
if [[ -z $INPUT_BASE_SHA ]]; then
|
||||
git fetch --no-tags -u --progress --deepen=30 origin "$TARGET_BRANCH":"$TARGET_BRANCH"
|
||||
PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA && exit_status=$? || exit_status=$?
|
||||
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" == "true" ]]; then
|
||||
PREVIOUS_SHA=""
|
||||
|
||||
if [[ "$GITHUB_EVENT_FORCED" == "false" || -z "$GITHUB_EVENT_FORCED" ]]; then
|
||||
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE
|
||||
fi
|
||||
|
||||
if [[ -z "$PREVIOUS_SHA" || "$PREVIOUS_SHA" == "0000000000000000000000000000000000000000" ]]; then
|
||||
PREVIOUS_SHA=$(git rev-list -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
else
|
||||
PREVIOUS_SHA=$(git rev-list -n 1 "$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
|
||||
if [[ -z "$PREVIOUS_SHA" || "$PREVIOUS_SHA" == "$CURRENT_SHA" ]]; then
|
||||
PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
|
||||
echo "::debug::Previous SHA: $PREVIOUS_SHA"
|
||||
else
|
||||
git fetch --no-tags -u --progress --deepen=30 origin "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$?
|
||||
PREVIOUS_SHA=$INPUT_BASE_SHA && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
|
||||
echo "::debug::Target branch: $TARGET_BRANCH"
|
||||
echo "::debug::Current branch: $CURRENT_BRANCH"
|
||||
|
||||
echo "::debug::Fetching previous commit SHA: $PREVIOUS_SHA"
|
||||
deepenShallowCloneToFindCommit "$PREVIOUS_SHA" "..." "$CURRENT_SHA" "$TARGET_BRANCH"
|
||||
|
||||
echo "::debug::Verifying the previous commit SHA: $PREVIOUS_SHA"
|
||||
git rev-parse --quiet --verify "$PREVIOUS_SHA^{commit}" 1>/dev/null 2>&1 && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Unable to locate the previous sha: $PREVIOUS_SHA"
|
||||
echo "::error::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage"
|
||||
echo "::error::Please verify that the previous sha is valid, and increase the fetch_depth to a number higher than $INPUT_FETCH_DEPTH."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n "$PREVIOUS_SHA" && -n "$CURRENT_SHA" && "$PREVIOUS_SHA" == "$CURRENT_SHA" && "$INITIAL_COMMIT" == "false" ]]; then
|
||||
echo "::error::Similar commit hashes detected: previous sha: $PREVIOUS_SHA is equivalent to the current sha: $CURRENT_SHA"
|
||||
echo "::error::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage"
|
||||
if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" && "$INITIAL_COMMIT" == "false" ]]; then
|
||||
echo "::error::Similar commit hashes detected: previous sha: $PREVIOUS_SHA is equivalent to the current sha: $CURRENT_SHA."
|
||||
echo "::error::Please verify that both commits are valid, and increase the fetch_depth to a number higher than $INPUT_FETCH_DEPTH."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eu
|
||||
set -euo pipefail
|
||||
|
||||
INPUT_SEPARATOR="${INPUT_SEPARATOR//'%'/'%25'}"
|
||||
INPUT_SEPARATOR="${INPUT_SEPARATOR//'.'/'%2E'}"
|
||||
@@ -30,13 +30,13 @@ function get_diff() {
|
||||
local filter="$3"
|
||||
|
||||
while IFS='' read -r sub; do
|
||||
sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$?
|
||||
sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | { grep '^[-]Subproject commit' || true; } | awk '{print $3}')" && exit_status=$? || exit_status=$?
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$?
|
||||
sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | { grep '^[+]Subproject commit' || true; } | awk '{print $3}')" && exit_status=$? || exit_status=$?
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha"
|
||||
exit 1
|
||||
@@ -74,13 +74,13 @@ function get_renames() {
|
||||
local sha="$2"
|
||||
|
||||
while IFS='' read -r sub; do
|
||||
sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$?
|
||||
sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | { grep '^[-]Subproject commit' || true; } | awk '{print $3}')" && exit_status=$? || exit_status=$?
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Failed to get previous commit for submodule ($sub) between: $base$DIFF$sha"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')" && exit_status=$? || exit_status=$?
|
||||
sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | { grep '^[+]Subproject commit' || true; } | awk '{print $3}')" && exit_status=$? || exit_status=$?
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha"
|
||||
exit 1
|
||||
@@ -97,14 +97,14 @@ function get_renames() {
|
||||
done < <(git submodule | awk '{print $2}')
|
||||
|
||||
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
|
||||
git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$?
|
||||
git log --name-status --ignore-submodules=all "$base" "$sha" | { grep -E "^R" || true; } | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Failed to get renamed directories between: $base → $sha"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$?
|
||||
git log --name-status --ignore-submodules=all "$base" "$sha" | { grep -E "^R" || true; } | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::error::Failed to get renamed files between: $base → $sha"
|
||||
@@ -161,19 +161,19 @@ if [[ "$INPUT_HAS_CUSTOM_PATTERNS" == "false" ]]; then
|
||||
fi
|
||||
fi
|
||||
else
|
||||
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | { grep -x -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
if [[ $INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES == "true" ]]; then
|
||||
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | grep -w -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | { grep -w -E -f "$INPUT_FILES_PATTERN_FILE" || true; } | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
fi
|
||||
|
||||
ALL_OTHER_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
|
||||
Reference in New Issue
Block a user