Compare commits

...

108 Commits

Author SHA1 Message Date
Tonye Jack
71840771e9 Merge pull request #743 from tj-actions/chore/update-readme
Updated README.md
2022-11-02 09:35:43 -06:00
jackton1
a4cabf6b61 Updated README.md 2022-11-02 15:34:50 +00:00
Tonye Jack
ce98483800 Merge pull request #742 from tj-actions/feat/increase-the-default-max_fetch_depth 2022-11-02 09:32:29 -06:00
Tonye Jack
ed67b9caa4 feat: increase the default max_fetch_depth 2022-11-02 09:12:51 -06:00
Tonye Jack
cbfb0fda5a Merge pull request #740 from tj-actions/feat/pull-initial-history-for-limited-commits
feat: pull initial history when using the default fetch-depth
2022-11-02 08:52:34 -06:00
Tonye Jack
edd790e0a8 Merge pull request #741 from tj-actions/chore/update-test-increase-max-parallel 2022-11-02 08:41:05 -06:00
Tonye Jack
f1bc8b0892 Update diff-sha.sh 2022-11-02 08:29:27 -06:00
Tonye Jack
bc3236f035 chore: update test increase max-parallel 2022-11-02 08:28:18 -06:00
Tonye Jack
e92598caeb feat: pull initial history 2022-11-02 08:09:18 -06:00
Tonye Jack
c295a8af70 Merge pull request #739 from tj-actions/chore/fixed-typo 2022-11-02 07:37:13 -06:00
Tonye Jack
ae1ce4eb54 Merge branch 'main' into chore/fixed-typo 2022-11-01 15:34:02 -06:00
Tonye Jack
23c0e1a9b3 chore: fixed typo. 2022-11-01 15:33:17 -06:00
Tonye Jack
b65bd345ef chore: update test (#738) 2022-11-01 16:55:16 +00:00
Tonye Jack
c2547e29dd Merge pull request #734 from tj-actions/upgrade-to-v34.0.2
Upgraded to v34.0.2
2022-10-31 04:48:30 -06:00
jackton1
cebc3a1072 Upgraded from v34.0.1 -> v34.0.2 2022-10-31 05:18:06 +00:00
Tonye Jack
932dad3197 Merge pull request #733 from tj-actions/chore/update-docs
chore: update docs
2022-10-30 22:43:09 -06:00
Tonye Jack
c0fcba572d Merge branch 'main' into chore/update-docs 2022-10-30 22:17:01 -06:00
Tonye Jack
5dee4bc718 Merge pull request #732 from tj-actions/chore/update-readme
Updated README.md
2022-10-30 22:16:09 -06:00
Tonye Jack
66521ab1de chore: update docs 2022-10-30 22:15:32 -06:00
jackton1
7ce52e88c0 Updated README.md 2022-10-31 04:13:04 +00:00
Tonye Jack
795015c1e8 Merge pull request #730 from tj-actions/chore/update-docs-1
chore: update docs
2022-10-30 22:12:35 -06:00
Tonye Jack
65b4f04d50 Merge branch 'main' into chore/update-docs-1 2022-10-30 22:01:56 -06:00
Tonye Jack
f94d252cea Merge pull request #731 from tj-actions/chore/fix-detecting-changes
chore: fix detecting changes with the first PR commit
2022-10-30 22:00:12 -06:00
Tonye Jack
3c4becd315 chore: fix detecting changes with the first PR commit 2022-10-30 21:52:09 -06:00
Tonye Jack
a5be4ddc74 chore: update docs 2022-10-30 21:15:49 -06:00
Tonye Jack
e793a5d902 Merge pull request #729 from tj-actions/chore/update-debug-message 2022-10-30 21:09:37 -06:00
Tonye Jack
1e6b143073 Fixed bug retrieving the first commit of a pull request 2022-10-30 21:08:40 -06:00
Tonye Jack
983dfd764c chore: update debug message 2022-10-30 21:03:21 -06:00
Tonye Jack
bcba9b1fee Merge pull request #728 from tj-actions/fix/bug-detecting-initial-commits 2022-10-30 20:59:39 -06:00
Tonye Jack
39518769ff Fixed test 2022-10-30 20:39:13 -06:00
Tonye Jack
3e2fd5f6b3 Merge branch 'main' into fix/bug-detecting-initial-commits 2022-10-30 20:29:30 -06:00
Tonye Jack
bb9443782b Merge pull request #727 from tj-actions/upgrade-to-v34.0.1 2022-10-30 20:29:06 -06:00
Tonye Jack
a5eb308eb7 fix: bug detecting initial commits 2022-10-30 20:28:12 -06:00
jackton1
6e32c65ce4 Upgraded from v34.0.0 -> v34.0.1 2022-10-31 02:16:23 +00:00
Tonye Jack
d24b4c4320 Merge pull request #726 from tj-actions/chore/update-readme 2022-10-30 19:26:08 -06:00
jackton1
68d7ab12b2 Updated README.md 2022-10-31 01:21:40 +00:00
Tonye Jack
1a90f7b69c Update README.md 2022-10-30 19:21:13 -06:00
Tonye Jack
c2c004776f Update README.md 2022-10-30 19:17:22 -06:00
Tonye Jack
9f289689bb Merge pull request #725 from tj-actions/chore/update-readme 2022-10-30 18:13:50 -06:00
jackton1
3a08ee3d66 Updated README.md 2022-10-31 00:12:22 +00:00
Tonye Jack
3f90c29b0d Merge pull request #724 from tj-actions/chore/increase-the-default-max-fetch-depth 2022-10-30 18:11:13 -06:00
Tonye Jack
8cfc822887 chore: increase the default max_fetch_depth 2022-10-30 17:49:12 -06:00
Tonye Jack
786dd821bc Merge pull request #723 from tj-actions/fix/bug-with-detecting-changes-for-initial-commit 2022-10-30 17:44:28 -06:00
Tonye Jack
98989f19ee fix: bug with detecting changes in initial commit. 2022-10-30 17:33:27 -06:00
Tonye Jack
28a044aa26 Merge pull request #722 from tj-actions/fix/bug-with-finding-merge-base 2022-10-30 17:18:21 -06:00
Tonye Jack
a8c8155e8e update function 2022-10-30 17:06:59 -06:00
Tonye Jack
fcedc1dc3f Fixed bug with command. 2022-10-30 16:58:43 -06:00
Tonye Jack
c1cc30c8d4 Update diff-sha.sh 2022-10-30 16:51:35 -06:00
Tonye Jack
79704e5d8f Update diff-sha.sh 2022-10-30 10:34:50 -06:00
Tonye Jack
c276f6ff7e Update diff-sha.sh 2022-10-30 10:27:25 -06:00
Tonye Jack
096d3eabcd Merge branch 'main' into fix/bug-with-finding-merge-base 2022-10-30 10:20:56 -06:00
Tonye Jack
252a35e796 Create diff-sha.sh 2022-10-30 10:20:35 -06:00
Tonye Jack
7f68648067 fix: bug with finding merge-base 2022-10-30 10:16:43 -06:00
Tonye Jack
ada5b187c7 Merge pull request #720 from tj-actions/chore/update-readme 2022-10-29 23:42:38 -06:00
jackton1
286e016e0e Updated README.md 2022-10-30 02:43:09 +00:00
renovate[bot]
855a023c51 chore(deps): update tj-actions/auto-doc action to v1.4.3 2022-10-29 20:40:52 -06:00
Tonye Jack
fd0e5587fa Update update-readme.yml 2022-10-29 19:22:02 -06:00
Tonye Jack
fdc57a15f6 Merge pull request #719 from tj-actions/chore/update-readme 2022-10-29 19:21:16 -06:00
jackton1
4bf3bdf2d8 Updated README.md 2022-10-30 00:25:24 +00:00
renovate[bot]
e843160dcb chore(deps): update tj-actions/auto-doc action to v1.4.2 2022-10-29 18:24:56 -06:00
Tonye Jack
01870df0a9 Merge pull request #717 from tj-actions/chore/update-readme 2022-10-29 15:55:30 -06:00
jackton1
1b8d7e81b0 Updated README.md 2022-10-29 21:54:35 +00:00
Tonye Jack
77121bc77b Merge pull request #716 from tj-actions/chore/update-docs 2022-10-29 15:54:08 -06:00
Tonye Jack
6ae1152eea Merge branch 'main' into chore/update-docs 2022-10-29 15:50:34 -06:00
Tonye Jack
335f001567 chore: updated docs 2022-10-29 15:48:36 -06:00
Tonye Jack
ff59751b3c Updated .github/ISSUE_TEMPLATE/bug_report.yaml 2022-10-28 15:08:11 -06:00
Tonye Jack
bb9c177485 Merge pull request #712 from tj-actions/chore/remove-comment 2022-10-25 16:23:23 -06:00
Tonye Jack
68f89922d6 Merge pull request #711 from tj-actions/upgrade-to-v34.0.0 2022-10-25 16:22:07 -06:00
jackton1
450406efbc Upgraded from v33 -> v34.0.0 2022-10-25 22:15:47 +00:00
Tonye Jack
bc752d6087 chore: remove comment 2022-10-25 16:15:37 -06:00
Tonye Jack
c4d29bf5b2 Merge pull request #710 from tj-actions/chore/use-local-scoped-variables 2022-10-25 16:04:27 -06:00
Tonye Jack
995ead5584 chore: use local scoped variables 2022-10-25 15:52:44 -06:00
Tonye Jack
af3b754ee2 Merge pull request #709 from tj-actions/feat/add-support-for-fetching-more-history 2022-10-25 15:39:04 -06:00
Tonye Jack
5c9ad7fce6 Updated test.yml 2022-10-25 15:00:32 -06:00
Tonye Jack
4b455d3d83 Updated test.yml 2022-10-25 15:00:08 -06:00
Tonye Jack
941c21b681 Simplify code 2022-10-25 14:58:02 -06:00
Tonye Jack
cfc8494f3b Update README.md 2022-10-25 14:49:22 -06:00
Tonye Jack
fe56d428c0 feat: add support for fetching more history 2022-10-25 14:12:36 -06:00
Tonye Jack
f10717dc73 Merge pull request #707 from tj-actions/upgrade-to-v33.0.0 2022-10-21 10:24:31 -06:00
jackton1
e4decfd4bd Upgraded from v32 -> v33.0.0 2022-10-21 15:31:27 +00:00
Tonye Jack
aa52cfcd81 Merge pull request #706 from tj-actions/chore/update-readme 2022-10-21 08:48:36 -06:00
Tonye Jack
d1fb3092ba chore: update readme 2022-10-21 08:44:19 -06:00
Tonye Jack
b4938889d4 Merge pull request #703 from tj-actions/feat/switch-to-three-dot-diff 2022-10-21 08:30:41 -06:00
Tonye Jack
9403c911ce Updated Codacy scan. 2022-10-21 07:10:17 -06:00
Tonye Jack
50142ba7af Merge branch 'main' into feat/switch-to-three-dot-diff 2022-10-21 07:07:13 -06:00
Tonye Jack
711eaef9ea Update spacing and revert changes to git log commands. 2022-10-21 07:06:33 -06:00
Tonye Jack
b670630c81 Updated error handling 2022-10-21 07:02:46 -06:00
Tonye Jack
3b998fdc54 Merge pull request #705 from tj-actions/chore/clean-up-test 2022-10-21 06:59:01 -06:00
Tonye Jack
dd5ec50e4b Update error handling. 2022-10-21 06:58:29 -06:00
Tonye Jack
627dfaf069 Update get-changed-paths.sh 2022-10-21 06:45:37 -06:00
Tonye Jack
ca3088a08d Update get-changed-paths.sh 2022-10-21 06:37:03 -06:00
Tonye Jack
63725ea32d chore: clean up test 2022-10-21 06:18:43 -06:00
Tonye Jack
8e3e2f13a8 Update action.yml 2022-10-20 13:19:57 -06:00
Tonye Jack
262238adca Update get-changed-paths.sh 2022-10-20 13:17:42 -06:00
Tonye Jack
4e8b111da1 feat: switch to three dot diff 2022-10-20 13:13:05 -06:00
Tonye Jack
27c18b1c64 Merge pull request #701 from tj-actions/chore/update-readme 2022-10-18 18:09:31 -06:00
jackton1
2d0a396d46 Updated README.md 2022-10-19 00:08:53 +00:00
Tonye Jack
cdbd6e5e85 Merge pull request #700 from tj-actions/chore/update-readme 2022-10-18 18:01:12 -06:00
Tonye Jack
f6fb7cb101 updated readme 2022-10-18 17:59:54 -06:00
Tonye Jack
4b2a818159 updated readme 2022-10-18 17:58:37 -06:00
Tonye Jack
0b2cecdaae chore: update readme 2022-10-18 17:52:27 -06:00
Tonye Jack
a6a95f098b Create README.md 2022-10-18 13:29:20 -06:00
renovate[bot]
17a9fac9ca chore(deps): update peter-evans/create-pull-request action to v4.2.0 2022-10-18 00:29:13 -06:00
renovate[bot]
413d837155 chore(deps): update pascalgn/automerge-action action to v0.15.5 2022-10-17 12:19:08 -06:00
renovate[bot]
ad363667e1 chore(deps): update peter-evans/create-pull-request action to v4.1.4 2022-10-17 01:56:25 -06:00
renovate[bot]
eb136c70d4 chore(deps): update tj-actions/verify-changed-files action to v12 2022-10-16 00:56:36 -06:00
Tonye Jack
1ce0241964 Merge pull request #695 from tj-actions/upgrade-to-v32.1.2 2022-10-15 22:45:52 -06:00
jackton1
a2673955a0 Upgraded from v32.1.1 -> v32.1.2 2022-10-16 04:36:56 +00:00
13 changed files with 707 additions and 333 deletions

View File

@@ -70,6 +70,11 @@ body:
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
placeholder: |
This can be achieved by:
1. Re-running the workflow with debug logging enabled.
2. Copy or download the log archive.
3. Paste the contents here or upload the file in a subsequent comment.
render: shell
- type: textarea
attributes:

View File

@@ -16,7 +16,7 @@ jobs:
github.actor == 'renovate'
steps:
- name: automerge
uses: pascalgn/automerge-action@v0.15.3
uses: pascalgn/automerge-action@v0.15.5
env:
GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }}
MERGE_METHOD: "rebase"

View File

@@ -19,11 +19,6 @@ on:
jobs:
codacy-security-scan:
# Cancel other workflows that are running for the same branch
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
name: Codacy Security Scan
runs-on: ubuntu-latest
steps:

View File

@@ -9,7 +9,7 @@ jobs:
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
max-parallel: 4
max-parallel: 7
matrix:
platform: [ubuntu-latest, ubuntu-22.04, windows-latest, macos-latest, macos-11, ubuntu-18.04, windows-2022]
@@ -38,7 +38,7 @@ jobs:
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-glob.outputs) }}'
- name: Run changed-files with glob filtering and all_old_new_renamed_files
id: changed-files-glob-all-old-new-renamed-files
uses: ./

View File

@@ -19,7 +19,7 @@ jobs:
git submodule update --remote --recursive
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4.1.3
uses: peter-evans/create-pull-request@v4.2.0
with:
title: "Updated submodule"
branch: "chore/update-submodule"

View File

@@ -26,7 +26,7 @@ jobs:
with:
output: 'HISTORY.md'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4.1.3
uses: peter-evans/create-pull-request@v4.2.0
with:
base: "main"
title: "Upgraded to ${{ steps.sync-release-version.outputs.new_version }}"

View File

@@ -99,7 +99,7 @@ jobs:
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Run changed-files since 2022-08-19
id: changed-files-since
uses: ./
@@ -113,13 +113,13 @@ jobs:
exit 1
shell:
bash
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-since.outputs) }}'
shell:
bash
- name: Run changed-files until 2022-08-20
id: changed-files-until
uses: ./
@@ -203,8 +203,8 @@ jobs:
shell:
bash
test-single-commit-history:
name: Test changed-files single commit history
test-limited-commit-history:
name: Test changed-files with limited commit history
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
@@ -215,12 +215,9 @@ jobs:
steps:
- name: Checkout to branch
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Run changed-files with a single commit history
id: changed-files
continue-on-error: true
uses: ./
- name: Show output
@@ -872,11 +869,6 @@ jobs:
echo '${{ toJSON(steps.changed-files-custom-sha.outputs) }}'
shell:
bash
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-since-last-remote-commit.outputs) }}'
shell:
bash
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v6

View File

@@ -13,11 +13,14 @@ jobs:
with:
fetch-depth: 0
- name: Run auto-doc
uses: tj-actions/auto-doc@v1.4.3
- name: Run test
uses: tj-actions/remark@v3
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v11
uses: tj-actions/verify-changed-files@v12
id: verify_changed_files
with:
files: |
@@ -26,12 +29,12 @@ jobs:
- name: README.md changed
if: steps.verify_changed_files.outputs.files_changed == 'true'
run: |
echo "README.md has uncommited changes"
echo "README.md has uncommitted changes"
exit 1
- name: Create Pull Request
if: failure()
uses: peter-evans/create-pull-request@v4.1.3
uses: peter-evans/create-pull-request@v4.2.0
with:
base: "main"
title: "Updated README.md"

View File

@@ -1,20 +1,116 @@
# Changelog
## [Unreleased](https://github.com/tj-actions/changed-files/tree/HEAD)
## [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/v32.1.1...HEAD)
[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)
**Fixed bugs:**
- \[BUG\] Action fails on initial commit [\#715](https://github.com/tj-actions/changed-files/issues/715)
**Merged pull requests:**
- chore: update docs [\#733](https://github.com/tj-actions/changed-files/pull/733) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#732](https://github.com/tj-actions/changed-files/pull/732) ([jackton1](https://github.com/jackton1))
- chore: fix detecting changes with the first PR commit [\#731](https://github.com/tj-actions/changed-files/pull/731) ([jackton1](https://github.com/jackton1))
- chore: update docs [\#730](https://github.com/tj-actions/changed-files/pull/730) ([jackton1](https://github.com/jackton1))
- chore: update debug message [\#729](https://github.com/tj-actions/changed-files/pull/729) ([jackton1](https://github.com/jackton1))
- fix: bug detecting initial commits [\#728](https://github.com/tj-actions/changed-files/pull/728) ([jackton1](https://github.com/jackton1))
- Upgraded to v34.0.1 [\#727](https://github.com/tj-actions/changed-files/pull/727) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#726](https://github.com/tj-actions/changed-files/pull/726) ([jackton1](https://github.com/jackton1))
## [v34.0.1](https://github.com/tj-actions/changed-files/tree/v34.0.1) (2022-10-31)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.0.0...v34.0.1)
**Fixed bugs:**
- \[BUG\] Auto-Merge not working properly on Change-Detection for PRs [\#713](https://github.com/tj-actions/changed-files/issues/713)
**Closed issues:**
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
**Merged pull requests:**
- Updated README.md [\#725](https://github.com/tj-actions/changed-files/pull/725) ([jackton1](https://github.com/jackton1))
- chore: increase the default max\_fetch\_depth [\#724](https://github.com/tj-actions/changed-files/pull/724) ([jackton1](https://github.com/jackton1))
- fix: bug detecting changes in initial commit. [\#723](https://github.com/tj-actions/changed-files/pull/723) ([jackton1](https://github.com/jackton1))
- fix: bug with finding merge-base [\#722](https://github.com/tj-actions/changed-files/pull/722) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update tj-actions/auto-doc action to v1.4.3 [\#721](https://github.com/tj-actions/changed-files/pull/721) ([renovate[bot]](https://github.com/apps/renovate))
- Updated README.md [\#720](https://github.com/tj-actions/changed-files/pull/720) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#719](https://github.com/tj-actions/changed-files/pull/719) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update tj-actions/auto-doc action to v1.4.2 [\#718](https://github.com/tj-actions/changed-files/pull/718) ([renovate[bot]](https://github.com/apps/renovate))
- Updated README.md [\#717](https://github.com/tj-actions/changed-files/pull/717) ([jackton1](https://github.com/jackton1))
- chore: update docs [\#716](https://github.com/tj-actions/changed-files/pull/716) ([jackton1](https://github.com/jackton1))
- chore: remove comment [\#712](https://github.com/tj-actions/changed-files/pull/712) ([jackton1](https://github.com/jackton1))
- Upgraded to v34.0.0 [\#711](https://github.com/tj-actions/changed-files/pull/711) ([jackton1](https://github.com/jackton1))
## [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)
**Fixed bugs:**
- \[BUG\] Fatal: $HOME not set [\#708](https://github.com/tj-actions/changed-files/issues/708)
- \[BUG\] Locate the merge-base of a PR branch instead of a relying on the fetch-depth. [\#704](https://github.com/tj-actions/changed-files/issues/704)
**Merged pull requests:**
- chore: use local scoped variables [\#710](https://github.com/tj-actions/changed-files/pull/710) ([jackton1](https://github.com/jackton1))
- 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)
**Closed issues:**
- Ability to do a three dots diff [\#702](https://github.com/tj-actions/changed-files/issues/702)
**Merged pull requests:**
- chore: update readme [\#706](https://github.com/tj-actions/changed-files/pull/706) ([jackton1](https://github.com/jackton1))
- chore: clean up test [\#705](https://github.com/tj-actions/changed-files/pull/705) ([jackton1](https://github.com/jackton1))
- feat: switch to three dot diff [\#703](https://github.com/tj-actions/changed-files/pull/703) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#701](https://github.com/tj-actions/changed-files/pull/701) ([jackton1](https://github.com/jackton1))
- chore: update readme [\#700](https://github.com/tj-actions/changed-files/pull/700) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update peter-evans/create-pull-request action to v4.2.0 [\#699](https://github.com/tj-actions/changed-files/pull/699) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update pascalgn/automerge-action action to v0.15.5 [\#698](https://github.com/tj-actions/changed-files/pull/698) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update peter-evans/create-pull-request action to v4.1.4 [\#697](https://github.com/tj-actions/changed-files/pull/697) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update tj-actions/verify-changed-files action to v12 [\#696](https://github.com/tj-actions/changed-files/pull/696) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v32.1.2 [\#695](https://github.com/tj-actions/changed-files/pull/695) ([jackton1](https://github.com/jackton1))
## [v32.1.2](https://github.com/tj-actions/changed-files/tree/v32.1.2) (2022-10-16)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32...v32.1.2)
## [v32](https://github.com/tj-actions/changed-files/tree/v32) (2022-10-16)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.1.1...v32)
**Fixed bugs:**
- \[BUG\] Random GITHUB\_OUTPUT: unbound variable in get-sha.sh [\#690](https://github.com/tj-actions/changed-files/issues/690)
**Merged pull requests:**
- chore: clean up test [\#694](https://github.com/tj-actions/changed-files/pull/694) ([jackton1](https://github.com/jackton1))
- fix: bug setting until and since inputs. [\#693](https://github.com/tj-actions/changed-files/pull/693) ([jackton1](https://github.com/jackton1))
- Upgraded to v32.1.1 [\#692](https://github.com/tj-actions/changed-files/pull/692) ([jackton1](https://github.com/jackton1))
## [v32.1.1](https://github.com/tj-actions/changed-files/tree/v32.1.1) (2022-10-14)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32...v32.1.1)
## [v32](https://github.com/tj-actions/changed-files/tree/v32) (2022-10-14)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.1.0...v32)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32.1.0...v32.1.1)
**Merged pull requests:**
@@ -31,10 +127,6 @@
- \[BUG\] runner is reporting old Node.js version. [\#678](https://github.com/tj-actions/changed-files/issues/678)
- \[BUG\] New commits pushed to the base branch results in errors when shallow history is used. [\#668](https://github.com/tj-actions/changed-files/issues/668)
**Closed issues:**
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
**Merged pull requests:**
- docs: add lpulley as a contributor for code [\#685](https://github.com/tj-actions/changed-files/pull/685) ([allcontributors[bot]](https://github.com/apps/allcontributors))
@@ -60,7 +152,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:**
@@ -71,13 +163,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:**
@@ -117,7 +209,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:**
@@ -130,13 +222,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...v30)
**Fixed bugs:**
@@ -152,13 +244,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.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...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)
[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)
**Implemented enhancements:**
@@ -1083,7 +1175,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:**
@@ -1101,13 +1193,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:**
@@ -1196,7 +1288,7 @@
## [v1.2.1](https://github.com/tj-actions/changed-files/tree/v1.2.1) (2021-11-08)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.5...v1.2.1)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v1.2.0...v1.2.1)
**Implemented enhancements:**
@@ -1210,13 +1302,13 @@
- Update actions/checkout action to v2.4.0 [\#243](https://github.com/tj-actions/changed-files/pull/243) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v11.5 [\#241](https://github.com/tj-actions/changed-files/pull/241) ([jackton1](https://github.com/jackton1))
## [v11.5](https://github.com/tj-actions/changed-files/tree/v11.5) (2021-10-30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v1.2.0...v11.5)
## [v1.2.0](https://github.com/tj-actions/changed-files/tree/v1.2.0) (2021-10-30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.4...v1.2.0)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.5...v1.2.0)
## [v11.5](https://github.com/tj-actions/changed-files/tree/v11.5) (2021-10-30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.4...v11.5)
**Merged pull requests:**

599
README.md
View File

@@ -1,5 +1,7 @@
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/4a625e9b62794b5b98e169c15c0e673c)](https://www.codacy.com/gh/tj-actions/changed-files/dashboard?utm_source=github.com\&utm_medium=referral\&utm_content=tj-actions/changed-files\&utm_campaign=Badge_Grade)
[![CI](https://github.com/tj-actions/changed-files/actions/workflows/test.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/test.yml) [![Update release version.](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml) [![Public workflows that use this action.](https://img.shields.io/endpoint?url=https%3A%2F%2Fused-by.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3Dtj-actions%2Fchanged-files%26badge%3Dtrue)](https://github.com/search?o=desc\&q=tj-actions+changed-files+language%3AYAML\&s=\&type=Code)
[![CI](https://github.com/tj-actions/changed-files/actions/workflows/test.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/test.yml)
[![Update release version.](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml)
[![Public workflows that use this action.](https://img.shields.io/endpoint?url=https%3A%2F%2Fused-by.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3Dtj-actions%2Fchanged-files%26badge%3Dtrue)](https://github.com/search?o=desc\&q=tj-actions+changed-files+language%3AYAML\&s=\&type=Code)
[![Ubuntu](https://img.shields.io/badge/Ubuntu-E95420?logo=ubuntu\&logoColor=white)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)
[![Mac OS](https://img.shields.io/badge/mac%20os-000000?logo=macos\&logoColor=F0F0F0)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)
@@ -65,22 +67,22 @@ jobs:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
# Example 1
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v32
uses: tj-actions/changed-files@v34
- name: List all changed files
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
echo "$file was changed"
done
# Example 2
- name: Get changed files in the docs folder
id: changed-files-specific
uses: tj-actions/changed-files@v32
uses: tj-actions/changed-files@v34
with:
files: |
docs/**
@@ -102,7 +104,7 @@ Support this project with a :star:
[buymeacoffee-shield]: https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png
## Outputs
## Useful Acronyms
| Acronym | Meaning |
|:---------:|:------------:|
@@ -115,189 +117,344 @@ Support this project with a :star:
| U | Unmerged |
| X | Unknown |
| Output | type | example | description |
|:----------------------------------:|:--------:|:--------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| any\_changed | `string` | `true` OR `false` | Returns `true` when any <br /> of the filenames provided using <br /> the `files` input has changed. If no `files` have been specified,<br> an empty string `''` is returned. <br /> i.e. *using a combination of all added, <br />copied, modified and renamed files (ACMR)* |
| only\_changed | `string` | `true` OR `false` | Returns `true` when only <br /> files provided using <br /> the `files` input has changed. If no `files` have been specified,<br> an empty string `''` is returned. <br /> i.e. *using a combination of all added, <br />copied, modified and renamed files (ACMR)* |
| other\_changed\_files | `string` | `'new.txt path/to/file.png ...'` | Returns all other changed files <br/> not listed in the files input <br /> i.e. *using a combination of all added, <br />copied, modified and renamed files (ACMR)* |
| any\_modified | `string` | `true` OR `false` | Returns `true` when any <br /> of the filenames provided using <br /> the `files` input has been modified. If no `files` have been specified,<br> an empty string `''` is returned. <br /> i.e. *using a combination of all added, <br />copied, modified, renamed, and deleted files (ACMRD)* |
| only\_modified | `string` | `true` OR `false` | Returns `true` when only <br /> files provided using <br /> the `files` input has been modified. If no `files` have been specified,<br> an empty string `''` is returned.(ACMRD) |
| other\_modified\_files | `string` | `'new.txt path/to/file.png ...'` | Returns all other modified files <br/> not listed in the files input <br /> i.e. *a combination of all added, <br /> copied, modified, and deleted files (ACMRD)* |
| any\_deleted | `string` | `true` OR `false` | Returns `true` when any <br /> of the filenames provided using <br /> the `files` input has been deleted. If no `files` have been specified,<br> an empty string `''` is returned. (D) |
| only\_deleted | `string` | `true` OR `false` | Returns `true` when only <br /> files provided using <br /> the `files` input has been deleted. If no `files` have been specified,<br> an empty string `''` is returned. (D) |
| other\_deleted\_files | `string` | `'new.txt path/to/file.png ...'` | Returns all other deleted files <br/> not listed in the files input <br /> i.e. *a combination of all deleted files (D)* |
| all\_changed\_files | `string` | `'new.txt path/to/file.png ...'` | Returns all changed files <br /> i.e. *a combination of all added, <br />copied, modified and renamed files (ACMR)* |
| all\_modified\_files | `string` | `'new.txt path/to/file.png ...'` | Returns all changed files <br /> i.e. *a combination of all added, <br />copied, modified, renamed and deleted files (ACMRD)* |
| all\_changed\_and\_modified\_files | `string` | `'new.txt path/to/file.png ...'` | Returns all changed <br /> and modified files <br /> i.e. *a combination of (ACMRDTUX)* |
| all\_old\_new\_renamed\_files | `string` | `'old name.txt,new name.txt old name 2.txt,new name 2.txt...'` | Returns only files that are Renamed and list their old and new names. <br> NOTE: This requires setting `include_all_old_new_renamed_files` to `true` (R) |
| added\_files | `string` | `'new.txt path/to/file.png ...'` | Returns only files that are Added (A) |
| copied\_files | `string` | `'new.txt path/to/file.png ...'` | Returns only files that are Copied (C) |
| deleted\_files | `string` | `'new.txt path/to/file.png ...'` | Returns only files that are Deleted (D) |
| modified\_files | `string` | `'new.txt path/to/file.png ...'` | Returns only files that are Modified (M) |
| renamed\_files | `string` | `'new.txt path/to/file.png ...'` | Returns only files that are Renamed (R) |
| type\_changed\_files | `string` | `'new.txt path/to/file.png ...'` | Returns only files that have their file type changed (T) |
| unmerged\_files | `string` | `'new.txt path/to/file.png ...'` | Returns only files that are Unmerged (U) |
| unknown\_files | `string` | `'new.txt path/to/file.png ...'` | Returns only files that are Unknown (X) |
## Outputs
<!-- AUTO-DOC-OUTPUT:START - Do not remove or modify this section -->
| OUTPUT | TYPE | DESCRIPTION |
|--------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| added\_files | string | Returns only files that are<br>Added (A). |
| all\_changed\_and\_modified\_files | string | Returns all changed and modified<br>files i.e. *a combination of<br>(ACMRDTUX)* |
| all\_changed\_files | string | Returns all changed files i.e.<br>*a combination of all added,<br>copied, modified and renamed files<br>(ACMR)* |
| all\_modified\_files | string | Returns all changed files i.e.<br>*a combination of all added,<br>copied, modified, renamed and deleted<br>files (ACMRD)*. |
| all\_old\_new\_renamed\_files | string | Returns only files that are<br>Renamed and list their old<br>and new names. **NOTE:** This<br>requires setting `include_all_old_new_renamed_files` to `true`<br>(R) |
| any\_changed | string | Returns `true` when any of<br>the filenames provided using the<br>`files` input has changed. If<br>no `files` have been specified,an<br>empty string `''` is returned.<br>i.e. *using a combination of<br>all added, copied, modified and<br>renamed files (ACMR)*. |
| any\_deleted | string | Returns `true` when any of<br>the filenames provided using the<br>`files` input has been deleted.<br>If no `files` have been<br>specified,an empty string `''` is<br>returned. (D) |
| any\_modified | string | Returns `true` when any of<br>the filenames provided using the<br>`files` input has been modified.<br>If no `files` have been<br>specified,an empty string `''` is<br>returned. i.e. *using a combination<br>of all added, copied, modified,<br>renamed, and deleted files (ACMRD)*.<br> |
| copied\_files | string | Returns only files that are<br>Copied (C). |
| deleted\_files | string | Returns only files that are<br>Deleted (D). |
| modified\_files | string | Returns only files that are<br>Modified (M). |
| only\_changed | string | Returns `true` when only files<br>provided using the `files` input<br>has changed. If no `files`<br>have been specified,an empty string<br>`''` is returned. i.e. *using<br>a combination of all added,<br>copied, modified and renamed files<br>(ACMR)*. |
| only\_deleted | string | Returns `true` when only files<br>provided using the `files` input<br>has been deleted. If no<br>`files` have been specified,an empty<br>string `''` is returned. (D)<br> |
| only\_modified | string | Returns `true` when only files<br>provided using the `files` input<br>has been modified. If no<br>`files` have been specified,an empty<br>string `''` is returned.(ACMRD). |
| other\_changed\_files | string | Returns all other changed files<br>not listed in the files<br>input i.e. *using a combination<br>of all added, copied, modified<br>and renamed files (ACMR)*. |
| other\_deleted\_files | string | Returns all other deleted files<br>not listed in the files<br>input i.e. *a combination of<br>all deleted files (D)* |
| other\_modified\_files | string | Returns all other modified files<br>not listed in the files<br>input i.e. *a combination of<br>all added, copied, modified, and<br>deleted files (ACMRD)* |
| renamed\_files | string | Returns only files that are<br>Renamed (R). |
| type\_changed\_files | string | Returns only files that have<br>their file type changed (T).<br> |
| unknown\_files | string | Returns only files that are<br>Unknown (X). |
| unmerged\_files | string | Returns only files that are<br>Unmerged (U). |
<!-- AUTO-DOC-OUTPUT:END -->
## Inputs
| Input | type | required | default | description |
|:--------------------------------------:|:----------------------:|:--------:|:-------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| separator | `string` | `false` | `' '` | Split character for output strings |
| include\_all\_old\_new\_renamed\_files | `boolean` | `false` | `false` | Include `all_old_new_renamed_files` output. Note this can generate a large output See: [#501](https://github.com/tj-actions/changed-files/issues/501). |
| old\_new\_separator | `string` | `false` | `','` | Split character for old and new filename pairs |
| old\_new\_files\_separator | `string` | `false` | `' '` | Split character for multiple old and new filename pairs |
| files | `string` OR `string[]` | `false` | | Check for changes <br> using only these <br> list of file(s) <br> (Defaults to the <br> entire repo) <br /> **NOTE:** Multiline file/directory patterns <br /> should not include qoutes. <br /> |
| files\_separator | `string` | `false` | `'\n'` | Separator used to split the<br>`files` input |
| files\_from\_source\_file | `string` | `false` | | Source file(s) <br> used to populate <br> the `files` input |
| files\_ignore | `string` | `false` | | Ignore changes to these file(s) <br /> **NOTE:** Multiline file/directory patterns <br /> should not include qoutes. <br /> |
| files\_ignore\_separator | `string` | `false` | `'\n'` | Separator used to split the <br>`files-ignore` input |
| files\_ignore\_from\_source\_file | `string` | `false` | | Source file(s) <br> used to populate <br> the `files_ignore` input |
| sha | `string` | `true` | `${{ github.sha }}` | Specify a different <br> commit SHA <br> used for <br> comparing changes |
| base\_sha | `string` | `false` | | Specify a different <br> base commit SHA <br> used for <br> comparing changes |
| path | `string` | `false` | `'.'` | Relative path under <br> `GITHUB_WORKSPACE` <br> to the repository |
| quotepath | `boolean` | `false` | `true` | Output filenames completely verbatim by setting this to `false` |
| diff\_relative | `boolean` | `false` | | Exclude changes outside the current directory and show pathnames relative to it. **NOTE:** This requires you to specify the top level directory via the `path` input. |
| dir\_names | `boolean` | `false` | `false` | Output unique changed directories instead of filenames. <br> **NOTE:** This returns `.` for <br> changed files located in the root of the project. |
| json | `boolean` | `false` | `false` | Output changed files in JSON format which can be used for [matrix jobs](https://github.com/tj-actions/changed-files/blob/main/.github/workflows/manual-matrix-test.yml). |
| since | `string` | `false` | | Get changed files for commits whose timestamp is older than the given time. |
| until | `string` | `false` | | Get changed files for commits whose timestamp is earlier than the given time. |
| target\_branch\_fetch\_depth | `string` | `false` | `20` | Limit fetching commits from the target branch to a specified number. **NOTE**: This can be adjusted to resolve errors with insufficient history. See: [#668](https://github.com/tj-actions/changed-files/issues/668). |
<!-- 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. |
<!-- AUTO-DOC-INPUT:END -->
## Examples
<details>
<summary>Get all changed files in the current branch</summary>
```yaml
...
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
# submodules: true # OR "recursive" -> To include all changed submodule files.
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v34
...
```
- name: Get changed files using defaults
id: changed-files
uses: tj-actions/changed-files@v32
</details>
- name: Get changed files using a comma separator
id: changed-files-comma
uses: tj-actions/changed-files@v32
with:
separator: ","
<details>
<summary>Get all changed files and using a comma separator</summary>
- name: List all added files
run: |
for file in ${{ steps.changed-files.outputs.added_files }}; do
echo "$file was added"
done
```yaml
...
- name: Get all changed files and use a comma separator in the output
id: changed-files
uses: tj-actions/changed-files@v34
with:
separator: ","
...
```
- name: Run step when a file changes
if: contains(steps.changed-files.outputs.modified_files, 'my-file.txt')
run: |
echo "Your my-file.txt file has been modified."
See [inputs](#inputs) for more information.
- name: Run step when a file has been deleted
if: contains(steps.changed-files.outputs.deleted_files, 'test.txt')
run: |
echo "Your test.txt file has been deleted."
</details>
- name: Get specific changed files
id: changed-files-specific
uses: tj-actions/changed-files@v32
with:
files: |
my-file.txt
test.txt
new.txt
test_directory
*.sh
*.png
!*.md
*.jpeg
**/migrate-*.sql
files_ignore: |
*.yml
<details>
<summary> Get all changed files and list all added files</summary>
- name: Run step if any of the listed files above change
if: steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "One or more files listed above has changed."
```yaml
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v34
- name: List all added files
run: |
for file in ${{ steps.changed-files.outputs.added_files }}; do
echo "$file was added"
done
...
```
- name: Run step if only the files listed above change
if: steps.changed-files-specific.outputs.only_changed == 'true'
run: |
echo "Only files listed above have changed."
See [outputs](#outputs) for a list of all available outputs.
- name: Run step if any of the listed files above is deleted
if: steps.changed-files.outputs.any_deleted == 'true'
run: |
for file in ${{ steps.changed-files.outputs.deleted_files }}; do
echo "$file was deleted"
done
</details>
- name: Run step if all listed files above have been deleted
if: steps.changed-files.outputs.only_deleted == 'true'
run: |
for file in ${{ steps.changed-files.outputs.deleted_files }}; do
echo "$file was deleted"
done
<details>
<summary>Get all changed files and optionally run a step if a file was modified</summary>
- name: Use a source file or list of file(s) to populate to files input.
id: changed-files-specific-source-file
uses: tj-actions/changed-files@v32
with:
files_from_source_file: |
test/changed-files-list.txt
```yaml
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v34
- name: Use 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@v32
with:
files_from_source_file: |
test/changed-files-list.txt
files: |
test.txt
- name: Run a step if my-file.txt was modified
if: contains(steps.changed-files.outputs.modified_files, 'my-file.txt')
run: |
echo "my-file.txt file has been modified."
...
```
- name: Use a different commit SHA
id: changed-files-custom-sha
uses: tj-actions/changed-files@v32
with:
sha: ${{ github.event.pull_request.head.sha }}
See [outputs](#outputs) for a list of all available outputs.
- name: Use a different base SHA
id: changed-files-custom-base-sha
uses: tj-actions/changed-files@v32
with:
base_sha: ${{ github.event.pull_request.base.sha }}
- name: Checkout into dir1
uses: actions/checkout@v3
with:
fetch-depth: 0
path: dir1
</details>
- name: Run changed-files with defaults on the dir1
id: changed-files-for-dir1
uses: tj-actions/changed-files@v32
with:
path: dir1
<details>
<summary>Get all changed files using a list of files</summary>
- name: List all added files in dir1
run: |
for file in ${{ steps.changed-files-for-dir1.outputs.added_files }}; do
echo "$file was added"
done
```yaml
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v34
with:
files: |
my-file.txt
*.sh
*.png
!*.md
test_directory
**/*.sql
...
```
- name: Run changed-files with quotepath disabled
id: changed-files-quotepath
uses: tj-actions/changed-files@v32
with:
quotepath: "false"
See [inputs](#inputs) for more information.
# Run changed-files action using the last successful commit as the base_sha
# NOTE: This setting overrides the commit sha used by setting since_last_remote_commit to true.
# It is recommended to use either solution that works for your use case.
</details>
# Push event based workflows
<details>
<summary>Get all changed files using a list of files and take action base on the changes</summary>
```yaml
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v34
with:
files: |
my-file.txt
*.sh
*.png
!*.md
test_directory
**/*.sql
- name: Run step if any of the listed files above change
if: steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "One or more files listed above has changed."
- name: Run step if only the files listed above change
if: steps.changed-files-specific.outputs.only_changed == 'true'
run: |
echo "Only files listed above have changed."
- name: Run step if any of the listed files above is deleted
if: steps.changed-files.outputs.any_deleted == 'true'
run: |
for file in ${{ steps.changed-files.outputs.deleted_files }}; do
echo "$file was deleted"
done
- name: Run step if all listed files above have been deleted
if: steps.changed-files.outputs.only_deleted == 'true'
run: |
for file in ${{ steps.changed-files.outputs.deleted_files }}; do
echo "$file was deleted"
done
...
```
See [outputs](#outputs) for a list of all available outputs.
</details>
<details>
<summary>Get all changed files using a source file or list of file(s) to populate to files input</summary>
```yaml
...
- 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
with:
files_from_source_file: |
test/changed-files-list.txt
...
```
See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get changed files using a source file or list of file(s) to populate to files input and optionally specify more files</summary>
```yaml
...
- 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
with:
files_from_source_file: |
test/changed-files-list.txt
files: |
test.txt
...
```
See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files using a different SHA</summary>
```yaml
...
- name: Get changed files using a different SHA
id: changed-files
uses: tj-actions/changed-files@v34
with:
sha: ${{ github.event.pull_request.head.sha }}
...
```
See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files using a different base SHA</summary>
```yaml
...
- name: Get changed files using a different base SHA
id: changed-files
uses: tj-actions/changed-files@v34
with:
base_sha: ${{ github.event.pull_request.base.sha }}
...
```
See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files for a repository located in a different path</summary>
```yaml
...
- name: Checkout into dir1
uses: actions/checkout@v3
with:
fetch-depth: 0
path: dir1
- name: Run changed-files with defaults in dir1
id: changed-files-for-dir1
uses: tj-actions/changed-files@v34
with:
path: dir1
- name: List all added files in dir1
run: |
for file in ${{ steps.changed-files-for-dir1.outputs.added_files }}; do
echo "$file was added"
done
...
```
See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files with non äšćįí characters i.e (Filename in other languages)</summary>
```yaml
...
- name: Run changed-files with quotepath disabled
id: changed-files-quotepath
uses: tj-actions/changed-files@v34
with:
quotepath: "false"
- name: Run changed-files with quotepath disabled for a specified list of file(s)
id: changed-files-quotepath-specific
uses: ./
with:
files: test/test-è.txt
quotepath: "false"
...
```
See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files using the last successful commit of the base branch</summary>
<ul>
<li>
<details>
<summary>Push event</summary>
```yaml
...
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v6
@@ -311,57 +468,110 @@ Support this project with a :star:
- 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@v32
uses: tj-actions/changed-files@v34
with:
base_sha: ${{ steps.last_successful_commit_push.outputs.commit_hash }}
...
```
# Pull request based workflows.
</details>
</li>
<li>
<details>
<summary>Pull request events </summary>
```yaml
...
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v5
if: github.event_name == 'pull_request'
- uses: nrwl/last-successful-commit-action@v1
id: last_successful_commit_pull_request
if: github.event_name == 'pull_request'
with:
branch: ${{ steps.branch-name.outputs.base_ref_branch }} # Get the last successful commit on master or main branch
workflow_id: 'test.yml'
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Run changed-files with the commit of the last successful test workflow run on main
if: github.event_name == 'pull_request'
id: changed-files-base-sha-pull-request
uses: tj-actions/changed-files@v32
uses: tj-actions/changed-files@v34
with:
base_sha: ${{ steps.last_successful_commit_pull_request.outputs.commit_hash }}
- name: Run changed-files with dir_names
id: changed-files-dir-names
uses: tj-actions/changed-files@v32
with:
dir_names: "true"
# All outputs are JSON formatted arrays and can be used in other actions and matrix compatible jobs.
- name: Run changed-files with json output
id: changed-files-json
uses: tj-actions/changed-files@v32
with:
json: "true"
- name: Run changed-files since 2022-08-19
id: changed-files-since
uses: tj-actions/changed-files@v32
with:
since: "2022-08-19"
- name: Run changed-files until 2022-08-20
id: changed-files-until
uses: tj-actions/changed-files@v32
with:
until: "2022-08-20"
...
```
</details>
</li>
</ul>
> NOTE: This setting overrides the commit sha used by setting `since_last_remote_commit` to true.
> It is recommended to use either solution that works for your use case.
See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files but only return the directory names</summary>
```yaml
...
- name: Run changed-files with dir_names
id: changed-files-dir-names
uses: tj-actions/changed-files@v34
with:
dir_names: "true"
...
```
See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files and return JSON formatted outputs</summary>
```yaml
...
- name: Run changed-files with json output
id: changed-files-json
uses: tj-actions/changed-files@v34
with:
json: "true"
...
```
See [inputs](#inputs) for more information.
</details>
<details>
<summary>Get all changed files by commits pushed in the past</summary>
```yaml
...
- name: Get changed-files since 2022-08-19
id: changed-files-since
uses: tj-actions/changed-files@v34
with:
since: "2022-08-19"
- name: Get changed-files until 2022-08-20
id: changed-files-until
uses: tj-actions/changed-files@v34
with:
until: "2022-08-20"
...
```
See [inputs](#inputs) for more information.
</details>
### Real world example
<img width="1147" alt="Screen Shot 2021-11-19 at 4 59 21 PM" src="https://user-images.githubusercontent.com/17484350/142696936-8b7ca955-7ef9-4d53-9bdf-3e0008e90c3f.png">
* Free software: [MIT license](LICENSE)
@@ -381,7 +591,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/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
## Report Bugs

View File

@@ -8,143 +8,143 @@ inputs:
required: false
default: " "
include_all_old_new_renamed_files:
description: "Include all_old_new_renamed_files output. Note this can generate a large debug output See: #501."
description: "Include `all_old_new_renamed_files` output. Note this can generate a large output See: [#501](https://github.com/tj-actions/changed-files/issues/501)."
required: false
default: "false"
old_new_separator:
description: "Split character for old and new filename pairs"
description: "Split character for old and new filename pairs."
required: false
default: ","
old_new_files_separator:
description: "Split character for multiple old and new filename pairs"
description: "Split character for multiple old and new filename pairs."
required: false
default: " "
files_from_source_file:
description: "Source file(s) to populate the files input"
description: "Source file(s) used to populate the `files` input."
required: false
default: ""
files:
description: "Check for changes using only this list of files (Defaults to the entire repo)"
description: "File and directory patterns to detect changes using only these list of file(s) (Defaults to the entire repo) **NOTE:** Multiline file/directory patterns should not include qoutes."
required: false
default: ""
files_separator:
description: "Separator used to split the files input"
description: "Separator used to split the `files` input"
default: "\n"
required: false
files_ignore:
description: "Ignore changes to this list of files"
description: "Ignore changes to these file(s) **NOTE:** Multiline file/directory patterns should not include qoutes."
required: false
default: ""
files_ignore_separator:
description: "Separator used to split the files-ignore input"
description: "Separator used to split the `files-ignore` input"
default: "\n"
required: false
files_ignore_from_source_file:
description: "Source file(s) to populate the files-ignore input"
description: "Source file(s) used to populate the `files_ignore` input"
required: false
default: ""
sha:
description: "Specify a current commit SHA used for comparing changes"
description: "Specify a different commit SHA used for comparing changes"
required: true
default: ${{ github.sha }}
base_sha:
description: "Specify a base commit SHA on used for comparing changes"
description: "Specify a different base commit SHA used for comparing changes"
required: false
since:
description: "Get changed files for commits whose timestamp is older than the given time"
description: "Get changed files for commits whose timestamp is older than the given time."
required: false
default: ""
until:
description: "Get changed files for commits whose timestamp is earlier than the given time"
description: "Get changed files for commits whose timestamp is earlier than the given time."
required: false
default: ""
path:
description: "Specify a relative path under $GITHUB_WORKSPACE to locate the repository"
description: "Specify a relative path under `$GITHUB_WORKSPACE` to locate the repository."
required: false
default: "."
quotepath:
description: "Output filenames completely verbatim by setting this to false"
description: "Use non ascii characters to match files and output the filenames completely verbatim by setting this to `false`"
default: "true"
required: false
diff_relative:
description: "Exclude changes outside the current directory and show pathnames relative to it"
description: "Exclude changes outside the current directory and show pathnames relative to it. **NOTE:** This requires you to specify the top level directory via the `path` input."
required: false
dir_names:
default: "false"
description: "Output the absolute path to the changed directories instead of the filenames"
description: "Output unique changed directories instead of filenames. **NOTE:** This returns `.` for changed files located in the root of the project."
required: false
json:
description: "Output changed files in JSON format which can be used for matrix jobs"
description: "Output list of changed files in a JSON formatted string which can be used for matrix jobs."
required: false
default: "false"
target_branch_fetch_depth:
description: "Limit fetching commits from the target branch to a specified number. **NOTE**: This can be adjusted to resolve errors with insufficient history. See: [#668](https://github.com/tj-actions/changed-files/issues/668)."
max_fetch_depth:
description: "Max limit for fetching branch history. **NOTE**: This can be adjusted to resolve errors with insufficient history."
required: false
default: "20"
default: "300"
outputs:
added_files:
description: List of added files.
description: "Returns only files that are Added (A)."
value: ${{ steps.changed-files.outputs.added_files }}
copied_files:
description: List of copied files.
description: "Returns only files that are Copied (C)."
value: ${{ steps.changed-files.outputs.copied_files }}
deleted_files:
description: List of deleted files.
description: "Returns only files that are Deleted (D)."
value: ${{ steps.changed-files.outputs.deleted_files }}
modified_files:
description: List of modified files.
description: "Returns only files that are Modified (M)."
value: ${{ steps.changed-files.outputs.modified_files }}
renamed_files:
description: List of renamed files.
description: "Returns only files that are Renamed (R)."
value: ${{ steps.changed-files.outputs.renamed_files }}
all_old_new_renamed_files:
description: List of all old and new names of renamed files.
description: "Returns only files that are Renamed and list their old and new names. **NOTE:** This requires setting `include_all_old_new_renamed_files` to `true` (R)"
value: ${{ steps.changed-files.outputs.all_old_new_renamed_files }}
type_changed_files:
description: List of files that had type changes.
description: "Returns only files that have their file type changed (T)."
value: ${{ steps.changed-files.outputs.type_changed_files }}
unmerged_files:
description: List of unmerged files.
description: "Returns only files that are Unmerged (U)."
value: ${{ steps.changed-files.outputs.unmerged_files }}
unknown_files:
description: List of unknown files.
description: "Returns only files that are Unknown (X)."
value: ${{ steps.changed-files.outputs.unknown_files }}
all_changed_and_modified_files:
description: List of all changed files.
description: "Returns all changed and modified files i.e. *a combination of (ACMRDTUX)*"
value: ${{ steps.changed-files.outputs.all_changed_and_modified_files }}
all_changed_files:
description: List of all copied, modified, and added files.
description: "Returns all changed files i.e. *a combination of all added, copied, modified and renamed files (ACMR)*"
value: ${{ steps.changed-files.outputs.all_changed_files }}
any_changed:
description: Return true only when any files provided using the files input have changed.
description: "Returns `true` when any of the filenames provided using the `files` input has changed. If no `files` have been specified,an empty string `''` is returned. i.e. *using a combination of all added, copied, modified and renamed files (ACMR)*."
value: ${{ steps.changed-files.outputs.any_changed }}
only_changed:
description: Return true when all files provided using the files input have changed.
description: "Returns `true` when only files provided using the `files` input has changed. If no `files` have been specified,an empty string `''` is returned. i.e. *using a combination of all added, copied, modified and renamed files (ACMR)*."
value: ${{ steps.changed-files.outputs.only_changed }}
other_changed_files:
description: Return list of changed files not listed in the files input.
description: "Returns all other changed files not listed in the files input i.e. *using a combination of all added, copied, modified and renamed files (ACMR)*."
value: ${{ steps.changed-files.outputs.other_changed_files }}
all_modified_files:
description: List of all copied, modified, added and deleted files.
description: "Returns all changed files i.e. *a combination of all added, copied, modified, renamed and deleted files (ACMRD)*."
value: ${{ steps.changed-files.outputs.all_modified_files }}
any_modified:
description: Return true only when any files provided using the files input have been modified.
description: "Returns `true` when any of the filenames provided using the `files` input has been modified. If no `files` have been specified,an empty string `''` is returned. i.e. *using a combination of all added, copied, modified, renamed, and deleted files (ACMRD)*."
value: ${{ steps.changed-files.outputs.any_modified }}
only_modified:
description: Return true when all files provided using the files input have been modified.
description: "Returns `true` when only files provided using the `files` input has been modified. If no `files` have been specified,an empty string `''` is returned.(ACMRD)."
value: ${{ steps.changed-files.outputs.only_modified }}
other_modified_files:
description: Return list of modified files not listed in the files input.
description: "Returns all other modified files not listed in the files input i.e. *a combination of all added, copied, modified, and deleted files (ACMRD)*"
value: ${{ steps.changed-files.outputs.other_modified_files }}
any_deleted:
description: Return true only when any files provided using the files input have been deleted.
description: "Returns `true` when any of the filenames provided using the `files` input has been deleted. If no `files` have been specified,an empty string `''` is returned. (D)"
value: ${{ steps.changed-files.outputs.any_deleted }}
only_deleted:
description: Return true when all files provided using the files input have been deleted.
description: "Returns `true` when only files provided using the `files` input has been deleted. If no `files` have been specified,an empty string `''` is returned. (D)"
value: ${{ steps.changed-files.outputs.only_deleted }}
other_deleted_files:
description: Return list of deleted files not listed in the files input.
description: "Returns all other deleted files not listed in the files input i.e. *a combination of all deleted files (D)*"
value: ${{ steps.changed-files.outputs.other_deleted_files }}
runs:
@@ -171,7 +171,7 @@ runs:
INPUT_SINCE: ${{ inputs.since }}
INPUT_UNTIL: ${{ inputs.until }}
INPUT_PATH: ${{ inputs.path }}
INPUT_TARGET_BRANCH_FETCH_DEPTH: ${{ inputs.target_branch_fetch_depth }}
INPUT_MAX_FETCH_DEPTH: ${{ inputs.max_fetch_depth }}
- name: Glob match
uses: tj-actions/glob@v15
id: glob
@@ -194,6 +194,7 @@ runs:
shell: bash
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
GITHUB_BASE_REF: ${{ github.base_ref }}
# INPUT_<VARIABLE_NAME> is not available in Composite run steps
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#example-specifying-inputs
INPUT_FILES_PATTERN_FILE: ${{ steps.glob.outputs.paths-output-file }}

View File

@@ -18,12 +18,12 @@ if [[ -n $INPUT_PATH ]]; then
cd "$REPO_DIR"
fi
echo "Verifying git version..."
function __version() {
echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }';
}
echo "Verifying git version..."
GIT_VERSION=$(git --version | awk '{print $3}') && exit_status=$? || exit_status=$?
if [[ $exit_status -ne 0 ]]; then
@@ -32,7 +32,7 @@ if [[ $exit_status -ne 0 ]]; then
fi
if [[ $(__version "$GIT_VERSION") -lt $(__version "2.18.0") ]]; then
echo "::error::Invalid git version. Please upgrade git ($GIT_VERSION) to >= (2.18.0)"
echo "::error::Invalid git version. Please upgrade ($GIT_VERSION) to >= (2.18.0)"
exit 1
else
echo "Valid git version found: ($GIT_VERSION)"
@@ -67,6 +67,28 @@ 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=$?
@@ -82,11 +104,9 @@ if [[ -z $GITHUB_BASE_REF ]]; then
exit 1
fi
else
git fetch --no-tags -u --progress origin --depth="$INPUT_TARGET_BRANCH_FETCH_DEPTH" "${TARGET_BRANCH}":"${TARGET_BRANCH}" && exit_status=$? || exit_status=$?
PREVIOUS_SHA=""
if [[ "$GITHUB_EVENT_FORCED" == "false" ]]; then
if [[ "$GITHUB_EVENT_FORCED" == "false" || -z "$GITHUB_EVENT_FORCED" ]]; then
PREVIOUS_SHA=$GITHUB_EVENT_BEFORE
fi
@@ -95,17 +115,18 @@ if [[ -z $GITHUB_BASE_REF ]]; then
fi
if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" ]]; then
PREVIOUS_SHA=$(git rev-parse "$CURRENT_SHA^1")
if [[ "$PREVIOUS_SHA" == "$CURRENT_SHA" ]]; then
if ! git rev-parse "$PREVIOUS_SHA^1" &>/dev/null; then
INITIAL_COMMIT="true"
echo "::debug::Initial commit detected"
PREVIOUS_SHA=$(git rev-parse "$CURRENT_SHA")
echo "::warning::Initial commit detected no previous commit found."
else
PREVIOUS_SHA=$(git rev-parse "$PREVIOUS_SHA^1")
fi
else
if [[ -z "$PREVIOUS_SHA" ]]; then
echo "::error::Unable to locate a previous commit"
exit 1
fi
fi
if [[ -z "$PREVIOUS_SHA" ]]; then
echo "::error::Unable to locate a previous commit"
exit 1
fi
fi
else
@@ -117,6 +138,9 @@ 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=$?
@@ -130,19 +154,21 @@ else
TARGET_BRANCH=$GITHUB_BASE_REF
CURRENT_BRANCH=$GITHUB_HEAD_REF
git fetch --no-tags -u --progress origin --depth="$INPUT_TARGET_BRANCH_FETCH_DEPTH" "${TARGET_BRANCH}":"${TARGET_BRANCH}" &&
exit_status=$? || exit_status=$?
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=$?
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=$?

View File

@@ -8,6 +8,11 @@ INPUT_SEPARATOR="${INPUT_SEPARATOR//$'\n'/'%0A'}"
INPUT_SEPARATOR="${INPUT_SEPARATOR//$'\r'/'%0D'}"
GITHUB_OUTPUT=${GITHUB_OUTPUT:-""}
DIFF="..."
if [[ -z $GITHUB_BASE_REF ]]; then
DIFF=".."
fi
if [[ $INPUT_QUOTEPATH == "false" ]]; then
git config --global core.quotepath off
@@ -20,12 +25,23 @@ if [[ -n $INPUT_DIFF_RELATIVE ]]; then
fi
function get_diff() {
base="$1"
sha="$2"
filter="$3"
local base="$1"
local sha="$2"
local filter="$3"
while IFS='' read -r sub; do
sub_commit_pre="$(git diff "$base" "$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')"
sub_commit_cur="$(git diff "$base" "$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')"
sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | 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=$?
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha"
exit 1
fi
if [ -n "$sub_commit_cur" ]; then
(
cd "$sub" && (
@@ -37,18 +53,39 @@ 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" "$sha" | xargs -I {} dirname {} | uniq
git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" | xargs -I {} dirname {} | 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" "$sha"
git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" && exit_status=$? || exit_status=$?
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get changed files between: $base$DIFF$sha"
exit 1
fi
fi
}
function get_renames() {
base="$1"
sha="$2"
local base="$1"
local sha="$2"
while IFS='' read -r sub; do
sub_commit_pre="$(git diff "$base" "$sha" -- "$sub" | grep '^[-]Subproject commit' | awk '{print $3}')"
sub_commit_cur="$(git diff "$base" "$sha" -- "$sub" | grep '^[+]Subproject commit' | awk '{print $3}')"
sub_commit_pre="$(git diff "$base$DIFF$sha" -- "$sub" | grep '^[-]Subproject commit' | 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=$?
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha"
exit 1
fi
if [ -n "$sub_commit_cur" ]; then
(
cd "$sub" && (
@@ -60,9 +97,19 @@ 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
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=$?
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}'
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=$?
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get renamed files between: $base$sha"
exit 1
fi
fi
}