Compare commits
51 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0626c3f940 | ||
|
|
83952deb06 | ||
|
|
c4bb28b25e | ||
|
|
a2b1e5dbb9 | ||
|
|
349b9cd596 | ||
|
|
565ad867fa | ||
|
|
d984765c3c | ||
|
|
f25e6fe945 | ||
|
|
110b9baa5f | ||
|
|
d2f7657e17 | ||
|
|
a5b3ab3adf | ||
|
|
b04bee68cb | ||
|
|
5a415cfa17 | ||
|
|
dac1573a9f | ||
|
|
2cb89c14f8 | ||
|
|
0c11739343 | ||
|
|
a8f275909b | ||
|
|
78e918f749 | ||
|
|
e20f763562 | ||
|
|
aa677d9200 | ||
|
|
c763fb03d9 | ||
|
|
e92019659f | ||
|
|
42fb35e835 | ||
|
|
75ea265d3a | ||
|
|
88a778c8d7 | ||
|
|
2f66d3becc | ||
|
|
9ca5762164 | ||
|
|
4f51d4bdf2 | ||
|
|
3599672c90 | ||
|
|
2b31ed904d | ||
|
|
5db646f3d5 | ||
|
|
f1df99fa1d | ||
|
|
e5cb100651 | ||
|
|
5375720ffa | ||
|
|
4311e06ffd | ||
|
|
f8e9251aac | ||
|
|
b1478017f4 | ||
|
|
1a70916518 | ||
|
|
1bfae76e44 | ||
|
|
85368c0a27 | ||
|
|
901681a010 | ||
|
|
3787560a3d | ||
|
|
a64becde5e | ||
|
|
d6db5b61d1 | ||
|
|
3d674ed245 | ||
|
|
aa0a3c1ae1 | ||
|
|
d5e31f6bc1 | ||
|
|
211879e6d9 | ||
|
|
b75f6c0571 | ||
|
|
4f1ac0562f | ||
|
|
f8f2961361 |
35
.github/workflows/test.yml
vendored
35
.github/workflows/test.yml
vendored
@@ -7,7 +7,6 @@ on:
|
||||
- "**"
|
||||
pull_request:
|
||||
types:
|
||||
- closed
|
||||
- opened
|
||||
- synchronize
|
||||
- reopened
|
||||
@@ -37,7 +36,7 @@ jobs:
|
||||
fail-fast: false
|
||||
max-parallel: 2
|
||||
matrix:
|
||||
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, windows-2022]
|
||||
platform: [ubuntu-latest]
|
||||
steps:
|
||||
- name: Checkout into dir1
|
||||
uses: actions/checkout@v3
|
||||
@@ -94,7 +93,7 @@ jobs:
|
||||
fail-fast: false
|
||||
max-parallel: 2
|
||||
matrix:
|
||||
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, windows-2022]
|
||||
platform: [ubuntu-latest]
|
||||
|
||||
steps:
|
||||
- name: Checkout to branch
|
||||
@@ -149,7 +148,7 @@ jobs:
|
||||
fail-fast: false
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, windows-2022]
|
||||
platform: [ubuntu-latest]
|
||||
|
||||
steps:
|
||||
- name: Checkout to branch
|
||||
@@ -184,7 +183,7 @@ jobs:
|
||||
fail-fast: false
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, windows-2022]
|
||||
platform: [ubuntu-latest]
|
||||
|
||||
steps:
|
||||
- name: Checkout to branch
|
||||
@@ -212,7 +211,7 @@ jobs:
|
||||
fail-fast: false
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, windows-2022]
|
||||
platform: [ubuntu-latest]
|
||||
fetch-depth: [1, 2]
|
||||
|
||||
steps:
|
||||
@@ -238,7 +237,7 @@ jobs:
|
||||
fail-fast: false
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, windows-2022]
|
||||
platform: [ubuntu-latest]
|
||||
|
||||
steps:
|
||||
- name: Checkout to branch
|
||||
@@ -290,7 +289,7 @@ jobs:
|
||||
fail-fast: false
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, windows-2022]
|
||||
platform: [ubuntu-latest]
|
||||
|
||||
steps:
|
||||
- name: Checkout to branch
|
||||
@@ -373,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: ./
|
||||
@@ -945,21 +956,21 @@ jobs:
|
||||
- name: Get branch name
|
||||
id: branch-name
|
||||
uses: tj-actions/branch-names@v6
|
||||
if: github.event_name == 'pull_request'
|
||||
if: github.event_name == 'pull_request' && matrix.fetch-depth == 0
|
||||
- uses: nrwl/nx-set-shas@v3
|
||||
id: last_successful_commit
|
||||
if: github.event_name == 'pull_request' && github.event.action != 'closed'
|
||||
if: github.event_name == 'pull_request' && github.event.action != 'closed' && matrix.fetch-depth == 0
|
||||
with:
|
||||
main-branch-name: ${{ steps.branch-name.outputs.base_ref_branch }}
|
||||
workflow-id: 'test.yml'
|
||||
- name: Run changed-files with a custom base sha
|
||||
if: github.event_name == 'pull_request' && github.event.action != 'closed'
|
||||
if: github.event_name == 'pull_request' && github.event.action != 'closed' && matrix.fetch-depth == 0
|
||||
id: changed-files-custom-base-sha
|
||||
uses: ./
|
||||
with:
|
||||
base_sha: ${{ steps.last_successful_commit.outputs.base }}
|
||||
- name: Show output
|
||||
if: github.event_name == 'pull_request' && github.event.action != 'closed'
|
||||
if: github.event_name == 'pull_request' && github.event.action != 'closed' && matrix.fetch-depth == 0
|
||||
run: |
|
||||
echo '${{ toJSON(steps.changed-files-custom-base-sha.outputs) }}'
|
||||
shell:
|
||||
|
||||
113
HISTORY.md
113
HISTORY.md
@@ -1,12 +1,75 @@
|
||||
# Changelog
|
||||
|
||||
## [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...v35.0.1)
|
||||
|
||||
## [v35](https://github.com/tj-actions/changed-files/tree/v35) (2022-12-19)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v35.0.0...v35)
|
||||
|
||||
**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/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:**
|
||||
|
||||
- How to see the changed files after the PR is merged ? [\#874](https://github.com/tj-actions/changed-files/issues/874)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Updated README.md [\#885](https://github.com/tj-actions/changed-files/pull/885) ([jackton1](https://github.com/jackton1))
|
||||
- fix: error retrieving changed files [\#882](https://github.com/tj-actions/changed-files/pull/882) ([jackton1](https://github.com/jackton1))
|
||||
- fix: fail when the merge base is not found [\#879](https://github.com/tj-actions/changed-files/pull/879) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.6.2 [\#878](https://github.com/tj-actions/changed-files/pull/878) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.6.2](https://github.com/tj-actions/changed-files/tree/v34.6.2) (2022-12-16)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34...v34.6.2)
|
||||
|
||||
## [v34](https://github.com/tj-actions/changed-files/tree/v34) (2022-12-16)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.6.1...v34)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- \[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))
|
||||
- Updated README.md [\#876](https://github.com/tj-actions/changed-files/pull/876) ([jackton1](https://github.com/jackton1))
|
||||
- chore: update test [\#873](https://github.com/tj-actions/changed-files/pull/873) ([jackton1](https://github.com/jackton1))
|
||||
- chore: update test dir [\#872](https://github.com/tj-actions/changed-files/pull/872) ([jackton1](https://github.com/jackton1))
|
||||
- chore: remove ubuntu 18.04 from test [\#871](https://github.com/tj-actions/changed-files/pull/871) ([jackton1](https://github.com/jackton1))
|
||||
- Updated README.md [\#869](https://github.com/tj-actions/changed-files/pull/869) ([jackton1](https://github.com/jackton1))
|
||||
- chore\(deps\): update tj-actions/verify-changed-files action to v13 [\#868](https://github.com/tj-actions/changed-files/pull/868) ([renovate[bot]](https://github.com/apps/renovate))
|
||||
- chore\(deps\): update tj-actions/auto-doc action to v1.6.0 [\#867](https://github.com/tj-actions/changed-files/pull/867) ([renovate[bot]](https://github.com/apps/renovate))
|
||||
- feat: fallback to fork-point [\#866](https://github.com/tj-actions/changed-files/pull/866) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v34.6.1 [\#864](https://github.com/tj-actions/changed-files/pull/864) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v34.6.1](https://github.com/tj-actions/changed-files/tree/v34.6.1) (2022-12-14)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34...v34.6.1)
|
||||
|
||||
## [v34](https://github.com/tj-actions/changed-files/tree/v34) (2022-12-14)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.6.0...v34)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.6.0...v34.6.1)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
@@ -27,10 +90,6 @@
|
||||
- \[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))
|
||||
@@ -508,7 +567,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:**
|
||||
|
||||
@@ -519,13 +578,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:**
|
||||
|
||||
@@ -565,7 +624,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:**
|
||||
|
||||
@@ -578,13 +637,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:**
|
||||
|
||||
@@ -1531,7 +1590,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.9...v12)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11...v12)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
@@ -1549,13 +1608,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.9](https://github.com/tj-actions/changed-files/tree/v11.9) (2021-12-04)
|
||||
|
||||
[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)
|
||||
[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)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
|
||||
46
README.md
46
README.md
@@ -63,6 +63,7 @@ on:
|
||||
branches:
|
||||
- main
|
||||
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest # windows-latest | macos-latest
|
||||
@@ -75,7 +76,7 @@ jobs:
|
||||
# Example 1
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
|
||||
- name: List all changed files
|
||||
run: |
|
||||
@@ -86,7 +87,7 @@ jobs:
|
||||
# Example 2
|
||||
- name: Get changed files in the docs folder
|
||||
id: changed-files-specific
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
files: |
|
||||
docs/**
|
||||
@@ -163,7 +164,7 @@ Support this project with a :star:
|
||||
| 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"` | Initial depth of the branch history fetched.<br>**NOTE**: This can be adjusted to resolve<br>errors with insufficient history. |
|
||||
| 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. |
|
||||
@@ -172,9 +173,9 @@ Support this project with a :star:
|
||||
| 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. |
|
||||
| max\_fetch\_depth | string | false | `"9000"` | Maximum depth of the branch history fetched.<br>**NOTE**: This can be adjusted to resolve<br>errors with insufficient history. |
|
||||
| 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. |
|
||||
| output\_dir | string | false | `".github/outputs"` | Directory to store output files. |
|
||||
| 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 |
|
||||
@@ -182,6 +183,7 @@ Support this project with a :star:
|
||||
| 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. |
|
||||
| write\_output\_files | string | false | `"false"` | Write outputs to files in the `.github/outputs`<br>folder by default. |
|
||||
|
||||
<!-- AUTO-DOC-INPUT:END -->
|
||||
|
||||
@@ -194,7 +196,7 @@ Support this project with a :star:
|
||||
...
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
...
|
||||
```
|
||||
|
||||
@@ -207,7 +209,7 @@ Support this project with a :star:
|
||||
...
|
||||
- name: Get all changed files and use a comma separator in the output
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
separator: ","
|
||||
...
|
||||
@@ -224,7 +226,7 @@ See [inputs](#inputs) for more information.
|
||||
...
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
|
||||
- name: List all added files
|
||||
run: |
|
||||
@@ -245,7 +247,7 @@ See [outputs](#outputs) for a list of all available outputs.
|
||||
...
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
|
||||
- name: Run a step if my-file.txt was modified
|
||||
if: contains(steps.changed-files.outputs.modified_files, 'my-file.txt')
|
||||
@@ -265,7 +267,7 @@ See [outputs](#outputs) for a list of all available outputs.
|
||||
...
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
files: |
|
||||
my-file.txt
|
||||
@@ -288,7 +290,7 @@ See [inputs](#inputs) for more information.
|
||||
...
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
files: |
|
||||
my-file.txt
|
||||
@@ -335,7 +337,7 @@ See [outputs](#outputs) for a list of all available outputs.
|
||||
...
|
||||
- name: Get changed files using a source file or list of file(s) to populate to files input.
|
||||
id: changed-files-specific-source-file
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
files_from_source_file: test/changed-files-list.txt
|
||||
...
|
||||
@@ -352,7 +354,7 @@ See [inputs](#inputs) for more information.
|
||||
...
|
||||
- name: Get changed files using a source file or list of file(s) to populate to files input and optionally specify more files.
|
||||
id: changed-files-specific-source-file-and-specify-files
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
files_from_source_file: |
|
||||
test/changed-files-list.txt
|
||||
@@ -373,7 +375,7 @@ See [inputs](#inputs) for more information.
|
||||
...
|
||||
- name: Get changed files using a different SHA
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
sha: ${{ github.event.pull_request.head.sha }}
|
||||
...
|
||||
@@ -390,7 +392,7 @@ See [inputs](#inputs) for more information.
|
||||
...
|
||||
- name: Get changed files using a different base SHA
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
base_sha: ${{ github.event.pull_request.base.sha }}
|
||||
...
|
||||
@@ -413,7 +415,7 @@ See [inputs](#inputs) for more information.
|
||||
|
||||
- name: Run changed-files with defaults in dir1
|
||||
id: changed-files-for-dir1
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
path: dir1
|
||||
|
||||
@@ -436,7 +438,7 @@ See [inputs](#inputs) for more information.
|
||||
...
|
||||
- name: Run changed-files with quotepath disabled
|
||||
id: changed-files-quotepath
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
quotepath: "false"
|
||||
|
||||
@@ -475,7 +477,7 @@ See [inputs](#inputs) for more information.
|
||||
|
||||
- name: Run changed-files with the commit of the last successful test workflow run
|
||||
id: changed-files-base-sha-push
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
base_sha: ${{ steps.last_successful_commit_push.outputs.base }}
|
||||
...
|
||||
@@ -502,7 +504,7 @@ See [inputs](#inputs) for more information.
|
||||
|
||||
- name: Run changed-files with the commit of the last successful test workflow run on main
|
||||
id: changed-files-base-sha-pull-request
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
base_sha: ${{ steps.last_successful_commit_pull_request.outputs.base }}
|
||||
...
|
||||
@@ -526,7 +528,7 @@ See [inputs](#inputs) for more information.
|
||||
...
|
||||
- name: Run changed-files with dir_names
|
||||
id: changed-files-dir-names
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
dir_names: "true"
|
||||
...
|
||||
@@ -543,7 +545,7 @@ See [inputs](#inputs) for more information.
|
||||
...
|
||||
- name: Run changed-files with json output
|
||||
id: changed-files-json
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
json: "true"
|
||||
...
|
||||
@@ -560,13 +562,13 @@ See [inputs](#inputs) for more information.
|
||||
...
|
||||
- name: Get changed-files since 2022-08-19
|
||||
id: changed-files-since
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
since: "2022-08-19"
|
||||
|
||||
- name: Get changed-files until 2022-08-20
|
||||
id: changed-files-until
|
||||
uses: tj-actions/changed-files@v34
|
||||
uses: tj-actions/changed-files@v35
|
||||
with:
|
||||
until: "2022-08-20"
|
||||
...
|
||||
|
||||
48
action.yml
48
action.yml
@@ -81,17 +81,21 @@ inputs:
|
||||
required: false
|
||||
default: "false"
|
||||
fetch_depth:
|
||||
description: "Initial depth of the branch history fetched. **NOTE**: This can be adjusted to resolve errors with insufficient history."
|
||||
description: "Depth of additional branch history fetched. **NOTE**: This can be adjusted to resolve errors with insufficient history."
|
||||
required: false
|
||||
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: "9000"
|
||||
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
|
||||
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"
|
||||
|
||||
outputs:
|
||||
added_files:
|
||||
@@ -173,6 +177,7 @@ runs:
|
||||
GITHUB_BASE_REF: ${{ github.base_ref }}
|
||||
GITHUB_HEAD_REF: ${{ github.head_ref }}
|
||||
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_BASE_SHA: ${{ github.event.pull_request.base.sha }}
|
||||
GITHUB_EVENT_PULL_REQUEST_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
|
||||
@@ -188,7 +193,6 @@ runs:
|
||||
INPUT_UNTIL: ${{ inputs.until }}
|
||||
INPUT_PATH: ${{ inputs.path }}
|
||||
INPUT_FETCH_DEPTH: ${{ inputs.fetch_depth }}
|
||||
INPUT_MAX_FETCH_DEPTH: ${{ inputs.max_fetch_depth }}
|
||||
INPUT_SINCE_LAST_REMOTE_COMMIT: ${{ inputs.since_last_remote_commit }}
|
||||
- name: Glob match
|
||||
uses: tj-actions/glob@v16
|
||||
@@ -204,6 +208,7 @@ runs:
|
||||
working-directory: ${{ inputs.path }}
|
||||
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 }}
|
||||
include-deleted-files: true
|
||||
separator: "|"
|
||||
- run: |
|
||||
@@ -223,6 +228,7 @@ runs:
|
||||
INPUT_CURRENT_SHA: ${{ steps.changed-files-diff-sha.outputs.current_sha }}
|
||||
INPUT_TARGET_BRANCH: ${{ steps.changed-files-diff-sha.outputs.target_branch }}
|
||||
INPUT_CURRENT_BRANCH: ${{ steps.changed-files-diff-sha.outputs.current_branch }}
|
||||
INPUT_DIFF: ${{ steps.changed-files-diff-sha.outputs.diff }}
|
||||
INPUT_QUOTEPATH: ${{ inputs.quotepath }}
|
||||
INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES: ${{ inputs.include_all_old_new_renamed_files }}
|
||||
INPUT_OLD_NEW_SEPARATOR: ${{ inputs.old_new_separator }}
|
||||
@@ -232,6 +238,36 @@ runs:
|
||||
INPUT_DIR_NAMES_MAX_DEPTH: ${{ inputs.dir_names_max_depth }}
|
||||
INPUT_JSON: ${{ inputs.json }}
|
||||
INPUT_HAS_CUSTOM_PATTERNS: ${{ steps.glob.outputs.has-custom-patterns }}
|
||||
- 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
|
||||
|
||||
91
diff-sha.sh
91
diff-sha.sh
@@ -13,7 +13,7 @@ if [[ "$GITHUB_REF" == "refs/tags/"* ]]; then
|
||||
EXTRA_ARGS="--prune --no-recurse-submodules"
|
||||
fi
|
||||
|
||||
if [[ "$GITHUB_EVENT_HEAD_REPO_FORK" == "true" ]]; then
|
||||
if [[ -z $GITHUB_BASE_REF || "$GITHUB_EVENT_HEAD_REPO_FORK" == "true" ]]; then
|
||||
DIFF=".."
|
||||
fi
|
||||
|
||||
@@ -157,36 +157,8 @@ else
|
||||
fi
|
||||
|
||||
echo "Fetching remote refs..."
|
||||
|
||||
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" 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 merge-base --fork-point "$TARGET_BRANCH" HEAD) && 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 show --quiet --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" 1>/dev/null 2>&1
|
||||
fi
|
||||
# shellcheck disable=SC2086
|
||||
git fetch $EXTRA_ARGS -u --progress origin pull/"$GITHUB_EVENT_NUMBER"/head:"$CURRENT_BRANCH" 1>/dev/null 2>&1
|
||||
|
||||
echo "::debug::Getting HEAD SHA..."
|
||||
if [[ -n "$INPUT_UNTIL" ]]; then
|
||||
@@ -223,20 +195,18 @@ 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
|
||||
PREVIOUS_SHA=$(git rev-parse origin/"$CURRENT_BRANCH")
|
||||
fi
|
||||
else
|
||||
PREVIOUS_SHA=${COMMON_ANCESTOR:-}
|
||||
|
||||
if [[ -z "$PREVIOUS_SHA" ]]; then
|
||||
PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
|
||||
if ! git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA$DIFF$CURRENT_SHA" 1>/dev/null 2>&1; then
|
||||
if ! git rev-parse --quiet --verify "$PREVIOUS_SHA^{commit}" 1>/dev/null 2>&1; then
|
||||
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
|
||||
|
||||
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=$?
|
||||
fi
|
||||
|
||||
if [[ -z "$PREVIOUS_SHA" || "$PREVIOUS_SHA" == "$CURRENT_SHA" ]]; then
|
||||
@@ -247,37 +217,14 @@ else
|
||||
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=20; 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
|
||||
|
||||
if [[ -z "$INPUT_BASE_SHA" ]]; then
|
||||
NEW_PREVIOUS_SHA=$(git merge-base --fork-point "$TARGET_BRANCH" "$CURRENT_SHA") && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ -n "$NEW_PREVIOUS_SHA" ]]; then
|
||||
PREVIOUS_SHA=$NEW_PREVIOUS_SHA
|
||||
fi
|
||||
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=".."
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
done
|
||||
else
|
||||
echo "::debug::Not a shallow clone, skipping merge-base check."
|
||||
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
|
||||
|
||||
@@ -305,12 +252,14 @@ if [[ -z "$GITHUB_OUTPUT" ]]; then
|
||||
echo "::set-output name=current_branch::$CURRENT_BRANCH"
|
||||
echo "::set-output name=previous_sha::$PREVIOUS_SHA"
|
||||
echo "::set-output name=current_sha::$CURRENT_SHA"
|
||||
echo "::set-output name=diff::$DIFF"
|
||||
else
|
||||
cat <<EOF >> "$GITHUB_OUTPUT"
|
||||
target_branch=$TARGET_BRANCH
|
||||
current_branch=$CURRENT_BRANCH
|
||||
previous_sha=$PREVIOUS_SHA
|
||||
current_sha=$CURRENT_SHA
|
||||
diff=$DIFF
|
||||
EOF
|
||||
fi
|
||||
|
||||
|
||||
@@ -8,10 +8,12 @@ INPUT_SEPARATOR="${INPUT_SEPARATOR//$'\n'/'%0A'}"
|
||||
INPUT_SEPARATOR="${INPUT_SEPARATOR//$'\r'/'%0D'}"
|
||||
|
||||
GITHUB_OUTPUT=${GITHUB_OUTPUT:-""}
|
||||
DIFF="..."
|
||||
DIFF=$INPUT_DIFF
|
||||
|
||||
if [[ -z $GITHUB_BASE_REF || "$GITHUB_EVENT_HEAD_REPO_FORK" == "true" ]]; then
|
||||
DIFF=".."
|
||||
OUTPUTS_EXTENSION="txt"
|
||||
|
||||
if [[ "$INPUT_JSON" == "true" ]]; then
|
||||
OUTPUTS_EXTENSION="json"
|
||||
fi
|
||||
|
||||
if [[ $INPUT_QUOTEPATH == "false" ]]; then
|
||||
@@ -78,14 +80,14 @@ function get_diff() {
|
||||
done < <(git submodule | awk '{print $2}')
|
||||
|
||||
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
|
||||
git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" | xargs -I {} dirname {} | get_dirname_max_depth | uniq && exit_status=$? || exit_status=$?
|
||||
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=$?
|
||||
|
||||
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 "$base$DIFF$sha" && 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 files between: $base$DIFF$sha"
|
||||
@@ -407,6 +409,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
|
||||
@@ -420,6 +423,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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user