Compare commits
47 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b6c057cd8 | ||
|
|
e2b21be3d2 | ||
|
|
a7b70fa84d | ||
|
|
7a06bb7247 | ||
|
|
9dc80210cf | ||
|
|
a1a2be24bd | ||
|
|
bb675e1715 | ||
|
|
9e0389c5ae | ||
|
|
9b3a93a0c1 | ||
|
|
a991e1d22a | ||
|
|
0df8efd4d7 | ||
|
|
4f64429e8b | ||
|
|
a73691148f | ||
|
|
cd8e421366 | ||
|
|
32a46ba6ba | ||
|
|
0e4974f191 | ||
|
|
4f939f8e80 | ||
|
|
2405ae6c59 | ||
|
|
49ac42e025 | ||
|
|
9cac2f8ea1 | ||
|
|
6497e8ef99 | ||
|
|
1ae6035162 | ||
|
|
8b8c347ee9 | ||
|
|
bd4ca4c445 | ||
|
|
2a28c9bb7d | ||
|
|
5f902276c1 | ||
|
|
73401b8f0b | ||
|
|
fa300c6aa4 | ||
|
|
79fbc9646d | ||
|
|
eaffc06f9c | ||
|
|
d14a55854a | ||
|
|
01588a88f3 | ||
|
|
c3a1d0574b | ||
|
|
0358232251 | ||
|
|
5bc868d5b5 | ||
|
|
a1893f84b3 | ||
|
|
44d49bc228 | ||
|
|
3f1e44af6c | ||
|
|
d9be0ccb5e | ||
|
|
ff10d2fbc5 | ||
|
|
8fb90ed7f6 | ||
|
|
474e3bd363 | ||
|
|
b2902f40b3 | ||
|
|
17ae17127c | ||
|
|
65dc0e47e9 | ||
|
|
ba5abef332 | ||
|
|
84dcdf586d |
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
||||
- name: Checkout to branch
|
||||
uses: actions/checkout@v3
|
||||
- name: shellcheck
|
||||
uses: reviewdog/action-shellcheck@v1.15
|
||||
uses: reviewdog/action-shellcheck@v1.16
|
||||
with:
|
||||
github_token: ${{ secrets.PAT_TOKEN }}
|
||||
|
||||
|
||||
2
.github/workflows/update-readme.yml
vendored
2
.github/workflows/update-readme.yml
vendored
@@ -9,7 +9,7 @@ jobs:
|
||||
sync-assets:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3.1.0
|
||||
- uses: actions/checkout@v3.2.0
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
||||
105
HISTORY.md
105
HISTORY.md
@@ -1,20 +1,59 @@
|
||||
# Changelog
|
||||
|
||||
## [Unreleased](https://github.com/tj-actions/changed-files/tree/HEAD)
|
||||
## [v34.6.0](https://github.com/tj-actions/changed-files/tree/v34.6.0) (2022-12-14)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.5.2...HEAD)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34...v34.6.0)
|
||||
|
||||
## [v34](https://github.com/tj-actions/changed-files/tree/v34) (2022-12-14)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.5.4...v34)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- \[BUG\] changed-files-diff-sha prints thousands of lines and takes two minutes to run [\#855](https://github.com/tj-actions/changed-files/issues/855)
|
||||
- \[BUG\] \(v34.5.4\) Input does not meet YAML 1.2 "Core Schema" specification: head-repo-fork [\#853](https://github.com/tj-actions/changed-files/issues/853)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- fix: error with retrieving changed files for closed prs [\#860](https://github.com/tj-actions/changed-files/pull/860) ([jackton1](https://github.com/jackton1))
|
||||
- fix: error detecting changed files for closed PR's [\#859](https://github.com/tj-actions/changed-files/pull/859) ([jackton1](https://github.com/jackton1))
|
||||
- fix: bug-changed-files-diff-sha-prints-thousands-of-lines-and-takes-two-minutes-to-run [\#857](https://github.com/tj-actions/changed-files/pull/857) ([jackton1](https://github.com/jackton1))
|
||||
- chore\(deps\): update reviewdog/action-shellcheck action to v1.16 [\#856](https://github.com/tj-actions/changed-files/pull/856) ([renovate[bot]](https://github.com/apps/renovate))
|
||||
- Updated README.md [\#854](https://github.com/tj-actions/changed-files/pull/854) ([jackton1](https://github.com/jackton1))
|
||||
- Updated README.md [\#852](https://github.com/tj-actions/changed-files/pull/852) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.5.4 [\#851](https://github.com/tj-actions/changed-files/pull/851) ([jackton1](https://github.com/jackton1))
|
||||
- chore\(deps\): update actions/checkout action to v3.2.0 [\#850](https://github.com/tj-actions/changed-files/pull/850) ([renovate[bot]](https://github.com/apps/renovate))
|
||||
|
||||
## [v34.5.4](https://github.com/tj-actions/changed-files/tree/v34.5.4) (2022-12-12)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.5.3...v34.5.4)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- chore: update readme [\#848](https://github.com/tj-actions/changed-files/pull/848) ([jackton1](https://github.com/jackton1))
|
||||
- chore: update error handling [\#847](https://github.com/tj-actions/changed-files/pull/847) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.5.3 [\#846](https://github.com/tj-actions/changed-files/pull/846) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.5.3](https://github.com/tj-actions/changed-files/tree/v34.5.3) (2022-12-10)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.5.2...v34.5.3)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- \[BUG\] Error: Unable to locate the previous sha: fatal: ambiguous argument 'main': unknown revision or path not in the working tree [\#840](https://github.com/tj-actions/changed-files/issues/840)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- chore: update diff-sha.sh [\#845](https://github.com/tj-actions/changed-files/pull/845) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.5.2 [\#844](https://github.com/tj-actions/changed-files/pull/844) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.5.2](https://github.com/tj-actions/changed-files/tree/v34.5.2) (2022-12-10)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34...v34.5.2)
|
||||
|
||||
## [v34](https://github.com/tj-actions/changed-files/tree/v34) (2022-12-10)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.5.1...v34)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.5.1...v34.5.2)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
@@ -37,10 +76,6 @@
|
||||
- \[BUG\] Glob not matching changed files [\#829](https://github.com/tj-actions/changed-files/issues/829)
|
||||
- \[BUG\] Wrong changed-files returned for forked PRs [\#714](https://github.com/tj-actions/changed-files/issues/714)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Updated README.md [\#838](https://github.com/tj-actions/changed-files/pull/838) ([jackton1](https://github.com/jackton1))
|
||||
@@ -162,7 +197,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:**
|
||||
|
||||
@@ -177,13 +212,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:**
|
||||
|
||||
@@ -459,7 +494,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...v32.0.0)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v31.0.3...v32.0.0)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
@@ -470,13 +505,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](https://github.com/tj-actions/changed-files/tree/v31) (2022-10-02)
|
||||
|
||||
[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)
|
||||
[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)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
@@ -516,7 +551,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...v31.0.0)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v30.0.0...v31.0.0)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
@@ -529,13 +564,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](https://github.com/tj-actions/changed-files/tree/v30) (2022-09-24)
|
||||
|
||||
[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)
|
||||
[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)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
@@ -1482,7 +1517,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:**
|
||||
|
||||
@@ -1500,13 +1535,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:**
|
||||
|
||||
|
||||
90
README.md
90
README.md
@@ -23,9 +23,9 @@ Retrieve all changed files and directories relative to the target branch or the
|
||||
* Easy to debug.
|
||||
* Scales to large repositories.
|
||||
* Git submodules support.
|
||||
* No extra API calls.
|
||||
* Escaped JSON Output which can be used for running matrix jobs based on changed files.
|
||||
* List only changed directories.
|
||||
* Optionally list only changed directories.
|
||||
* Restrict the max depth of changed directories.
|
||||
* 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
|
||||
@@ -157,31 +157,31 @@ 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 path names<br>relative to it. **NOTE:** This<br>requires you to specify the<br>top level directory via the<br>`path` 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. |
|
||||
| dir\_names\_max\_depth | string | false | | Maximum depth of directories to<br>output. e.g `test/test1/test2` with max<br>depth of `2` returns `test/test1`.<br> |
|
||||
| fetch\_depth | string | false | `"40"` | Initial 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>quotes. |
|
||||
| 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 quotes. |
|
||||
| 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 | `"5000"` | Maximum depth of the branch<br>history fetched. **NOTE**: This can<br>be adjusted to resolve errors<br>with insufficient history. |
|
||||
| old\_new\_files\_separator | string | false | `" "` | Split character for old and<br>new renamed 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. |
|
||||
| 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 path names<br>relative to it. **NOTE:** This<br>requires you to specify the<br>top level directory via the<br>`path` 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. |
|
||||
| dir\_names\_max\_depth | string | false | | Maximum depth of directories to<br>output. e.g `test/test1/test2` with max<br>depth of `2` returns `test/test1`.<br> |
|
||||
| fetch\_depth | string | false | `"50"` | Initial 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>quotes. |
|
||||
| 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 quotes. |
|
||||
| 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 | `"6000"` | Maximum depth of the branch<br>history fetched. **NOTE**: This can<br>be adjusted to resolve errors<br>with insufficient history. |
|
||||
| old\_new\_files\_separator | string | false | `" "` | Split character for old and<br>new renamed 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 remote<br>commit of the current branch<br>for push events. |
|
||||
| until | string | false | | Get changed files for commits<br>whose timestamp is earlier than<br>the given time. |
|
||||
|
||||
<!-- AUTO-DOC-INPUT:END -->
|
||||
|
||||
@@ -591,6 +591,42 @@ See [inputs](#inputs) for more information.
|
||||
> However, this action will handle spaces in file names, with a recommendation of using a separator to prevent hidden issues.
|
||||
> 
|
||||
|
||||
## Migration guide
|
||||
|
||||
With the switch from using grep's Extended regex to match files to the natively supported workflow glob pattern matching syntax introduced in [v13](https://github.com/tj-actions/changed-files/releases/tag/v13) you'll need to modify patterns used to match `files`.
|
||||
|
||||
**BEFORE**
|
||||
|
||||
```yml
|
||||
...
|
||||
|
||||
- name: Get specific changed files
|
||||
id: changed-files-specific
|
||||
uses: tj-actions/changed-files@v12.2
|
||||
with:
|
||||
files: |
|
||||
\.sh$
|
||||
.(sql|py)$
|
||||
^(mynewfile|custom)
|
||||
```
|
||||
|
||||
**AFTER**
|
||||
|
||||
```yml
|
||||
...
|
||||
|
||||
- name: Get specific changed files
|
||||
id: changed-files-specific
|
||||
uses: tj-actions/changed-files@v24
|
||||
with:
|
||||
files: |
|
||||
*.sh
|
||||
*.sql
|
||||
*.py
|
||||
mynewfile
|
||||
custom/**
|
||||
```
|
||||
|
||||
## Credits
|
||||
|
||||
This package was created with [Cookiecutter](https://github.com/cookiecutter/cookiecutter).
|
||||
|
||||
@@ -83,13 +83,13 @@ inputs:
|
||||
fetch_depth:
|
||||
description: "Initial depth of the branch history fetched. **NOTE**: This can be adjusted to resolve errors with insufficient history."
|
||||
required: false
|
||||
default: "40"
|
||||
default: "50"
|
||||
max_fetch_depth:
|
||||
description: "Maximum depth of the branch history fetched. **NOTE**: This can be adjusted to resolve errors with insufficient history."
|
||||
required: false
|
||||
default: "5000"
|
||||
default: "6000"
|
||||
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."
|
||||
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
|
||||
default: "false"
|
||||
|
||||
@@ -176,6 +176,7 @@ runs:
|
||||
GITHUB_EVENT_HEAD_REPO_FORK: ${{ github.event.pull_request.head.repo.fork }}
|
||||
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 }}
|
||||
GITHUB_EVENT_BEFORE: ${{ github.event.before }}
|
||||
GITHUB_EVENT_FORCED: ${{ github.event.forced }}
|
||||
GITHUB_REFNAME: ${{ github.ref_name }}
|
||||
|
||||
100
diff-sha.sh
100
diff-sha.sh
@@ -4,13 +4,13 @@ set -euo pipefail
|
||||
|
||||
INITIAL_COMMIT="false"
|
||||
GITHUB_OUTPUT=${GITHUB_OUTPUT:-""}
|
||||
EXTRA_ARGS="--no-tags"
|
||||
EXTRA_ARGS="--no-tags --prune --no-recurse-submodules"
|
||||
PREVIOUS_SHA=""
|
||||
CURRENT_SHA=""
|
||||
DIFF="..."
|
||||
|
||||
if [[ "$GITHUB_REF" == "refs/tags/"* ]]; then
|
||||
EXTRA_ARGS=""
|
||||
EXTRA_ARGS="--prune --no-recurse-submodules"
|
||||
fi
|
||||
|
||||
if [[ "$GITHUB_EVENT_HEAD_REPO_FORK" == "true" ]]; then
|
||||
@@ -69,7 +69,7 @@ if [[ -z $GITHUB_BASE_REF ]]; 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" origin "$CURRENT_BRANCH"
|
||||
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
|
||||
@@ -132,7 +132,7 @@ if [[ -z $GITHUB_BASE_REF ]]; then
|
||||
fi
|
||||
else
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH" origin "$CURRENT_BRANCH"
|
||||
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH" origin "$CURRENT_BRANCH" 1>/dev/null 2>&1
|
||||
PREVIOUS_SHA=$INPUT_BASE_SHA
|
||||
fi
|
||||
|
||||
@@ -160,11 +160,32 @@ else
|
||||
|
||||
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" == "false" ]]; then
|
||||
# shellcheck disable=SC2086
|
||||
git fetch -u --progress $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
|
||||
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
|
||||
git branch --track "$TARGET_BRANCH" origin/"$TARGET_BRANCH" 1>/dev/null 2>&1 || true
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS -u --progress --depth=$(( GITHUB_EVENT_PULL_REQUEST_COMMITS + 1 )) origin +"$GITHUB_REF":refs/remotes/origin/"$CURRENT_BRANCH" 1>/dev/null 2>&1
|
||||
|
||||
COMMON_ANCESTOR=$(git rev-list --first-parent --max-parents=0 --max-count=1 origin/"$CURRENT_BRANCH") && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ -z "$COMMON_ANCESTOR" ]]; then
|
||||
echo "::debug::Unable to locate a common ancestor for the current branch: $CURRENT_BRANCH"
|
||||
else
|
||||
echo "::debug::Common ancestor: $COMMON_ANCESTOR"
|
||||
|
||||
DATE=$(git log --date=iso8601 --format=%cd "${COMMON_ANCESTOR}")
|
||||
|
||||
if [[ -z "$DATE" ]]; then
|
||||
echo "::error::Unable to locate a date for the common ancestor: $COMMON_ANCESTOR"
|
||||
exit 1
|
||||
else
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS --shallow-since="${DATE}" origin +refs/heads/"$TARGET_BRANCH":refs/remotes/origin/"$TARGET_BRANCH" 1>/dev/null 2>&1
|
||||
echo "::debug::Date: $DATE"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS -u --progress --depth="$INPUT_FETCH_DEPTH" origin +"$GITHUB_REF":refs/remotes/origin/"$CURRENT_BRANCH"
|
||||
git fetch $EXTRA_ARGS -u --progress --depth="$INPUT_FETCH_DEPTH" origin +"$GITHUB_REF":refs/remotes/origin/"$CURRENT_BRANCH" 1>/dev/null 2>&1
|
||||
fi
|
||||
|
||||
echo "::debug::Getting HEAD SHA..."
|
||||
@@ -178,9 +199,13 @@ else
|
||||
fi
|
||||
else
|
||||
if [[ -z $INPUT_SHA ]]; then
|
||||
CURRENT_SHA=$(git rev-list --no-merges -n 1 HEAD 2>&1) && exit_status=$? || exit_status=$?
|
||||
CURRENT_SHA=$(git rev-list -n 1 HEAD 2>&1) && 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 2>&1) && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -198,14 +223,9 @@ else
|
||||
if [[ -z $INPUT_BASE_SHA ]]; then
|
||||
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" == "true" ]]; then
|
||||
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE
|
||||
|
||||
if ! git rev-parse --quiet --verify "$PREVIOUS_SHA^{commit}" 1>/dev/null 2>&1; then
|
||||
# shellcheck disable=SC2046
|
||||
PREVIOUS_SHA=$(git rev-parse origin/"$CURRENT_BRANCH" 2>&1) && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
else
|
||||
PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA
|
||||
|
||||
|
||||
if ! git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA$DIFF$CURRENT_SHA" 1>/dev/null 2>&1; then
|
||||
PREVIOUS_SHA=$(git merge-base "$PREVIOUS_SHA" "$CURRENT_SHA" 2>&1) && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
@@ -215,36 +235,36 @@ else
|
||||
PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
|
||||
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" == "false" ]]; then
|
||||
if [[ -f .git/shallow ]]; then
|
||||
depth=$INPUT_FETCH_DEPTH
|
||||
max_depth=$INPUT_MAX_FETCH_DEPTH
|
||||
|
||||
for ((i=0; i<max_depth; i+=depth)); do
|
||||
echo "Fetching $depth commits..."
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS -u --progress --deepen="$depth" origin +"$GITHUB_REF":refs/remotes/origin/"$CURRENT_BRANCH"
|
||||
|
||||
if git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA$DIFF$CURRENT_SHA" 1>/dev/null 2>&1; then
|
||||
PREVIOUS_SHA=$(git merge-base "$TARGET_BRANCH" "$CURRENT_SHA" 2>&1) && exit_status=$? || exit_status=$?
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if ((i >= max_depth)); then
|
||||
echo "::error::Unable to locate a common ancestor between $TARGET_BRANCH and $CURRENT_SHA"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "::debug::Not a shallow clone, skipping merge-base check."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "::debug::Previous SHA: $PREVIOUS_SHA"
|
||||
else
|
||||
PREVIOUS_SHA=$INPUT_BASE_SHA && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
|
||||
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" == "false" ]]; then
|
||||
if [[ -f .git/shallow ]]; then
|
||||
depth=$INPUT_FETCH_DEPTH
|
||||
max_depth=$INPUT_MAX_FETCH_DEPTH
|
||||
|
||||
for ((i=0; i<max_depth; i+=depth)); do
|
||||
if git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA$DIFF$CURRENT_SHA" 1>/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
|
||||
echo "Fetching $i commits..."
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS -u --progress --deepen="$i" origin $TARGET_BRANCH $CURRENT_SHA 1>/dev/null 2>&1
|
||||
done
|
||||
|
||||
if ((i > max_depth)); then
|
||||
echo "::error::Unable to locate a common ancestor between $TARGET_BRANCH and $CURRENT_BRANCH with: $PREVIOUS_SHA$DIFF$CURRENT_SHA"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "::debug::Not a shallow clone, skipping merge-base check."
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
echo "::debug::Target branch: $TARGET_BRANCH"
|
||||
echo "::debug::Current branch: $CURRENT_BRANCH"
|
||||
|
||||
Reference in New Issue
Block a user