Compare commits

...

28 Commits

Author SHA1 Message Date
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
10 changed files with 430 additions and 190 deletions

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

@@ -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

@@ -872,11 +872,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

@@ -17,7 +17,7 @@ jobs:
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: |
@@ -31,7 +31,7 @@ jobs:
- 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,26 @@
# Changelog
## [Unreleased](https://github.com/tj-actions/changed-files/tree/HEAD)
## [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.1.1...HEAD)
[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:**
@@ -117,7 +123,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 +136,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 +158,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:**
@@ -1196,7 +1202,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 +1216,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:**

484
README.md
View File

@@ -65,7 +65,7 @@ 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
@@ -76,7 +76,7 @@ jobs:
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
@@ -162,142 +162,287 @@ Support this project with a :star:
| 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). |
| 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). |
## 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@v32
...
```
- 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@v32
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@v32
- 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@v32
- 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 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
See [outputs](#outputs) for a list of all available outputs.
- 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 }}
</details>
- 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>
<summary>Get all changed files using a list of files</summary>
- name: Run changed-files with defaults on the dir1
id: changed-files-for-dir1
uses: tj-actions/changed-files@v32
with:
path: dir1
```yaml
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v32
with:
files: |
my-file.txt
*.sh
*.png
!*.md
test_directory
**/*.sql
...
```
- 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.
- name: Run changed-files with quotepath disabled
id: changed-files-quotepath
uses: tj-actions/changed-files@v32
with:
quotepath: "false"
</details>
# 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>
<summary>Get all changed files using a list of files and take action base on the changes</summary>
# Push event based workflows
```yaml
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v32
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@v32
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@v32
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@v32
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@v32
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@v32
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@v32
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
@@ -314,54 +459,107 @@ Support this project with a :star:
uses: tj-actions/changed-files@v32
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
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@v32
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@v32
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@v32
with:
since: "2022-08-19"
- name: Get changed-files until 2022-08-20
id: changed-files-until
uses: tj-actions/changed-files@v32
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)

View File

@@ -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

@@ -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
@@ -24,8 +29,18 @@ function get_diff() {
sha="$2"
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,9 +52,19 @@ 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
}
@@ -47,8 +72,18 @@ 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}')"
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 +95,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
}