Compare commits
34 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d679de9200 | ||
|
|
e5890a16d1 | ||
|
|
76699419e3 | ||
|
|
1e10ed4950 | ||
|
|
d8a3837b58 | ||
|
|
812f1ba385 | ||
|
|
b8ad14b306 | ||
|
|
b18824c9f0 | ||
|
|
1da043e160 | ||
|
|
f9f0a46798 | ||
|
|
51a1c2074d | ||
|
|
3772657346 | ||
|
|
67831ca117 | ||
|
|
0754fdabe3 | ||
|
|
d290bdd91e | ||
|
|
73f135c7fa | ||
|
|
d5520e1e13 | ||
|
|
58d2c2ff31 | ||
|
|
b93fc4e17e | ||
|
|
8f01cb5faa | ||
|
|
a9723f45ea | ||
|
|
b658cd4874 | ||
|
|
48397d4073 | ||
|
|
c41bb1b973 | ||
|
|
58d63b3769 | ||
|
|
6254a409a7 | ||
|
|
dc711ae840 | ||
|
|
274863210e | ||
|
|
5a4a0bb928 | ||
|
|
7e6d51ee5b | ||
|
|
4da8ecd620 | ||
|
|
d967a177e2 | ||
|
|
1937b56341 | ||
|
|
9c41fbbf3a |
33
.all-contributorsrc
Normal file
33
.all-contributorsrc
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"README.md"
|
||||||
|
],
|
||||||
|
"imageSize": 100,
|
||||||
|
"commit": false,
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"login": "jsoref",
|
||||||
|
"name": "Josh Soref",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/2119212?v=4",
|
||||||
|
"profile": "https://github.com/jsoref",
|
||||||
|
"contributions": [
|
||||||
|
"doc"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "monoxgas",
|
||||||
|
"name": "Nick Landers",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/1223016?v=4",
|
||||||
|
"profile": "https://github.com/monoxgas",
|
||||||
|
"contributions": [
|
||||||
|
"code"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"contributorsPerLine": 7,
|
||||||
|
"projectName": "changed-files",
|
||||||
|
"projectOwner": "tj-actions",
|
||||||
|
"repoType": "github",
|
||||||
|
"repoHost": "https://github.com",
|
||||||
|
"skipCi": true
|
||||||
|
}
|
||||||
46
.github/workflows/test.yml
vendored
46
.github/workflows/test.yml
vendored
@@ -10,9 +10,24 @@ on:
|
|||||||
- main
|
- main
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test-no-head-sha:
|
shellcheck:
|
||||||
|
name: Run shellcheck
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout to branch
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: shellcheck
|
||||||
|
uses: reviewdog/action-shellcheck@v1.5
|
||||||
|
|
||||||
|
test-no-head-sha:
|
||||||
name: Test changed-files missing head sha
|
name: Test changed-files missing head sha
|
||||||
|
runs-on: ${{ matrix.platform }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
platform: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout to branch
|
- name: Checkout to branch
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
@@ -25,32 +40,43 @@ jobs:
|
|||||||
- name: Show output
|
- name: Show output
|
||||||
run: |
|
run: |
|
||||||
echo "${{ toJSON(steps.changed-files.outputs) }}"
|
echo "${{ toJSON(steps.changed-files.outputs) }}"
|
||||||
|
shell:
|
||||||
|
bash
|
||||||
|
|
||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
|
||||||
name: Test changed-files
|
name: Test changed-files
|
||||||
|
runs-on: ${{ matrix.platform }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
platform: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2.3.4
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- name: shellcheck
|
|
||||||
uses: reviewdog/action-shellcheck@v1.5
|
|
||||||
- name: Run changed-files with defaults
|
- name: Run changed-files with defaults
|
||||||
id: changed-files
|
id: changed-files
|
||||||
uses: ./
|
uses: ./
|
||||||
- name: Show output
|
- name: Show output
|
||||||
run: |
|
run: |
|
||||||
echo "${{ toJSON(steps.changed-files.outputs) }}"
|
echo "${{ toJSON(steps.changed-files.outputs) }}"
|
||||||
|
shell:
|
||||||
|
bash
|
||||||
- name: List all modified files
|
- name: List all modified files
|
||||||
run: |
|
run: |
|
||||||
for file in "${{ steps.changed-files.outputs.modified_files }}"; do
|
for file in "${{ steps.changed-files.outputs.modified_files }}"; do
|
||||||
echo $file
|
echo $file
|
||||||
done
|
done
|
||||||
|
shell:
|
||||||
|
bash
|
||||||
- name: Run step when README.md changes
|
- name: Run step when README.md changes
|
||||||
if: contains(steps.changed-files.outputs.modified_files, 'README.md')
|
if: contains(steps.changed-files.outputs.modified_files, 'README.md')
|
||||||
run: |
|
run: |
|
||||||
echo "Your README.md has been modified ${{ steps.changed-files.outputs.modified_files }}."
|
echo "Your README.md has been modified ${{ steps.changed-files.outputs.modified_files }}."
|
||||||
|
shell:
|
||||||
|
bash
|
||||||
- name: Run changed-files with comma separator
|
- name: Run changed-files with comma separator
|
||||||
id: changed-files-comma
|
id: changed-files-comma
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -59,6 +85,8 @@ jobs:
|
|||||||
- name: Show output
|
- name: Show output
|
||||||
run: |
|
run: |
|
||||||
echo "${{ toJSON(steps.changed-files-comma.outputs) }}"
|
echo "${{ toJSON(steps.changed-files-comma.outputs) }}"
|
||||||
|
shell:
|
||||||
|
bash
|
||||||
- name: Run changed-files with specific files
|
- name: Run changed-files with specific files
|
||||||
id: changed-files-specific
|
id: changed-files-specific
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -73,9 +101,13 @@ jobs:
|
|||||||
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_changed }})"
|
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_changed }})"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
shell:
|
||||||
|
bash
|
||||||
- name: Show output
|
- name: Show output
|
||||||
run: |
|
run: |
|
||||||
echo "${{ toJSON(steps.changed-files-specific.outputs) }}"
|
echo "${{ toJSON(steps.changed-files-specific.outputs) }}"
|
||||||
|
shell:
|
||||||
|
bash
|
||||||
- name: Run changed-files with specific files comma separator
|
- name: Run changed-files with specific files comma separator
|
||||||
id: changed-files-specific-comma
|
id: changed-files-specific-comma
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -91,6 +123,10 @@ jobs:
|
|||||||
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_changed }})"
|
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_changed }})"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
shell:
|
||||||
|
bash
|
||||||
- name: Show output
|
- name: Show output
|
||||||
run: |
|
run: |
|
||||||
echo "${{ toJSON(steps.changed-files-specific-comma.outputs) }}"
|
echo "${{ toJSON(steps.changed-files-specific-comma.outputs) }}"
|
||||||
|
shell:
|
||||||
|
bash
|
||||||
|
|||||||
2
.github/workflows/update-readme.yml
vendored
2
.github/workflows/update-readme.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
uses: tj-actions/remark@v1.5
|
uses: tj-actions/remark@v1.5
|
||||||
|
|
||||||
- name: Verify Changed files
|
- name: Verify Changed files
|
||||||
uses: tj-actions/verify-changed-files@v6
|
uses: tj-actions/verify-changed-files@v7
|
||||||
id: verify_changed_files
|
id: verify_changed_files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
|
|||||||
10
Dockerfile
10
Dockerfile
@@ -1,10 +0,0 @@
|
|||||||
FROM alpine:3.13.5
|
|
||||||
|
|
||||||
LABEL maintainer="Tonye Jack <jtonye@ymail.com>"
|
|
||||||
|
|
||||||
RUN apk add bash git openssh grep sed
|
|
||||||
|
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
|
||||||
RUN chmod +x /entrypoint.sh
|
|
||||||
|
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
|
||||||
78
HISTORY.md
78
HISTORY.md
@@ -1,8 +1,8 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## [v6.3](https://github.com/tj-actions/changed-files/tree/v6.3) (2021-05-26)
|
## [v8.2](https://github.com/tj-actions/changed-files/tree/v8.2) (2021-06-24)
|
||||||
|
|
||||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6.2...v6.3)
|
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v8.1...v8.2)
|
||||||
|
|
||||||
**Closed issues:**
|
**Closed issues:**
|
||||||
|
|
||||||
@@ -10,17 +10,81 @@
|
|||||||
|
|
||||||
**Merged pull requests:**
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Update arrow direction and added branch information [\#113](https://github.com/tj-actions/changed-files/pull/113) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Updated README.md [\#112](https://github.com/tj-actions/changed-files/pull/112) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Update tj-actions/verify-changed-files action to v7 [\#111](https://github.com/tj-actions/changed-files/pull/111) ([renovate[bot]](https://github.com/apps/renovate))
|
||||||
|
- Upgraded to v8.1 [\#110](https://github.com/tj-actions/changed-files/pull/110) ([jackton1](https://github.com/jackton1))
|
||||||
|
|
||||||
|
## [v8.1](https://github.com/tj-actions/changed-files/tree/v8.1) (2021-06-18)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v8...v8.1)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Rename changed\_files -\> type\_changed\_files [\#105](https://github.com/tj-actions/changed-files/issues/105)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Rename changed\_files to type\_changed\_files [\#109](https://github.com/tj-actions/changed-files/pull/109) ([jackton1](https://github.com/jackton1))
|
||||||
|
|
||||||
|
## [v8](https://github.com/tj-actions/changed-files/tree/v8) (2021-06-18)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v7...v8)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- support windows-latest [\#101](https://github.com/tj-actions/changed-files/issues/101)
|
||||||
|
- issues with failed getting changed files [\#100](https://github.com/tj-actions/changed-files/issues/100)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Fixed missing env variables [\#108](https://github.com/tj-actions/changed-files/pull/108) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Add macos to test. [\#107](https://github.com/tj-actions/changed-files/pull/107) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Updated README.md [\#106](https://github.com/tj-actions/changed-files/pull/106) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Upgraded to v8 [\#104](https://github.com/tj-actions/changed-files/pull/104) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Updated README.md [\#103](https://github.com/tj-actions/changed-files/pull/103) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Add support for multiple platforms [\#102](https://github.com/tj-actions/changed-files/pull/102) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Update alpine Docker tag to v3.14.0 [\#99](https://github.com/tj-actions/changed-files/pull/99) ([renovate[bot]](https://github.com/apps/renovate))
|
||||||
|
- Updated README.md [\#98](https://github.com/tj-actions/changed-files/pull/98) ([jackton1](https://github.com/jackton1))
|
||||||
|
- docs: add monoxgas as a contributor for code [\#97](https://github.com/tj-actions/changed-files/pull/97) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add jsoref as a contributor for doc [\#96](https://github.com/tj-actions/changed-files/pull/96) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- Upgraded to v7 [\#94](https://github.com/tj-actions/changed-files/pull/94) ([jackton1](https://github.com/jackton1))
|
||||||
|
|
||||||
|
## [v7](https://github.com/tj-actions/changed-files/tree/v7) (2021-06-09)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6.3...v7)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Request: Option to Output Whole File Path [\#88](https://github.com/tj-actions/changed-files/issues/88)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Clean up debug message [\#93](https://github.com/tj-actions/changed-files/pull/93) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Make the changes between two commits more explicit [\#92](https://github.com/tj-actions/changed-files/pull/92) ([monoxgas](https://github.com/monoxgas))
|
||||||
|
- Updated README.md [\#91](https://github.com/tj-actions/changed-files/pull/91) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Punctuation [\#90](https://github.com/tj-actions/changed-files/pull/90) ([jsoref](https://github.com/jsoref))
|
||||||
|
- Update README.md [\#89](https://github.com/tj-actions/changed-files/pull/89) ([jackton1](https://github.com/jackton1))
|
||||||
|
- Update tj-actions/sync-release-version action to v8.7 [\#86](https://github.com/tj-actions/changed-files/pull/86) ([renovate[bot]](https://github.com/apps/renovate))
|
||||||
|
- Upgraded to v6.3 [\#85](https://github.com/tj-actions/changed-files/pull/85) ([jackton1](https://github.com/jackton1))
|
||||||
|
|
||||||
|
## [v6.3](https://github.com/tj-actions/changed-files/tree/v6.3) (2021-05-26)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6...v6.3)
|
||||||
|
|
||||||
|
## [v6](https://github.com/tj-actions/changed-files/tree/v6) (2021-05-26)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6.2...v6)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
- Added usage link to warning message [\#84](https://github.com/tj-actions/changed-files/pull/84) ([jackton1](https://github.com/jackton1))
|
- Added usage link to warning message [\#84](https://github.com/tj-actions/changed-files/pull/84) ([jackton1](https://github.com/jackton1))
|
||||||
- Update pascalgn/automerge-action action to v0.14.2 [\#83](https://github.com/tj-actions/changed-files/pull/83) ([renovate[bot]](https://github.com/apps/renovate))
|
- Update pascalgn/automerge-action action to v0.14.2 [\#83](https://github.com/tj-actions/changed-files/pull/83) ([renovate[bot]](https://github.com/apps/renovate))
|
||||||
- Update README.md [\#82](https://github.com/tj-actions/changed-files/pull/82) ([jackton1](https://github.com/jackton1))
|
- Update README.md [\#82](https://github.com/tj-actions/changed-files/pull/82) ([jackton1](https://github.com/jackton1))
|
||||||
|
|
||||||
## [v6.2](https://github.com/tj-actions/changed-files/tree/v6.2) (2021-05-25)
|
## [v6.2](https://github.com/tj-actions/changed-files/tree/v6.2) (2021-05-25)
|
||||||
|
|
||||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6...v6.2)
|
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6.1...v6.2)
|
||||||
|
|
||||||
## [v6](https://github.com/tj-actions/changed-files/tree/v6) (2021-05-25)
|
|
||||||
|
|
||||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6.1...v6)
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
|||||||
62
README.md
62
README.md
@@ -1,23 +1,36 @@
|
|||||||
[](https://github.com/tj-actions/changed-files/actions/workflows/test.yml) [](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml) [](https://github.com/search?o=desc\&q=tj-actions+changed-files+path%3A.github%2Fworkflows+language%3AYAML\&s=\&type=Code)
|
[](https://github.com/tj-actions/changed-files/actions/workflows/test.yml) [](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml) [](https://github.com/search?o=desc\&q=tj-actions+changed-files+language%3AYAML\&s=\&type=Code)
|
||||||
|
|
||||||
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||||
|
|
||||||
|
[](#contributors-)
|
||||||
|
|
||||||
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||||
|
|
||||||
## changed-files
|
## changed-files
|
||||||
|
|
||||||
Retrieve all changed files relative to the default branch (`pull_request*` events) or a previous commit (`push` event) returning the **absolute path** to all changed files from the project root.
|
Retrieve all changed files relative to the default branch (`pull_request*` based events) or a previous commit (`push` based event) returning the **absolute path** to all changed files from the project root.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
* Boolean output indicating that certain files have been modified.
|
||||||
* List all files that have changed.
|
* List all files that have changed.
|
||||||
* Between the current pull request branch and the default branch.
|
* Between the current pull request branch and the default branch.
|
||||||
* Between the last commit and the current pushed change.
|
* Between the last commit and the current pushed change.
|
||||||
* Restrict change detection to a subset of files.
|
* Restrict change detection to a subset of files.
|
||||||
* Report on files that have at least one change.
|
* Report on files that have at least one change.
|
||||||
* Regex pattern matching on a subset of files.
|
* [Regex pattern](https://www.gnu.org/software/grep/manual/grep.html#Regular-Expressions) matching on a subset of files.
|
||||||
|
|
||||||
|
## Supported Platforms
|
||||||
|
|
||||||
|
* [`ubuntu-*`](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)
|
||||||
|
* [`macos-*`](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)
|
||||||
|
* [`windows-*`](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
> NOTE: :warning:
|
> NOTE: :warning:
|
||||||
>
|
>
|
||||||
> * **IMPORTANT:** For `push` events to work you need to include `fetch-depth: 0` **OR** `fetch-depth: 2` depending on your use case.
|
> * **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.
|
> * When using `persist-credentials: false` with `actions/checkout@v2` you'll need to specify a `token` using the `token` input.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@@ -33,7 +46,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest # windows-latest | macos-latest
|
||||||
name: Test changed-files
|
name: Test changed-files
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
@@ -42,7 +55,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Get changed files
|
- name: Get changed files
|
||||||
id: changed-files
|
id: changed-files
|
||||||
uses: tj-actions/changed-files@v6.3
|
uses: tj-actions/changed-files@v8.2
|
||||||
|
|
||||||
- name: List all modified files
|
- name: List all modified files
|
||||||
run: |
|
run: |
|
||||||
@@ -74,7 +87,7 @@ jobs:
|
|||||||
| deleted_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Deleted (D) |
|
| 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) |
|
| 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) |
|
| renamed_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Renamed (R) |
|
||||||
| changed_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that have their file type changed (T) |
|
| 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) |
|
| 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) |
|
| unknown_files | `string` | `'new.txt path/to/file.png ...'` | Select only files that are Unknown (X) |
|
||||||
|
|
||||||
@@ -84,7 +97,7 @@ jobs:
|
|||||||
|:-------------:|:-----------:|:-------------:|:-----------------------------:|:-------------:|
|
|:-------------:|:-----------:|:-------------:|:-----------------------------:|:-------------:|
|
||||||
| 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) |
|
| 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` | `true` | `' '` | Output string separator |
|
||||||
| files | `string` OR `string[]` | `false` | | Restricted list <br> or string of specific <br> files or filename <br> to watch for changes |
|
| files | `string` OR `string[]` | `false` | | Check for changes <br> using only this list of files <br> (Defaults to the entire repo) |
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
@@ -95,11 +108,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Get changed files using defaults
|
- name: Get changed files using defaults
|
||||||
id: changed-files
|
id: changed-files
|
||||||
uses: tj-actions/changed-files@v6.3
|
uses: tj-actions/changed-files@v8.2
|
||||||
|
|
||||||
- name: Get changed files using a comma separator
|
- name: Get changed files using a comma separator
|
||||||
id: changed-files-comma
|
id: changed-files-comma
|
||||||
uses: tj-actions/changed-files@v6.3
|
uses: tj-actions/changed-files@v8.2
|
||||||
with:
|
with:
|
||||||
separator: ","
|
separator: ","
|
||||||
|
|
||||||
@@ -121,7 +134,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Get specific changed files
|
- name: Get specific changed files
|
||||||
id: changed-files-specific
|
id: changed-files-specific
|
||||||
uses: tj-actions/changed-files@v6.3
|
uses: tj-actions/changed-files@v8.2
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
my-file.txt
|
my-file.txt
|
||||||
@@ -150,7 +163,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Get changed files
|
- name: Get changed files
|
||||||
id: changed-files
|
id: changed-files
|
||||||
uses: tj-actions/changed-files@v6.3
|
uses: tj-actions/changed-files@v8.2
|
||||||
|
|
||||||
- name: Pre-commit
|
- name: Pre-commit
|
||||||
uses: pre-commit/action@v2.0.0
|
uses: pre-commit/action@v2.0.0
|
||||||
@@ -190,3 +203,28 @@ If you are reporting a bug, please include:
|
|||||||
* Your operating system name and version.
|
* Your operating system name and version.
|
||||||
* Any details about your workflow that might be helpful in troubleshooting.
|
* Any details about your workflow that might be helpful in troubleshooting.
|
||||||
* Detailed steps to reproduce the bug.
|
* Detailed steps to reproduce the bug.
|
||||||
|
|
||||||
|
## Contributors ✨
|
||||||
|
|
||||||
|
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||||
|
|
||||||
|
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||||
|
|
||||||
|
<!-- prettier-ignore-start -->
|
||||||
|
|
||||||
|
<!-- markdownlint-disable -->
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td align="center"><a href="https://github.com/jsoref"><img src="https://avatars.githubusercontent.com/u/2119212?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Josh Soref</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=jsoref" title="Documentation">📖</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/monoxgas"><img src="https://avatars.githubusercontent.com/u/1223016?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nick Landers</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=monoxgas" title="Code">💻</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<!-- markdownlint-restore -->
|
||||||
|
|
||||||
|
<!-- prettier-ignore-end -->
|
||||||
|
|
||||||
|
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||||
|
|
||||||
|
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
||||||
|
|||||||
34
action.yml
34
action.yml
@@ -11,37 +11,61 @@ inputs:
|
|||||||
required: true
|
required: true
|
||||||
default: " "
|
default: " "
|
||||||
files:
|
files:
|
||||||
description: 'Check for file changes for all files listed (Defaults to the entire repo)'
|
description: 'Check for changes using only this list of files (Defaults to the entire repo)'
|
||||||
required: false
|
required: false
|
||||||
default: ""
|
default: ""
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
added_files:
|
added_files:
|
||||||
description: List of added files.
|
description: List of added files.
|
||||||
|
value: ${{ steps.changed-files.outputs.added_files }}
|
||||||
copied_files:
|
copied_files:
|
||||||
description: List of copied files.
|
description: List of copied files.
|
||||||
|
value: ${{ steps.changed-files.outputs.copied_files }}
|
||||||
deleted_files:
|
deleted_files:
|
||||||
description: List of deleted files.
|
description: List of deleted files.
|
||||||
|
value: ${{ steps.changed-files.outputs.deleted_files }}
|
||||||
modified_files:
|
modified_files:
|
||||||
description: List of modified files.
|
description: List of modified files.
|
||||||
|
value: ${{ steps.changed-files.outputs.modified_files }}
|
||||||
renamed_files:
|
renamed_files:
|
||||||
description: List of renamed files.
|
description: List of renamed files.
|
||||||
changed_files:
|
value: ${{ steps.changed-files.outputs.renamed_files }}
|
||||||
description: List of changed files.
|
type_changed_files:
|
||||||
|
description: List of files that had type changes.
|
||||||
|
value: ${{ steps.changed-files.outputs.type_changed_files }}
|
||||||
unmerged_files:
|
unmerged_files:
|
||||||
description: List of unmerged files.
|
description: List of unmerged files.
|
||||||
|
value: ${{ steps.changed-files.outputs.unmerged_files }}
|
||||||
unknown_files:
|
unknown_files:
|
||||||
description: List of unknown files.
|
description: List of unknown files.
|
||||||
|
value: ${{ steps.changed-files.outputs.unknown_files }}
|
||||||
all_changed_files:
|
all_changed_files:
|
||||||
description: List of all changed files.
|
description: List of all changed files.
|
||||||
|
value: ${{ steps.changed-files.outputs.all_changed_files }}
|
||||||
all_modified_files:
|
all_modified_files:
|
||||||
description: List of all copied modified and added files.
|
description: List of all copied modified and added files.
|
||||||
|
value: ${{ steps.changed-files.outputs.all_modified_files }}
|
||||||
any_changed:
|
any_changed:
|
||||||
description: Return true only when any files provided using the files input have changed.
|
description: Return true only when any files provided using the files input have changed.
|
||||||
|
value: ${{ steps.changed-files.outputs.any_changed }}
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: 'docker'
|
using: 'composite'
|
||||||
image: 'Dockerfile'
|
steps:
|
||||||
|
- run: |
|
||||||
|
bash $GITHUB_ACTION_PATH/entrypoint.sh
|
||||||
|
id: changed-files
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
GITHUB_SHA: ${{ github.sha }}
|
||||||
|
GITHUB_BASE_REF: ${{ github.base_ref }}
|
||||||
|
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||||
|
# INPUT_<VARIABLE_NAME> is not available in Composite run steps
|
||||||
|
# https://github.community/t/input-variable-name-is-not-available-in-composite-run-steps/127611
|
||||||
|
INPUT_TOKEN: ${{ inputs.token }}
|
||||||
|
INPUT_FILES: ${{ inputs.files }}
|
||||||
|
INPUT_SEPARATOR: ${{ inputs.separator }}
|
||||||
|
|
||||||
branding:
|
branding:
|
||||||
icon: file-text
|
icon: file-text
|
||||||
|
|||||||
17
entrypoint.sh
Normal file → Executable file
17
entrypoint.sh
Normal file → Executable file
@@ -19,6 +19,8 @@ fi
|
|||||||
|
|
||||||
if [[ -z $GITHUB_BASE_REF ]]; then
|
if [[ -z $GITHUB_BASE_REF ]]; then
|
||||||
PREV_SHA=$(git rev-parse HEAD^1 2>&1) && exit_status=$? || exit_status=$?
|
PREV_SHA=$(git rev-parse HEAD^1 2>&1) && exit_status=$? || exit_status=$?
|
||||||
|
TARGET_BRANCH=${GITHUB_REF/refs\/heads\//}
|
||||||
|
CURRENT_BRANCH=$TARGET_BRANCH
|
||||||
|
|
||||||
if [[ $exit_status -ne 0 ]]; then
|
if [[ $exit_status -ne 0 ]]; then
|
||||||
echo "::warning::Unable to determine the previous commit sha"
|
echo "::warning::Unable to determine the previous commit sha"
|
||||||
@@ -27,6 +29,7 @@ if [[ -z $GITHUB_BASE_REF ]]; then
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
TARGET_BRANCH=${GITHUB_BASE_REF}
|
TARGET_BRANCH=${GITHUB_BASE_REF}
|
||||||
|
CURRENT_BRANCH=$GITHUB_HEAD_REF
|
||||||
git fetch --depth=1 origin "${TARGET_BRANCH}":"${TARGET_BRANCH}"
|
git fetch --depth=1 origin "${TARGET_BRANCH}":"${TARGET_BRANCH}"
|
||||||
PREV_SHA=$(git rev-parse "${TARGET_BRANCH}" 2>&1) && exit_status=$? || exit_status=$?
|
PREV_SHA=$(git rev-parse "${TARGET_BRANCH}" 2>&1) && exit_status=$? || exit_status=$?
|
||||||
|
|
||||||
@@ -36,7 +39,7 @@ else
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Retrieving changes between $PREV_SHA → $CURR_SHA"
|
echo "Retrieving changes between $PREV_SHA ($TARGET_BRANCH) ← $CURR_SHA ($CURRENT_BRANCH)"
|
||||||
|
|
||||||
if [[ -z "$INPUT_FILES" ]]; then
|
if [[ -z "$INPUT_FILES" ]]; then
|
||||||
echo "Getting diff..."
|
echo "Getting diff..."
|
||||||
@@ -45,7 +48,7 @@ if [[ -z "$INPUT_FILES" ]]; then
|
|||||||
DELETED=$(git diff --diff-filter=D --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
DELETED=$(git diff --diff-filter=D --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
||||||
MODIFIED=$(git diff --diff-filter=M --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
MODIFIED=$(git diff --diff-filter=M --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
||||||
RENAMED=$(git diff --diff-filter=R --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
RENAMED=$(git diff --diff-filter=R --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
||||||
CHANGED=$(git diff --diff-filter=T --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
TYPE_CHANGED=$(git diff --diff-filter=T --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
||||||
UNMERGED=$(git diff --diff-filter=U --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
UNMERGED=$(git diff --diff-filter=U --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
||||||
UNKNOWN=$(git diff --diff-filter=X --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
UNKNOWN=$(git diff --diff-filter=X --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
||||||
ALL_CHANGED=$(git diff --diff-filter="*ACDMRTUX" --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
ALL_CHANGED=$(git diff --diff-filter="*ACDMRTUX" --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
|
||||||
@@ -56,7 +59,7 @@ else
|
|||||||
DELETED_ARRAY=()
|
DELETED_ARRAY=()
|
||||||
MODIFIED_ARRAY=()
|
MODIFIED_ARRAY=()
|
||||||
RENAMED_ARRAY=()
|
RENAMED_ARRAY=()
|
||||||
CHANGED_ARRAY=()
|
TYPE_CHANGED_ARRAY=()
|
||||||
UNMERGED_ARRAY=()
|
UNMERGED_ARRAY=()
|
||||||
UNKNOWN_ARRAY=()
|
UNKNOWN_ARRAY=()
|
||||||
ALL_CHANGED_ARRAY=()
|
ALL_CHANGED_ARRAY=()
|
||||||
@@ -76,7 +79,7 @@ else
|
|||||||
# shellcheck disable=SC2207
|
# shellcheck disable=SC2207
|
||||||
RENAMED_ARRAY+=($(git diff --diff-filter=R --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
|
RENAMED_ARRAY+=($(git diff --diff-filter=R --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
|
||||||
# shellcheck disable=SC2207
|
# shellcheck disable=SC2207
|
||||||
CHANGED_ARRAY+=($(git diff --diff-filter=T --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
|
TYPE_CHANGED_ARRAY+=($(git diff --diff-filter=T --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
|
||||||
# shellcheck disable=SC2207
|
# shellcheck disable=SC2207
|
||||||
UNMERGED_ARRAY+=($(git diff --diff-filter=U --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
|
UNMERGED_ARRAY+=($(git diff --diff-filter=U --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
|
||||||
# shellcheck disable=SC2207
|
# shellcheck disable=SC2207
|
||||||
@@ -98,7 +101,7 @@ else
|
|||||||
# shellcheck disable=SC2001
|
# shellcheck disable=SC2001
|
||||||
RENAMED=$(echo "${RENAMED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
|
RENAMED=$(echo "${RENAMED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
|
||||||
# shellcheck disable=SC2001
|
# shellcheck disable=SC2001
|
||||||
CHANGED=$(echo "${CHANGED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
|
TYPE_CHANGED=$(echo "${TYPE_CHANGED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
|
||||||
# shellcheck disable=SC2001
|
# shellcheck disable=SC2001
|
||||||
UNMERGED=$(echo "${UNMERGED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
|
UNMERGED=$(echo "${UNMERGED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
|
||||||
# shellcheck disable=SC2001
|
# shellcheck disable=SC2001
|
||||||
@@ -114,7 +117,7 @@ echo "Copied files: $COPIED"
|
|||||||
echo "Deleted files: $DELETED"
|
echo "Deleted files: $DELETED"
|
||||||
echo "Modified files: $MODIFIED"
|
echo "Modified files: $MODIFIED"
|
||||||
echo "Renamed files: $RENAMED"
|
echo "Renamed files: $RENAMED"
|
||||||
echo "Changed files: $CHANGED"
|
echo "Type Changed files: $TYPE_CHANGED"
|
||||||
echo "Unmerged files: $UNMERGED"
|
echo "Unmerged files: $UNMERGED"
|
||||||
echo "Unknown files: $UNKNOWN"
|
echo "Unknown files: $UNKNOWN"
|
||||||
echo "All changed files: $ALL_CHANGED"
|
echo "All changed files: $ALL_CHANGED"
|
||||||
@@ -138,7 +141,7 @@ echo "::set-output name=copied_files::$COPIED"
|
|||||||
echo "::set-output name=deleted_files::$DELETED"
|
echo "::set-output name=deleted_files::$DELETED"
|
||||||
echo "::set-output name=modified_files::$MODIFIED"
|
echo "::set-output name=modified_files::$MODIFIED"
|
||||||
echo "::set-output name=renamed_files::$RENAMED"
|
echo "::set-output name=renamed_files::$RENAMED"
|
||||||
echo "::set-output name=changed_files::$CHANGED"
|
echo "::set-output name=type_changed_files::$TYPE_CHANGED"
|
||||||
echo "::set-output name=unmerged_files::$UNMERGED"
|
echo "::set-output name=unmerged_files::$UNMERGED"
|
||||||
echo "::set-output name=unknown_files::$UNKNOWN"
|
echo "::set-output name=unknown_files::$UNKNOWN"
|
||||||
echo "::set-output name=all_changed_files::$ALL_CHANGED"
|
echo "::set-output name=all_changed_files::$ALL_CHANGED"
|
||||||
|
|||||||
Reference in New Issue
Block a user