Compare commits

..

32 Commits
v19 ... v19.2

Author SHA1 Message Date
jackton1
07b38ce1a1 Updated README.md 2022-05-14 18:19:03 -04:00
Tonye Jack
7a19e1f563 Fixed test. 2022-05-14 18:10:09 -04:00
Tonye Jack
ce04a71447 Renamed output. 2022-05-14 18:10:09 -04:00
Tonye Jack
f96d468a04 Updated test 2022-05-14 18:10:09 -04:00
Tonye Jack
6655125c37 Added get_renames function 2022-05-14 18:10:09 -04:00
Tonye Jack
4f723c8a08 Renamed files. 2022-05-14 18:10:09 -04:00
Tonye Jack
33a8d4202a Renamed test/test rename 2.txt -> test/test rename-2.txt 2022-05-14 18:10:09 -04:00
Tonye Jack
915804c250 Renamed test/test rename 1.txt -> test/test rename-1.txt 2022-05-14 18:10:09 -04:00
Tonye Jack
4523c1be3d Updated docs and fixed bug with old new files list 2022-05-14 18:10:09 -04:00
Tonye Jack
8ee5785691 Updated description. 2022-05-14 18:10:09 -04:00
Tonye Jack
7d223a4638 Renamed test files. 2022-05-14 18:10:09 -04:00
Tonye Jack
c632bba0e4 Renamed test/test-rename-2.txt -> test/test rename-2.txt 2022-05-14 18:10:09 -04:00
Tonye Jack
ac7e9e7409 Renamed test/test-rename-1.txt -> test/test rename-1.txt 2022-05-14 18:10:09 -04:00
Tonye Jack
8567a10991 Updated test.yml 2022-05-14 18:10:09 -04:00
Tonye Jack
1b9b564b1b Renamed test/test-rename.txt -> test/test-rename-2.txt 2022-05-14 18:10:09 -04:00
Tonye Jack
c91875f5c7 Added test-rename.txt 2022-05-14 18:10:09 -04:00
Tonye Jack
c65a184a68 Added support for returning old and new names of renamed files 2022-05-14 18:10:09 -04:00
Tonye Jack
9ee57c0871 Renamed test-renamed.txt -> test-rename-1.txt 2022-05-14 18:10:09 -04:00
Tonye Jack
a47fe7c043 Added a test file. 2022-05-14 18:10:09 -04:00
Tonye Jack
f1a01ff091 feat: Add support for listing renames. 2022-05-14 18:10:09 -04:00
Tonye Jack
0093196671 Revert "feat: Added support for returning old and new names of renamed files" (#485) 2022-05-14 18:08:54 -04:00
Tonye Jack
3baba75579 feat: Added support for returning old and new names of renamed files (#483) 2022-05-14 18:05:59 -04:00
Tonye Jack
1e1e79beb1 Update README.md 2022-05-14 02:37:55 -04:00
Tonye Jack
931aafa079 chore: Update the exit status when 2022-05-14 02:35:56 -04:00
Tonye Jack
1d44b6d930 Upgraded from v19 -> v19.1 (#482)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2022-05-14 02:30:50 -04:00
Renovate Bot
d26252004a chore(deps): update tj-actions/glob action to v7.20 2022-05-14 02:25:05 -04:00
Renovate Bot
62c26bf6f0 chore(deps): update tj-actions/glob action to v7.18 2022-05-13 21:57:03 -04:00
Renovate Bot
fb18af2532 chore(deps): update pascalgn/automerge-action action to v0.15.3 2022-05-12 14:31:53 -04:00
Renovate Bot
3aa2cc8b70 chore(deps): update peter-evans/create-pull-request action to v4.0.3 2022-05-08 06:34:28 -04:00
Renovate Bot
f301f0f948 chore(deps): update tj-actions/glob action to v7.17 2022-05-02 02:47:55 -04:00
Tonye Jack
11f586bd88 Update README.md 2022-04-28 02:30:50 -04:00
Tonye Jack
679a1f78bd Upgraded from v18.7 -> v19 (#474)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2022-04-28 02:13:50 -04:00
12 changed files with 193 additions and 69 deletions

View File

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

View File

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

View File

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

View File

@@ -4,6 +4,7 @@ on:
push:
branches:
- main
- "**"
pull_request:
branches:
- main
@@ -18,7 +19,7 @@ jobs:
uses: actions/checkout@v3
- name: shellcheck
uses: reviewdog/action-shellcheck@v1.15
test-pull-requests-from-forks:
name: Test changed-files diff on pull_requests from forks
runs-on: ${{ matrix.platform }}
@@ -140,7 +141,7 @@ jobs:
echo "${{ toJSON(steps.changed-files.outputs) }}"
shell:
bash
- name: Run changed-files-specific with non existent base sha
id: changed-files-specific
uses: ./
@@ -180,7 +181,7 @@ jobs:
echo "${{ toJSON(steps.changed-files.outputs) }}"
shell:
bash
- name: Run changed-files-specific with non existent sha
id: changed-files-specific
uses: ./
@@ -293,6 +294,42 @@ jobs:
echo '${{ toJSON(steps.changed-files-specific-newline-source-file.outputs) }}'
shell:
bash
- name: Run changed-files for old new filenames test rename 1
id: changed-files-all-old-new-renamed-files-1
uses: ./
with:
base_sha: d1c0ee4
sha: 4d04215
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-all-old-new-renamed-files-1.outputs) }}'
shell:
bash
- name: Check all_old_new_renamed_files output
if: "!contains(steps.changed-files-all-old-new-renamed-files-1.outputs.all_old_new_renamed_files, 'test/test rename 1.txt,test/test rename-1.txt')"
run: |
echo "Invalid output: Expected to include (test/test rename 1.txt,test/test rename-1.txt) got (${{ steps.changed-files-all-old-new-renamed-files-1.outputs.all_old_new_renamed_files }})"
exit 1
shell:
bash
- name: Run changed-files for old new filenames test rename 2
id: changed-files-all-old-new-renamed-files-2
uses: ./
with:
base_sha: 4d04215
sha: fe238e6
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-all-old-new-renamed-files-2.outputs) }}'
shell:
bash
- name: Check all_old_new_renamed_files output
if: "!contains(steps.changed-files-all-old-new-renamed-files-2.outputs.all_old_new_renamed_files, 'test/test rename 2.txt,test/test rename-2.txt')"
run: |
echo "Invalid output: Expected to include (test/test rename 2.txt test/test rename-2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2.outputs.all_old_new_renamed_files }})"
exit 1
shell:
bash
- name: Run changed-files with specific files
id: changed-files-specific
uses: ./

View File

@@ -31,7 +31,7 @@ jobs:
- name: Create Pull Request
if: failure()
uses: peter-evans/create-pull-request@v4.0.2
uses: peter-evans/create-pull-request@v4.0.3
with:
base: "main"
title: "Updated README.md"

View File

@@ -1,5 +1,55 @@
# Changelog
## [Unreleased](https://github.com/tj-actions/changed-files/tree/HEAD)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v19.1...HEAD)
**Closed issues:**
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
## [v19.1](https://github.com/tj-actions/changed-files/tree/v19.1) (2022-05-14)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v19...v19.1)
**Fixed bugs:**
- \[BUG\] Glob pattern for markdown files doesn't work properly [\#479](https://github.com/tj-actions/changed-files/issues/479)
- \[BUG\] Fails in Self-Hosted Runner [\#477](https://github.com/tj-actions/changed-files/issues/477)
- \[BUG\] File names with non ascii characters results in octal escape sequence output [\#437](https://github.com/tj-actions/changed-files/issues/437)
**Merged pull requests:**
- chore\(deps\): update tj-actions/glob action to v7.20 [\#481](https://github.com/tj-actions/changed-files/pull/481) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update tj-actions/glob action to v7.18 [\#480](https://github.com/tj-actions/changed-files/pull/480) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update pascalgn/automerge-action action to v0.15.3 [\#478](https://github.com/tj-actions/changed-files/pull/478) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update peter-evans/create-pull-request action to v4.0.3 [\#476](https://github.com/tj-actions/changed-files/pull/476) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update tj-actions/glob action to v7.17 [\#475](https://github.com/tj-actions/changed-files/pull/475) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v19 [\#474](https://github.com/tj-actions/changed-files/pull/474) ([jackton1](https://github.com/jackton1))
## [v19](https://github.com/tj-actions/changed-files/tree/v19) (2022-04-28)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v18.7...v19)
**Implemented enhancements:**
- \[Feature\] List previous paths of renamed files as deleted files [\#468](https://github.com/tj-actions/changed-files/issues/468)
**Closed issues:**
- Not listing renamed file with previous path in deleted\_files list [\#466](https://github.com/tj-actions/changed-files/issues/466)
**Merged pull requests:**
- feat: Add support for non ascii filenames [\#473](https://github.com/tj-actions/changed-files/pull/473) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update github/codeql-action action to v2 [\#472](https://github.com/tj-actions/changed-files/pull/472) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update reviewdog/action-shellcheck action to v1.15 [\#471](https://github.com/tj-actions/changed-files/pull/471) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update actions/checkout action to v3.0.2 [\#470](https://github.com/tj-actions/changed-files/pull/470) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update actions/checkout action to v3.0.1 [\#465](https://github.com/tj-actions/changed-files/pull/465) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update tj-actions/glob action to v7.16 [\#464](https://github.com/tj-actions/changed-files/pull/464) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update peter-evans/create-pull-request action to v4.0.2 [\#463](https://github.com/tj-actions/changed-files/pull/463) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v18.7 [\#462](https://github.com/tj-actions/changed-files/pull/462) ([jackton1](https://github.com/jackton1))
## [v18.7](https://github.com/tj-actions/changed-files/tree/v18.7) (2022-04-08)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v18.6...v18.7)
@@ -8,10 +58,6 @@
- \[BUG\] Modified files treated as `Non Matching modified files` [\#450](https://github.com/tj-actions/changed-files/issues/450)
**Closed issues:**
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
**Merged pull requests:**
- chore\(deps\): update peter-evans/create-pull-request action to v4.0.1 [\#461](https://github.com/tj-actions/changed-files/pull/461) ([renovate[bot]](https://github.com/apps/renovate))
@@ -217,10 +263,6 @@
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v1.0.1...v15.1)
**Implemented enhancements:**
- \[Feature\] Support using the fork point to detect file changes. [\#355](https://github.com/tj-actions/changed-files/issues/355)
**Merged pull requests:**
- Updated README.md [\#385](https://github.com/tj-actions/changed-files/pull/385) ([jackton1](https://github.com/jackton1))
@@ -396,7 +438,7 @@
## [v13](https://github.com/tj-actions/changed-files/tree/v13) (2022-02-17)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v2.0.1...v13)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v12.2...v13)
**Implemented enhancements:**
@@ -415,13 +457,13 @@
- \[BUG\] wrong result of any\_change output [\#314](https://github.com/tj-actions/changed-files/issues/314)
- \[BUG\] Investigate possible bug using since\_last\_remote\_commit when force pushing changes. [\#303](https://github.com/tj-actions/changed-files/issues/303)
## [v2.0.1](https://github.com/tj-actions/changed-files/tree/v2.0.1) (2021-12-30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v12.2...v2.0.1)
## [v12.2](https://github.com/tj-actions/changed-files/tree/v12.2) (2021-12-30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v12.1...v12.2)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v2.0.1...v12.2)
## [v2.0.1](https://github.com/tj-actions/changed-files/tree/v2.0.1) (2021-12-30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v12.1...v2.0.1)
**Merged pull requests:**
@@ -895,7 +937,6 @@
**Implemented enhancements:**
- \[Feature\] Get specific changed files reading a file [\#130](https://github.com/tj-actions/changed-files/issues/130)
- \[Feature\] Rename `files` -\> `paths` [\#125](https://github.com/tj-actions/changed-files/issues/125)
**Merged pull requests:**

View File

@@ -44,7 +44,7 @@ Retrieve all changed files relative to the target branch (`pull_request*` based
> * **IMPORTANT:** For `push` events you need to include `fetch-depth: 0` **OR** `fetch-depth: 2` depending on your use case.
> * When using `persist-credentials: false` with `actions/checkout@v2` you'll need to specify a `token` using the `token` input.
> * For monorepos where pulling all the branch history might not be desired, you can omit `fetch-depth` for `pull_request` events.
> * For files located in a sub-directory ensure that the pattern specified contains `**/` (globstar) to match any preceding directories or explicitly pass the full path relative to the project root. See: [#314](https://github.com/tj-actions/changed-files/issues/314)
> * For files located in a sub-directory ensure that the pattern specified contains `**/` (globstar) to match any preceding directories or explicitly pass the full path relative to the project root. See: [#314](https://github.com/tj-actions/changed-files/issues/314).
```yaml
name: CI
@@ -68,7 +68,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v18.7
uses: tj-actions/changed-files@v19.1
- name: List all changed files
run: |
@@ -100,35 +100,38 @@ 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. <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. (ACMR) |
| other\_changed\_files | `string` | `'new.txt path/to/file.png ...'` | Select all other changed files <br/> not listed in the files input <br /> i.e. *a combination of all added, <br /> copied and modified 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. <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. (ACMRD) |
| other\_modified\_files | `string` | `'new.txt path/to/file.png ...'` | Select 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. (D) |
| only\_deleted | `string` | `true` OR `false` | Returns `true` when only <br /> files provided using <br /> the `files` input has been deleted. (D) |
| other\_deleted\_files | `string` | `'new.txt path/to/file.png ...'` | Select 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 ...'` | Select 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 ...'` | Select 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 ...'` | Select all changed <br /> and modified files <br /> i.e. *a combination of (ACMRDTUX)* |
| added\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Added (A) |
| copied\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Copied (C) |
| deleted\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Deleted (D) |
| modified\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Modified (M) |
| renamed\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Renamed (R) |
| type\_changed\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that have their file type changed (T) |
| unmerged\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Unmerged (U) |
| unknown\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Unknown (X) |
| 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. <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. (ACMR) |
| other\_changed\_files | `string` | `'new.txt path/to/file.png ...'` | Select all other changed files <br/> not listed in the files input <br /> i.e. *a combination of all added, <br /> copied and modified 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. <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. (ACMRD) |
| other\_modified\_files | `string` | `'new.txt path/to/file.png ...'` | Select 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. (D) |
| only\_deleted | `string` | `true` OR `false` | Returns `true` when only <br /> files provided using <br /> the `files` input has been deleted. (D) |
| other\_deleted\_files | `string` | `'new.txt path/to/file.png ...'` | Select 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 ...'` | Select 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 ...'` | Select 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 ...'` | Select all changed <br /> and modified files <br /> i.e. *a combination of (ACMRDTUX)* |
| added\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Added (A) |
| copied\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Copied (C) |
| deleted\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Deleted (D) |
| modified\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Modified (M) |
| renamed\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Renamed (R) |
| all\_old\_new\_renamed\_files | `string` | `'old name.txt,new name.txt old name 2.txt,new name 2.txt...'` | Select only files that are Renamed and list their old and new names (R) |
| type\_changed\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that have their file type changed (T) |
| unmerged\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Unmerged (U) |
| unknown\_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Unknown (X) |
## Inputs
| Input | type | required | default | description |
|:---------------------------------:|:----------------------:|:--------:|:---------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| token | `string` | `false` | `${{ github.token }}` | [GITHUB\_TOKEN](https://docs.github.com/en/free-pro-team@latest/actions/reference/authentication-in-a-workflow#using-the-github_token-in-a-workflow) <br /> or a repo scoped <br /> [Personal Access Token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token) |
| separator | `string` | `true` | `' '` | Output string separator |
| separator | `string` | `false` | `' '` | Split character for output strings |
| 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) |
| 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 |
@@ -138,9 +141,9 @@ Support this project with a :star:
| 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 |
| since\_last\_remote\_commit | `string` | `false` | `false` | Use the last commit on the remote <br> branch as the `base_sha` <br> (Defaults to the last commit <br> on the target branch for Pull requests <br> or the previous commit <br> on the current branch <br> for push events). <br /> NOTE: This requires <br /> `fetch-depth: 0` <br /> with `actions/checkout@v2` |
| use\_fork\_point | `string` | `false` | `false` | Finds best common ancestor <br /> between two commits <br /> to use in a three-way merge <br /> as the `base_sha` <br /> See: [git merge-base](https://git-scm.com/docs/git-merge-base#Documentation/git-merge-base.txt---fork-point). <br> NOTE: This pulls the entire commit history of the base branch |
| quotepath | `string` | `false` | `true` | Output filenames completely verbatim by setting this to `false` |
| since\_last\_remote\_commit | `string` | `false` | `false` | Use the last commit on the remote <br> branch as the `base_sha` <br> (Defaults to the last commit <br> on the target branch for Pull requests <br> or the previous commit <br> on the current branch <br> for push events). <br /> NOTE: This requires <br /> `fetch-depth: 0` <br /> with `actions/checkout@v2` |
| use\_fork\_point | `string` | `false` | `false` | Finds best common ancestor <br /> between two commits <br /> to use in a three-way merge <br /> as the `base_sha` <br /> See: [git merge-base](https://git-scm.com/docs/git-merge-base#Documentation/git-merge-base.txt---fork-point). <br> NOTE: This pulls the entire commit history of the base branch |
| quotepath | `string` | `false` | `true` | Output filenames completely verbatim by setting this to `false` |
## Example
@@ -154,11 +157,11 @@ Support this project with a :star:
- name: Get changed files using defaults
id: changed-files
uses: tj-actions/changed-files@v18.7
uses: tj-actions/changed-files@v19.1
- name: Get changed files using a comma separator
id: changed-files-comma
uses: tj-actions/changed-files@v18.7
uses: tj-actions/changed-files@v19.1
with:
separator: ","
@@ -180,7 +183,7 @@ Support this project with a :star:
- name: Get specific changed files
id: changed-files-specific
uses: tj-actions/changed-files@v18.7
uses: tj-actions/changed-files@v19.1
with:
files: |
my-file.txt
@@ -221,14 +224,14 @@ Support this project with a :star:
- 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@v18.7
uses: tj-actions/changed-files@v19.1
with:
files_from_source_file: |
test/changed-files-list.txt
- 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@v18.7
uses: tj-actions/changed-files@v19.1
with:
files_from_source_file: |
test/changed-files-list.txt
@@ -237,13 +240,13 @@ Support this project with a :star:
- name: Use a different commit SHA
id: changed-files-custom-sha
uses: tj-actions/changed-files@v18.7
uses: tj-actions/changed-files@v19.1
with:
sha: ${{ github.event.pull_request.head.sha }}
- name: Use a different base SHA
id: changed-files-custom-base-sha
uses: tj-actions/changed-files@v18.7
uses: tj-actions/changed-files@v19.1
with:
base_sha: "2096ed0"
@@ -255,7 +258,7 @@ Support this project with a :star:
- name: Run changed-files with defaults on the dir1
id: changed-files-for-dir1
uses: tj-actions/changed-files@v18.7
uses: tj-actions/changed-files@v19.1
with:
path: dir1
@@ -267,15 +270,21 @@ Support this project with a :star:
- name: Run changed-files using the last commit on the remote branch
id: changed-files-since-last-remote-commit
uses: tj-actions/changed-files@v18.7
uses: tj-actions/changed-files@v19.1
with:
since_last_remote_commit: "true"
- name: Run changed-files using the fork point of a pull request
id: changed-files-fork-point
uses: tj-actions/changed-files@v18.7
uses: tj-actions/changed-files@v19.1
with:
use_fork_point: "true"
- name: Run changed-files with quotepath disabled
id: changed-files-quotepath
uses: tj-actions/changed-files@v19.1
with:
quotepath: "false"
```
@@ -327,7 +336,7 @@ With the switch from using grep's Extended regex to match files to the natively
- name: Get specific changed files
id: changed-files-specific
uses: tj-actions/changed-files@v18.7
uses: tj-actions/changed-files@v19.1
with:
files: |
*.sh

View File

@@ -5,11 +5,19 @@ author: tj-actions
inputs:
token:
description: 'Github token'
required: true
required: false
default: ${{ github.token }}
separator:
description: 'Split character for array output'
required: true
description: 'Split character for output strings'
required: false
default: " "
old_new_separator:
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'
required: false
default: " "
files_from_source_file:
description: 'Source file(s) to populate the files input'
@@ -74,6 +82,9 @@ outputs:
renamed_files:
description: List of renamed files.
value: ${{ steps.changed-files.outputs.renamed_files }}
all_old_new_renamed_files:
description: List of all old and new names of renamed files.
value: ${{ steps.changed-files.outputs.all_old_new_renamed_files }}
type_changed_files:
description: List of files that had type changes.
value: ${{ steps.changed-files.outputs.type_changed_files }}
@@ -151,7 +162,7 @@ runs:
INPUT_PATH: ${{ inputs.path }}
INPUT_USE_FORK_POINT: ${{ inputs.use_fork_point }}
- name: Glob match
uses: tj-actions/glob@v7.16
uses: tj-actions/glob@v7.20
id: glob
with:
files: ${{ inputs.files }}
@@ -182,6 +193,8 @@ runs:
INPUT_TARGET_BRANCH: ${{ steps.changed-files-diff-sha.outputs.target_branch }}
INPUT_CURRENT_BRANCH: ${{ steps.changed-files-diff-sha.outputs.current_branch }}
INPUT_QUOTEPATH: ${{ inputs.quotepath }}
INPUT_OLD_NEW_SEPARATOR: ${{ inputs.old_new_separator }}
INPUT_OLD_NEW_FILES_SEPARATOR: ${{ inputs.old_new_files_separator }}
branding:
icon: file-text

View File

@@ -57,7 +57,7 @@ if [[ -z $GITHUB_BASE_REF ]]; then
if [[ $(git rev-list --count HEAD) -gt 1 ]]; then
PREVIOUS_SHA=$(git rev-list --no-merges -n 1 HEAD^1 2>&1) && exit_status=$? || exit_status=$?
else
PREVIOUS_SHA=$CURRENT_SHA
PREVIOUS_SHA=$CURRENT_SHA && exit_status=$? || exit_status=$?
echo "Initial commit detected"
fi
else

View File

@@ -31,6 +31,24 @@ function get_diff() {
git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base" "$sha"
}
function get_renames() {
base="$1"
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}')"
if [ -n "$sub_commit_cur" ]; then
(
cd "$sub" && (
# the strange magic number is a hardcoded "empty tree" commit sha
get_renames "${sub_commit_pre:-4b825dc642cb6eb9a060e54bf8d69288fbee4904}" "${sub_commit_cur}" | awk -v r="$sub" '{ print "" r "/" $0}'
)
)
fi
done < <(git submodule | awk '{print $2}')
git log --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}'
}
echo "::group::changed-files"
echo "Resolving repository path..."
@@ -60,6 +78,7 @@ if [[ -z "$INPUT_FILES_PATTERN_FILE" ]]; then
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_OLD_NEW_RENAMED_FILES=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
else
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
@@ -72,6 +91,7 @@ else
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_OLD_NEW_RENAMED_FILES=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | grep -x -E -f "$INPUT_FILES_PATTERN_FILE" | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
ALL_OTHER_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
UNIQUE_ALL_CHANGED=$(echo "${ALL_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk '!a[$0]++' | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
@@ -82,7 +102,7 @@ else
else
echo "::set-output name=any_changed::false"
fi
OTHER_CHANGED=""
if [[ -n $ALL_OTHER_CHANGED ]]; then
@@ -112,7 +132,7 @@ else
else
echo "::set-output name=any_modified::false"
fi
OTHER_MODIFIED=""
if [[ -n $ALL_OTHER_MODIFIED ]]; then
@@ -142,7 +162,7 @@ else
else
echo "::set-output name=any_deleted::false"
fi
OTHER_DELETED=""
if [[ -n $ALL_OTHER_DELETED ]]; then
@@ -189,6 +209,7 @@ echo "Unknown files: $UNKNOWN"
echo "All changed and modified files: $ALL_CHANGED_AND_MODIFIED"
echo "All changed files: $ALL_CHANGED"
echo "All modified files: $ALL_MODIFIED"
echo "All old & new renamed files: $ALL_OLD_NEW_RENAMED_FILES"
echo "::set-output name=added_files::$ADDED"
echo "::set-output name=copied_files::$COPIED"
@@ -201,5 +222,6 @@ echo "::set-output name=unknown_files::$UNKNOWN"
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=all_old_new_renamed_files::$ALL_OLD_NEW_RENAMED_FILES"
echo "::endgroup::"

1
test/test rename 1.txt Normal file
View File

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

1
test/test rename 2.txt Normal file
View File

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