Compare commits

...

108 Commits
v5.2 ... v8.2

Author SHA1 Message Date
Tonye Jack
1e10ed4950 Update arrow direction and added branch information (#113) 2021-06-24 16:46:31 -04:00
Tonye Jack
d8a3837b58 Delete codacy-analysis.yml 2021-06-24 12:55:41 -04:00
Tonye Jack
812f1ba385 Create codacy-analysis.yml 2021-06-24 12:38:48 -04:00
Tonye Jack
b8ad14b306 Updated README.md (#112)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-06-23 09:34:52 -04:00
Tonye Jack
b18824c9f0 Update README.md 2021-06-22 22:54:31 -04:00
Renovate Bot
1da043e160 Update tj-actions/verify-changed-files action to v7 2021-06-22 22:11:54 -04:00
Tonye Jack
f9f0a46798 Update action.yml 2021-06-21 18:36:10 -04:00
Tonye Jack
51a1c2074d Update README.md 2021-06-21 18:35:17 -04:00
Tonye Jack
3772657346 Update README.md 2021-06-21 18:34:15 -04:00
Tonye Jack
67831ca117 Upgraded to v8.1 (#110)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-06-18 19:33:45 -04:00
Tonye Jack
0754fdabe3 Rename changed_files to type_changed_files (#109) 2021-06-18 19:28:02 -04:00
Tonye Jack
d290bdd91e Fix bug with input token 2021-06-18 19:15:18 -04:00
Tonye Jack
73f135c7fa Add macos to test. (#107) 2021-06-18 19:09:00 -04:00
Tonye Jack
d5520e1e13 Fixed missing env variables (#108) 2021-06-18 19:03:51 -04:00
Tonye Jack
58d2c2ff31 Update test.yml 2021-06-18 15:05:37 -04:00
Tonye Jack
b93fc4e17e Delete Dockerfile 2021-06-18 14:46:08 -04:00
Tonye Jack
8f01cb5faa Updated README.md (#106)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-06-18 14:41:28 -04:00
Tonye Jack
a9723f45ea Update README.md 2021-06-18 14:34:42 -04:00
Tonye Jack
b658cd4874 Update README.md 2021-06-18 13:38:07 -04:00
Tonye Jack
48397d4073 Upgraded to v8 (#104)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-06-18 10:28:28 -04:00
Tonye Jack
c41bb1b973 Updated README.md (#103)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-06-18 10:26:53 -04:00
Tonye Jack
58d63b3769 Update README.md 2021-06-18 10:24:24 -04:00
Tonye Jack
6254a409a7 Add support for multiple platforms (#102) 2021-06-18 10:19:28 -04:00
Tonye Jack
dc711ae840 Update README.md 2021-06-17 15:52:39 -04:00
renovate[bot]
274863210e Update alpine Docker tag to v3.14.0 (#99)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-16 10:08:57 -04:00
Tonye Jack
5a4a0bb928 Updated README.md (#98)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-06-09 21:07:30 -04:00
Tonye Jack
7e6d51ee5b Update README.md 2021-06-09 21:02:07 -04:00
Tonye Jack
4da8ecd620 Update README.md 2021-06-09 21:01:10 -04:00
allcontributors[bot]
d967a177e2 docs: add monoxgas as a contributor for code (#97)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-06-09 19:12:15 -04:00
allcontributors[bot]
1937b56341 docs: add jsoref as a contributor for doc (#96)
* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-06-09 19:07:22 -04:00
Tonye Jack
9c41fbbf3a Upgraded to v7 (#94)
* Upgraded from v6 -> v7

* Update README.md

Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-06-09 18:20:27 -04:00
Tonye Jack
15b1769fc5 Clean up debug message (#93)
* Clean up debug message

* Update entrypoint.sh
2021-06-09 18:11:27 -04:00
Nick Landers
f32b39dc36 Make the changes between two commits more explicit (#92)
* Make explicit the changes between two commits

* Add GITHUB_SHA support
2021-06-09 17:52:54 -04:00
Tonye Jack
4960867083 Updated README.md (#91)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-06-09 11:55:30 -04:00
Tonye Jack
969f2cba67 Added .github/workflows/update-readme.yml 2021-06-09 11:15:29 -04:00
Josh Soref
a0682a8245 Punctuation (#90) 2021-06-09 09:31:52 -04:00
Tonye Jack
11eb1ff90c Update README.md 2021-06-05 18:52:05 -04:00
Tonye Jack
ed6c88af0a Update README.md 2021-06-05 17:34:49 -04:00
Tonye Jack
00503bc68b Update README.md 2021-06-05 16:53:58 -04:00
Tonye Jack
8b6518fd1d Update README.md 2021-06-05 16:51:43 -04:00
Tonye Jack
2402e035c5 Update README.md 2021-06-03 07:02:25 -04:00
Tonye Jack
737a5e230f Update README.md (#89) 2021-06-03 06:57:40 -04:00
Tonye Jack
fbbf180f25 Update README.md 2021-05-30 22:57:56 -04:00
Renovate Bot
3db7129dbc Update tj-actions/sync-release-version action to v8.7 2021-05-29 21:48:45 -04:00
Tonye Jack
8c4ef03028 Update README.md 2021-05-29 21:42:01 -04:00
Tonye Jack
c804430756 Updated .github/workflows/auto-merge.yml 2021-05-28 11:41:44 -04:00
Tonye Jack
a4ea86e71f Updated .github/workflows/auto-merge.yml 2021-05-28 11:23:59 -04:00
Tonye Jack
c4acb795c5 Updated .github/workflows/auto-approve.yml 2021-05-27 12:38:25 -04:00
Tonye Jack
67bbc48934 Updated .github/workflows/auto-merge.yml 2021-05-27 12:35:05 -04:00
Tonye Jack
c7b18dbe14 Update README.md 2021-05-26 18:09:18 -04:00
Tonye Jack
b5b22b1a9f Upgraded to v6.3 (#85)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-05-26 18:06:29 -04:00
Tonye Jack
2ecd06deb6 Added usage link to warning message (#84) 2021-05-26 18:01:44 -04:00
Renovate Bot
ba98ceed2d Update pascalgn/automerge-action action to v0.14.2 2021-05-26 21:43:50 +00:00
Tonye Jack
518dba3e05 Update README.md (#82) 2021-05-25 17:39:15 -04:00
Tonye Jack
0389470572 Updated renovate.json 2021-05-25 08:39:01 -04:00
Tonye Jack
8f723a129d Updated .github/workflows/auto-approve.yml 2021-05-25 00:49:42 -04:00
Tonye Jack
5fe8e4d604 Update test.yml (#81) 2021-05-25 00:30:19 -04:00
Tonye Jack
d093818ffe Update README.md 2021-05-24 16:02:02 -04:00
dependabot[bot]
7de38c4c75 Bump peter-evans/create-pull-request from 3.9.2 to 3.10.0
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.9.2 to 3.10.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.9.2...v3.10.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-24 03:53:27 -04:00
Tonye Jack
c2b58adcbd Switch to a docker based action (#78) 2021-05-21 08:39:56 -04:00
Tonye Jack
933ad04651 Update README.md 2021-05-21 08:39:22 -04:00
Tonye Jack
bc50a219c9 Update test.yml 2021-05-21 08:11:59 -04:00
Tonye Jack
fa61b8872b Update README.md 2021-05-21 07:41:56 -04:00
Tonye Jack
14f6eca8a5 Update README.md 2021-05-17 07:10:31 -04:00
Tonye Jack
ca530b2cc6 Exit with error when HEAD sha is empty (#77) 2021-05-17 04:39:42 -04:00
Tonye Jack
d6a0e35f63 Upgraded to v6.2 (#76)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-05-17 04:32:59 -04:00
Tonye Jack
83365da33e Update README.md (#72) 2021-05-17 04:28:00 -04:00
Tonye Jack
4a37137ae0 Update test.yml 2021-05-17 04:26:35 -04:00
Tonye Jack
391126c25c Update test.yml 2021-05-17 04:19:10 -04:00
Tonye Jack
fe86615f16 Update action.yml 2021-05-17 04:14:23 -04:00
Tonye Jack
1c561c0270 Update action.yml 2021-05-17 04:07:57 -04:00
Tonye Jack
51d97e3330 Remove unused line (#75) 2021-05-17 04:05:25 -04:00
Tonye Jack
49e4a65bc2 Fixed bug with trailing separator (#74) 2021-05-17 04:02:50 -04:00
Tonye Jack
3f4565907d Update action.yml (#73) 2021-05-16 16:33:09 -04:00
Tonye Jack
060d09a82f Improve test coverage (#71) 2021-05-16 16:26:22 -04:00
Tonye Jack
550d248e17 Update action.yml (#70) 2021-05-16 16:12:12 -04:00
Tonye Jack
03b96b1ee4 Upgraded to v6.1 (#69)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-05-16 15:49:03 -04:00
Tonye Jack
7c66aa285d Fixed bug with any_changed boolean (#68)
Closes: #67
2021-05-16 15:43:33 -04:00
Renovate Bot
8fac2f4376 Update cirrus-actions/rebase action to v1.5 2021-05-16 02:11:53 +00:00
Tonye Jack
fb196bcc0b Upgraded to v6 (#64)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-05-14 14:01:36 -04:00
Tonye Jack
a35dac8406 Update README.md 2021-05-14 07:38:18 -04:00
dependabot[bot]
338eaa4eac Bump peter-evans/create-pull-request from 3.9.1 to 3.9.2
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.9.1 to 3.9.2.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.9.1...v3.9.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-14 02:45:20 -04:00
Tonye Jack
ac8a08a71b Deprecate all_changed output. (#62) 2021-05-13 16:57:44 -04:00
Tonye Jack
1c8bd519b4 Update README.md 2021-05-13 07:08:08 -04:00
dependabot[bot]
745cc73fef Bump peter-evans/create-pull-request from 3 to 3.9.1 (#61)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-12 11:44:13 -04:00
dependabot[bot]
a0089a8516 Bump actions/checkout from 2 to 2.3.4 (#60)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-12 11:44:03 -04:00
Tonye Jack
277a3bc1fc Updated .github/workflows/auto-merge.yml 2021-05-12 08:36:10 -04:00
Tonye Jack
2640644727 Updated .github/workflows/auto-merge.yml 2021-05-11 19:11:19 -04:00
Tonye Jack
557228b7f1 Updated .github/workflows/auto-merge.yml 2021-05-11 11:28:34 -04:00
Tonye Jack
9f7f868dd0 Updated .github/workflows/auto-merge.yml 2021-05-11 11:20:19 -04:00
Tonye Jack
1f4d9f16e1 Added .github/workflows/auto-merge.yml 2021-05-11 11:07:56 -04:00
Tonye Jack
16dd720838 Update README.md 2021-05-09 06:19:06 -04:00
Tonye Jack
afa4cd137b Upgraded to v5.3 (#57)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-05-08 20:06:42 -04:00
Tonye Jack
47c1f9d2a2 Fixed typo (#58) 2021-05-08 20:06:24 -04:00
Tonye Jack
e95bba87d2 Add warning message when the head sha is empty (#56) 2021-05-08 19:30:57 -04:00
Tonye Jack
c100db569a Update README.md 2021-05-08 12:27:29 -04:00
Tonye Jack
e203fd51b1 Update README.md 2021-05-08 12:25:18 -04:00
renovate[bot]
7c4db0c506 Update tj-actions/sync-release-version action to v8.6 (#55)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-08 07:30:44 -04:00
Tonye Jack
95552d2a29 Update README.md 2021-05-07 17:46:34 -04:00
Tonye Jack
da947a8087 Update README.md 2021-05-07 17:45:37 -04:00
Tonye Jack
abde5f3ab5 Update README.md 2021-05-07 17:37:53 -04:00
Tonye Jack
37a7be0dd3 Update README.md 2021-05-07 08:29:00 -04:00
Tonye Jack
d183729cfc Added visual spacing. 2021-05-06 17:31:39 -04:00
Tonye Jack
9dbc29a0f2 Update README.md 2021-05-06 09:25:34 -04:00
Tonye Jack
6b13d1de24 Upgraded to v5.2 (#53)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2021-05-06 08:56:50 -04:00
Tonye Jack
41a918a6d0 Update README.md 2021-05-06 08:56:35 -04:00
Tonye Jack
8a0216cea1 Update README.md 2021-05-06 08:55:56 -04:00
Tonye Jack
edd01e091f Update README.md 2021-05-06 08:54:34 -04:00
11 changed files with 606 additions and 226 deletions

33
.all-contributorsrc Normal file
View 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
}

View File

@@ -7,17 +7,26 @@ jobs:
auto-approve:
runs-on: ubuntu-latest
steps:
- uses: hmarr/auto-approve-action@v2
if: |
github.actor == 'dependabot[bot]' ||
github.actor == 'dependabot' ||
github.actor == 'dependabot-preview[bot]' ||
github.actor == 'dependabot-preview' ||
github.actor == 'renovate[bot]' ||
github.actor == 'renovate' ||
github.actor == 'pyup-bot' ||
github.actor == 'github-actions[bot]' ||
github.actor == 'pre-commit-ci' ||
github.actor == 'pre-commit-ci[bot]'
with:
github-token: ${{ secrets.PAT_TOKEN }}
- uses: hmarr/auto-approve-action@v2
if: |
(
github.event.pull_request.user.login == 'dependabot[bot]' ||
github.event.pull_request.user.login == 'dependabot' ||
github.event.pull_request.user.login == 'dependabot-preview[bot]' ||
github.event.pull_request.user.login == 'dependabot-preview' ||
github.event.pull_request.user.login == 'renovate[bot]' ||
github.event.pull_request.user.login == 'renovate' ||
github.event.pull_request.user.login == 'github-actions[bot]'
)
&&
(
github.actor == 'dependabot[bot]' ||
github.actor == 'dependabot' ||
github.actor == 'dependabot-preview[bot]' ||
github.actor == 'dependabot-preview' ||
github.actor == 'renovate[bot]' ||
github.actor == 'renovate' ||
github.actor == 'github-actions[bot]'
)
with:
github-token: ${{ secrets.PAT_TOKEN }}

27
.github/workflows/auto-merge.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
name: automerge
on:
check_suite:
types:
- rerequested
- completed
jobs:
automerge:
runs-on: ubuntu-latest
if: |
github.actor == 'dependabot[bot]' ||
github.actor == 'dependabot' ||
github.actor == 'dependabot-preview[bot]' ||
github.actor == 'dependabot-preview' ||
github.actor == 'renovate[bot]' ||
github.actor == 'renovate'
steps:
- name: automerge
uses: pascalgn/automerge-action@v0.14.2
env:
GITHUB_TOKEN: ${{ secrets.PAT_TOKEN || github.token }}
MERGE_METHOD: "rebase"
UPDATE_METHOD: "rebase"
MERGE_RETRIES: "6"
MERGE_RETRY_SLEEP: "100000"
MERGE_LABELS: ""

View File

@@ -8,11 +8,11 @@ jobs:
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2.3.4
with:
token: ${{ secrets.PAT_TOKEN }}
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.4
uses: cirrus-actions/rebase@1.5
env:
GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }}

View File

@@ -8,11 +8,11 @@ jobs:
update-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Sync release version.
uses: tj-actions/sync-release-version@v8.5
uses: tj-actions/sync-release-version@v8.7
id: sync-release-version
with:
pattern: '${{ github.repository }}@'
@@ -23,7 +23,7 @@ jobs:
with:
output: 'HISTORY.md'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
uses: peter-evans/create-pull-request@v3.10.0
with:
base: "main"
title: "Upgraded to ${{ steps.sync-release-version.outputs.new_version }}"

View File

@@ -4,14 +4,53 @@ on:
push:
branches:
- main
- '**'
pull_request:
branches:
- main
jobs:
test:
shellcheck:
name: Run shellcheck
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
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, windows-latest, macos-latest]
steps:
- name: Checkout to branch
uses: actions/checkout@v2
- name: Run changed-files with defaults
id: changed-files
continue-on-error: true
uses: ./
- name: Show output
run: |
echo "${{ toJSON(steps.changed-files.outputs) }}"
shell:
bash
test:
name: Test changed-files
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, windows-latest, macos-latest]
steps:
- name: Checkout
uses: actions/checkout@v2
@@ -23,15 +62,21 @@ jobs:
- name: Show output
run: |
echo "${{ toJSON(steps.changed-files.outputs) }}"
shell:
bash
- name: List all modified files
run: |
for file in "${{ steps.changed-files.outputs.modified_files }}"; do
echo $file
done
shell:
bash
- name: Run step when README.md changes
if: contains(steps.changed-files.outputs.modified_files, 'README.md')
run: |
echo "Your README.md has been modified ${{ steps.changed-files.outputs.modified_files }}."
shell:
bash
- name: Run changed-files with comma separator
id: changed-files-comma
uses: ./
@@ -40,6 +85,8 @@ jobs:
- name: Show output
run: |
echo "${{ toJSON(steps.changed-files-comma.outputs) }}"
shell:
bash
- name: Run changed-files with specific files
id: changed-files-specific
uses: ./
@@ -47,9 +94,20 @@ jobs:
files: |
.github/workflows/test.yml
action.yml
- name: Verify any_changed files
if: "!contains(steps.changed-files-specific.outputs.all_modified_files, 'action.yml') && !contains(steps.changed-files-specific.outputs.all_modified_files, '.github/workflows/test.yml')"
run: |
if [[ "${{ steps.changed-files-specific.outputs.any_changed }}" != "false" ]]; then
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_changed }})"
exit 1
fi
shell:
bash
- name: Show output
run: |
echo "${{ toJSON(steps.changed-files-specific.outputs) }}"
shell:
bash
- name: Run changed-files with specific files comma separator
id: changed-files-specific-comma
uses: ./
@@ -58,6 +116,17 @@ jobs:
.github/workflows/test.yml
action.yml
separator: ","
- name: Verify any_changed files comma separator
if: "!contains(steps.changed-files-specific-comma.outputs.all_modified_files, 'action.yml') && !contains(steps.changed-files-specific-comma.outputs.all_modified_files, '.github/workflows/test.yml')"
run: |
if [[ "${{ steps.changed-files-specific.outputs.any_changed }}" != "false" ]]; then
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_changed }})"
exit 1
fi
shell:
bash
- name: Show output
run: |
echo "${{ toJSON(steps.changed-files-specific-comma.outputs) }}"
shell:
bash

39
.github/workflows/update-readme.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Format README.md
on:
push:
branches:
- main
jobs:
sync-assets:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Run test
uses: tj-actions/remark@v1.5
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v7
id: verify_changed_files
with:
files: |
README.md
- name: README.md changed
if: steps.verify_changed_files.outputs.files_changed == 'true'
run: |
echo "README.md has uncommited changes"
exit 1
- name: Create Pull Request
if: failure()
uses: peter-evans/create-pull-request@v3
with:
base: "main"
title: "Updated README.md"
branch: "chore/update-readme"
commit-message: "Updated README.md"
body: "Updated README.md"
token: ${{ secrets.PAT_TOKEN }}

View File

@@ -1,5 +1,147 @@
# Changelog
## [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)
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
**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))
- 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))
## [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.1...v6.2)
**Fixed bugs:**
- Fixed bug with trailing separator [\#74](https://github.com/tj-actions/changed-files/pull/74) ([jackton1](https://github.com/jackton1))
**Closed issues:**
- Should the Major Issue Version Point to the Latest Minor? [\#79](https://github.com/tj-actions/changed-files/issues/79)
**Merged pull requests:**
- Update test.yml [\#81](https://github.com/tj-actions/changed-files/pull/81) ([jackton1](https://github.com/jackton1))
- Bump peter-evans/create-pull-request from 3.9.2 to 3.10.0 [\#80](https://github.com/tj-actions/changed-files/pull/80) ([dependabot[bot]](https://github.com/apps/dependabot))
- Switch to a docker based action [\#78](https://github.com/tj-actions/changed-files/pull/78) ([jackton1](https://github.com/jackton1))
- Exit with error when HEAD sha is empty [\#77](https://github.com/tj-actions/changed-files/pull/77) ([jackton1](https://github.com/jackton1))
- Upgraded to v6.2 [\#76](https://github.com/tj-actions/changed-files/pull/76) ([jackton1](https://github.com/jackton1))
- Remove unused line [\#75](https://github.com/tj-actions/changed-files/pull/75) ([jackton1](https://github.com/jackton1))
- Update action.yml [\#73](https://github.com/tj-actions/changed-files/pull/73) ([jackton1](https://github.com/jackton1))
- Update README.md [\#72](https://github.com/tj-actions/changed-files/pull/72) ([jackton1](https://github.com/jackton1))
- Improve test coverage [\#71](https://github.com/tj-actions/changed-files/pull/71) ([jackton1](https://github.com/jackton1))
- Update action.yml [\#70](https://github.com/tj-actions/changed-files/pull/70) ([jackton1](https://github.com/jackton1))
- Upgraded to v6.1 [\#69](https://github.com/tj-actions/changed-files/pull/69) ([jackton1](https://github.com/jackton1))
## [v6.1](https://github.com/tj-actions/changed-files/tree/v6.1) (2021-05-16)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v5.3...v6.1)
**Fixed bugs:**
- \[BUG\] any\_changed reports true without matching changed files [\#67](https://github.com/tj-actions/changed-files/issues/67)
**Closed issues:**
- Improve test coverage [\#54](https://github.com/tj-actions/changed-files/issues/54)
**Merged pull requests:**
- Fixed bug with any\_changed boolean [\#68](https://github.com/tj-actions/changed-files/pull/68) ([jackton1](https://github.com/jackton1))
- Update cirrus-actions/rebase action to v1.5 [\#66](https://github.com/tj-actions/changed-files/pull/66) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v6 [\#64](https://github.com/tj-actions/changed-files/pull/64) ([jackton1](https://github.com/jackton1))
- Bump peter-evans/create-pull-request from 3.9.1 to 3.9.2 [\#63](https://github.com/tj-actions/changed-files/pull/63) ([dependabot[bot]](https://github.com/apps/dependabot))
- Deprecate all\_changed output. [\#62](https://github.com/tj-actions/changed-files/pull/62) ([jackton1](https://github.com/jackton1))
- Bump peter-evans/create-pull-request from 3 to 3.9.1 [\#61](https://github.com/tj-actions/changed-files/pull/61) ([dependabot[bot]](https://github.com/apps/dependabot))
- Bump actions/checkout from 2 to 2.3.4 [\#60](https://github.com/tj-actions/changed-files/pull/60) ([dependabot[bot]](https://github.com/apps/dependabot))
- Fixed typo [\#58](https://github.com/tj-actions/changed-files/pull/58) ([jackton1](https://github.com/jackton1))
- Upgraded to v5.3 [\#57](https://github.com/tj-actions/changed-files/pull/57) ([jackton1](https://github.com/jackton1))
## [v5.3](https://github.com/tj-actions/changed-files/tree/v5.3) (2021-05-08)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v5.2...v5.3)
**Merged pull requests:**
- Add warning message when the head sha is empty [\#56](https://github.com/tj-actions/changed-files/pull/56) ([jackton1](https://github.com/jackton1))
- Update tj-actions/sync-release-version action to v8.6 [\#55](https://github.com/tj-actions/changed-files/pull/55) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v5.2 [\#53](https://github.com/tj-actions/changed-files/pull/53) ([jackton1](https://github.com/jackton1))
## [v5.2](https://github.com/tj-actions/changed-files/tree/v5.2) (2021-05-06)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v5.1...v5.2)
**Implemented enhancements:**
- \[shellcheck\]: Resolve SC2001 [\#42](https://github.com/tj-actions/changed-files/issues/42)
- \[shellcheck\]: Resolve SC2128 [\#41](https://github.com/tj-actions/changed-files/issues/41)
**Merged pull requests:**
- Update tj-actions/github-changelog-generator action to v1.8 [\#52](https://github.com/tj-actions/changed-files/pull/52) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v5.1 [\#51](https://github.com/tj-actions/changed-files/pull/51) ([jackton1](https://github.com/jackton1))
## [v5.1](https://github.com/tj-actions/changed-files/tree/v5.1) (2021-05-01)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v5...v5.1)
@@ -8,6 +150,8 @@
- Strip leading whitespaces [\#50](https://github.com/tj-actions/changed-files/pull/50) ([jackton1](https://github.com/jackton1))
- Upgraded to v5 [\#49](https://github.com/tj-actions/changed-files/pull/49) ([jackton1](https://github.com/jackton1))
- Update README.md [\#48](https://github.com/tj-actions/changed-files/pull/48) ([jackton1](https://github.com/jackton1))
- Upgraded to v5.3 [\#47](https://github.com/tj-actions/changed-files/pull/47) ([jackton1](https://github.com/jackton1))
## [v5](https://github.com/tj-actions/changed-files/tree/v5) (2021-05-01)
@@ -15,8 +159,6 @@
**Merged pull requests:**
- Update README.md [\#48](https://github.com/tj-actions/changed-files/pull/48) ([jackton1](https://github.com/jackton1))
- Upgraded to v5.3 [\#47](https://github.com/tj-actions/changed-files/pull/47) ([jackton1](https://github.com/jackton1))
- Fixed bug with all\_changed when array is empty [\#46](https://github.com/tj-actions/changed-files/pull/46) ([jackton1](https://github.com/jackton1))
- Upgraded to v5.2 [\#45](https://github.com/tj-actions/changed-files/pull/45) ([jackton1](https://github.com/jackton1))
- Upgraded to v5.1 [\#44](https://github.com/tj-actions/changed-files/pull/44) ([jackton1](https://github.com/jackton1))
@@ -47,7 +189,6 @@
**Closed issues:**
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
- Add support for watching a subset of files. [\#20](https://github.com/tj-actions/changed-files/issues/20)
**Merged pull requests:**

157
README.md
View File

@@ -1,27 +1,37 @@
[![CI](https://github.com/tj-actions/changed-files/actions/workflows/test.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/test.yml) [![Update release version.](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml) <a href="https://github.com/search?q=tj-actions+changed-files+path%3A.github%2Fworkflows+language%3AYAML&type=code" target="_blank" title="Public workflows that use this action."><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fapi-git-master.endbug.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3Dtj-actions%2Fchanged-files%26badge%3Dtrue" alt="Public workflows that use this action."></a>
[![CI](https://github.com/tj-actions/changed-files/actions/workflows/test.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/test.yml) [![Update release version.](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml) [![Public workflows that use this action.](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi-endbug.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3Dtj-actions%2Fchanged-files%26badge%3Dtrue)](https://github.com/search?o=desc\&q=tj-actions+changed-files+language%3AYAML\&s=\&type=Code)
changed-files
-------------
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
Get all modified files relative to the default branch (`pull_request*` events) or last commit (`push` event).
[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
## changed-files
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
- List all files that have changed
- Between the current pull request branch and the default branch
- Between the last commit and the current pushed change.
- Restrict change detection to a subset of files.
- Report on files that have all changed.
- Report on files that have at least one file change.
- Regex pattern matching on a subset of files.
* Boolean output indicating that certain files have been modified.
* List all files that have changed.
* Between the current pull request branch and the default branch.
* Between the last commit and the current pushed change.
* Restrict change detection to a subset of files.
* Report on files that have at least one change.
* [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
> NOTE: :warning:
> * 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 to work 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.
```yaml
name: CI
@@ -36,7 +46,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
runs-on: ubuntu-latest # windows-latest | macos-latest
name: Test changed-files
steps:
- uses: actions/checkout@v2
@@ -45,7 +55,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v5.1
uses: tj-actions/changed-files@v8.1
- name: List all modified files
run: |
@@ -54,44 +64,40 @@ jobs:
done
```
## Outputs
| Acronym | Meaning |
|:---------:|:------------:|
| A | Added |
| C | Copied |
| M | Modified. |
| M | Modified |
| D | Deleted |
| R | Renamed |
| T | Type changed |
| U | Unmerged |
| X | Unknown |
| Output | type | example | description |
|:-------------------:|:------------:|:------------------------------:|:----------------------------------------:|
| all_changed | `string` | `true` OR `false` | Returns `true` only when the filenames provided using `files` input have all changed |
| any_changed | `string` | `true` OR `false` | Returns `true` when any of the filenames provided using `files` input have changed |
| all_modified_files | `string` | `'new.txt other.png ...'` | Select all modified files <br /> *i.e a combination of all added, <br />copied and modified files (ACM).* |
| all_changed_files | `string` | `'new.txt other.png ...'` | Select all paths (*) <br /> *i.e a combination of all options below.* |
| added_files | `string` | `'new.txt other.png ...'` | Select only files that are Added (A) |
| copied_files | `string` | `'new.txt other.png ...'` | Select only files that are Copied (C) |
| deleted_files | `string` | `'new.txt other.png ...'` | Select only files that are Deleted (D) |
| modified_files | `string` | `'new.txt other.png ...'` | Select only files that are Modified (M) |
| renamed_files | `string` | `'new.txt other.png ...'` | Select only files that are Renamed (R) |
| changed_files | `string` | `'new.txt other.png ...'` | Select only files that have their file type changed (T) |
| unmerged_files | `string` | `'new.txt other.png ...'` | Select only files that are Unmerged (U) |
| unknown_files | `string` | `'new.txt other.png ...'` | Select only files that are Unknown (X) |
| Output | type | example | description |
|:--------------------:|:------------:|:----------------------------------:|:----------------------------------------:|
| any_changed | `string` | `true` OR `false` | Returns `true` when any of the filenames provided using the `files` input has changed |
| all_modified_files | `string` | `'new.txt path/to/file.png ...'` | Select all modified files <br /> i.e. *a combination of all added, <br />copied and modified files (ACM).* |
| all_changed_files | `string` | `'new.txt path/to/file.png ...'` | Select all paths (\*) <br /> i.e. *a combination of all options below.* |
| 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) |
## Inputs
| Input | type | required | default | description |
|:-------------:|:-----------:|:-------------:|:----------------------------:|:-------------:|
| separator | `string` | `true` | `' '` | Output string separator |
| files | `string OR string[]` | `false` | | Restricted list of specific files to watch for changes |
|:-------------:|:-----------:|:-------------:|:-----------------------------:|:-------------:|
| 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 |
| files | `string` OR `string[]` | `false` | | Check for changes <br> using only this list of files <br> (Defaults to the entire repo) |
## Example
@@ -99,13 +105,14 @@ jobs:
...
steps:
- uses: actions/checkout@v2
- name: Get changed files using defaults
id: changed-files
uses: tj-actions/changed-files@v5.1
uses: tj-actions/changed-files@v8.1
- name: Get changed files using a comma separator
id: changed-files-comma
uses: tj-actions/changed-files@v5.1
uses: tj-actions/changed-files@v8.1
with:
separator: ","
@@ -127,26 +134,21 @@ jobs:
- name: Get specific changed files
id: changed-files-specific
uses: tj-actions/changed-files@v5.1
uses: tj-actions/changed-files@v8.1
with:
files: |
my-file.txt
test.txt
new.txt
test_directory
.(py|jpeg)$
.(png|jpeg)$
.(sql)$
^(mynewfile|custom)
- name: Run step if all files listed above have changed
if: steps.changed-files-specific.outputs.all_changed == 'true'
run: |
echo "Both my-file.txt and test.txt have changed."
- name: Run step if any of the listed files above change
if: steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "Either my-file.txt or test.txt have changed."
echo "One or more files listed above has changed."
```
@@ -157,11 +159,11 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v5.1
uses: tj-actions/changed-files@v8.1
- name: Pre-commit
uses: pre-commit/action@v2.0.0
@@ -170,32 +172,59 @@ jobs:
token: ${{ secrets.github_token }}
```
## Example
![Screen Shot 2021-04-02 at 9 06 04 AM](https://user-images.githubusercontent.com/17484350/113418057-b9fff600-9392-11eb-84e5-f5a91bfa8b11.png)
![Screen Shot 2021-05-13 at 4 55 30 PM](https://user-images.githubusercontent.com/17484350/118186772-1cc1c400-b40c-11eb-8fe8-b651e674ce96.png)
![Screen Shot 2021-05-21 at 8 38 31 AM](https://user-images.githubusercontent.com/17484350/119138539-fc979380-ba0f-11eb-802c-6e403faac300.png)
![Screen Shot 2021-06-03 at 7 01 57 AM](https://user-images.githubusercontent.com/17484350/120634754-9f510880-c439-11eb-9e7b-5184bd8f7939.png)
* Free software: [MIT license](LICENSE)
* Free software: [MIT license](LICENSE)
If you feel generous and want to show some extra appreciation:
Credits
-------
[![Buy me a coffee][buymeacoffee-shield]][buymeacoffee]
[buymeacoffee]: https://www.buymeacoffee.com/jackton1
[buymeacoffee-shield]: https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png
## Credits
This package was created with [Cookiecutter](https://github.com/cookiecutter/cookiecutter).
Report Bugs
-----------
## Report Bugs
Report bugs at https://github.com/tj-actions/changed-files/issues.
If you are reporting a bug, please include:
* Your operating system name and version.
* Any details about your workflow that might be helpful in troubleshooting.
* Detailed steps to reproduce the bug.
* Your operating system name and version.
* Any details about your workflow that might be helpful in troubleshooting.
* 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!

View File

@@ -11,173 +11,61 @@ inputs:
required: true
default: " "
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
default: ""
outputs:
added_files:
description: List of added files.
value: ${{ steps.changed_files.outputs.added_files }}
value: ${{ steps.changed-files.outputs.added_files }}
copied_files:
description: List of copied files.
value: ${{ steps.changed_files.outputs.copied_files }}
value: ${{ steps.changed-files.outputs.copied_files }}
deleted_files:
description: List of deleted files.
value: ${{ steps.changed_files.outputs.deleted_files }}
value: ${{ steps.changed-files.outputs.deleted_files }}
modified_files:
description: List of modified files.
value: ${{ steps.changed_files.outputs.modified_files }}
value: ${{ steps.changed-files.outputs.modified_files }}
renamed_files:
description: List of renamed files.
value: ${{ steps.changed_files.outputs.renamed_files }}
changed_files:
description: List of changed files.
value: ${{ steps.changed_files.outputs.changed_files }}
value: ${{ steps.changed-files.outputs.renamed_files }}
type_changed_files:
description: List of files that had type changes.
value: ${{ steps.changed-files.outputs.type_changed_files }}
unmerged_files:
description: List of unmerged files.
value: ${{ steps.changed_files.outputs.unmerged_files }}
value: ${{ steps.changed-files.outputs.unmerged_files }}
unknown_files:
description: List of unknown files.
value: ${{ steps.changed_files.outputs.unknown_files }}
value: ${{ steps.changed-files.outputs.unknown_files }}
all_changed_files:
description: List of all changed files.
value: ${{ steps.changed_files.outputs.all_changed_files }}
value: ${{ steps.changed-files.outputs.all_changed_files }}
all_modified_files:
description: List of all copied modified and added files
value: ${{ steps.changed_files.outputs.all_modified_files }}
all_changed:
description: Return true only when all files provided using the files input have all changed.
value: ${{ steps.changed_files.outputs.all_changed }}
description: List of all copied modified and added files.
value: ${{ steps.changed-files.outputs.all_modified_files }}
any_changed:
description: Return true only when any files provided using the files input have changed.
value: ${{ steps.changed_files.outputs.any_changed }}
value: ${{ steps.changed-files.outputs.any_changed }}
runs:
using: 'composite'
steps:
- id: changed_files
run: |
set -e
git remote set-url origin "https://${{ inputs.token }}@github.com/${{ github.repository }}"
export INPUT_FILES="${{ inputs.files }}"
export INPUT_SEPARATOR="${{ inputs.separator }}"
echo "Getting head sha..."
if [[ -z $GITHUB_BASE_REF ]]; then
HEAD_SHA=$(git rev-parse HEAD^1 || true)
else
TARGET_BRANCH=${GITHUB_BASE_REF}
git fetch --depth=1 origin "${TARGET_BRANCH}":"${TARGET_BRANCH}"
HEAD_SHA=$(git rev-parse "${TARGET_BRANCH}" || true)
fi
echo "Using head sha: $HEAD_SHA..."
if [[ -z "$INPUT_FILES" ]]; then
echo "Getting diff..."
ADDED=$(git diff --diff-filter=A --name-only "$HEAD_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
COPIED=$(git diff --diff-filter=C --name-only "$HEAD_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
DELETED=$(git diff --diff-filter=D --name-only "$HEAD_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
MODIFIED=$(git diff --diff-filter=M --name-only "$HEAD_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
RENAMED=$(git diff --diff-filter=R --name-only "$HEAD_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
CHANGED=$(git diff --diff-filter=T --name-only "$HEAD_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
UNMERGED=$(git diff --diff-filter=U --name-only "$HEAD_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
UNKNOWN=$(git diff --diff-filter=X --name-only "$HEAD_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
ALL_CHANGED=$(git diff --diff-filter="*ACDMRTUX" --name-only "$HEAD_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
ALL_MODIFIED_FILES=$(git diff --diff-filter="ACM" --name-only "$HEAD_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
else
ADDED_ARRAY=()
COPIED_ARRAY=()
DELETED_ARRAY=()
MODIFIED_ARRAY=()
RENAMED_ARRAY=()
CHANGED_ARRAY=()
UNMERGED_ARRAY=()
UNKNOWN_ARRAY=()
ALL_CHANGED_ARRAY=()
ALL_MODIFIED_FILES_ARRAY=()
for path in ${INPUT_FILES}
do
echo "Checking for file changes: \"${path}\"..."
IFS=" "
ADDED_ARRAY+=("$(git diff --diff-filter=A --name-only "$HEAD_SHA" | grep -E "(${path})" | xargs printf "%s$INPUT_SEPARATOR" || true)")
COPIED_ARRAY+=("$(git diff --diff-filter=C --name-only "$HEAD_SHA" | grep -E "(${path})" | xargs printf "%s$INPUT_SEPARATOR" || true)")
DELETED_ARRAY+=("$(git diff --diff-filter=D --name-only "$HEAD_SHA" | grep -E "(${path})" | xargs printf "%s$INPUT_SEPARATOR" || true)")
MODIFIED_ARRAY+=("$(git diff --diff-filter=M --name-only "$HEAD_SHA" | grep -E "(${path})" | xargs printf "%s$INPUT_SEPARATOR" || true)")
RENAMED_ARRAY+=("$(git diff --diff-filter=R --name-only "$HEAD_SHA" | grep -E "(${path})" | xargs printf "%s$INPUT_SEPARATOR" || true)")
CHANGED_ARRAY+=("$(git diff --diff-filter=T --name-only "$HEAD_SHA" | grep -E "(${path})" | xargs printf "%s$INPUT_SEPARATOR" || true)")
UNMERGED_ARRAY+=("$(git diff --diff-filter=U --name-only "$HEAD_SHA" | grep -E "(${path})" | xargs printf "%s$INPUT_SEPARATOR" || true)")
UNKNOWN_ARRAY+=("$(git diff --diff-filter=X --name-only "$HEAD_SHA" | grep -E "(${path})" | xargs printf "%s$INPUT_SEPARATOR" || true)")
ALL_CHANGED_ARRAY+=("$(git diff --diff-filter="*ACDMRTUX" --name-only "$HEAD_SHA" | grep -E "(${path})" | xargs printf "%s$INPUT_SEPARATOR" || true)")
ALL_MODIFIED_FILES_ARRAY+=("$(git diff --diff-filter="ACM" --name-only "$HEAD_SHA" | grep -E "(${path})" | xargs printf "%s$INPUT_SEPARATOR" || true)")
done
ADDED=$(echo "${ADDED_ARRAY[@]}" | sed -E "s/($INPUT_SEPARATOR)$//" | xargs)
COPIED=$(echo "${COPIED_ARRAY[@]}" | sed -E "s/($INPUT_SEPARATOR)$//" | xargs)
DELETED=$(echo "${DELETED_ARRAY[@]}" | sed -E "s/($INPUT_SEPARATOR)$//" | xargs)
MODIFIED=$(echo "${MODIFIED_ARRAY[@]}" | sed -E "s/($INPUT_SEPARATOR)$//" | xargs)
RENAMED=$(echo "${RENAMED_ARRAY[@]}" | sed -E "s/($INPUT_SEPARATOR)$//" | xargs)
CHANGED=$(echo "${CHANGED_ARRAY[@]}" | sed -E "s/($INPUT_SEPARATOR)$//" | xargs)
UNMERGED=$(echo "${UNMERGED_ARRAY[@]}" | sed -E "s/($INPUT_SEPARATOR)$//" | xargs)
UNKNOWN=$(echo "${UNKNOWN_ARRAY[@]}" | sed -E "s/($INPUT_SEPARATOR)$//" | xargs)
ALL_CHANGED=$(echo "${ALL_CHANGED_ARRAY[@]}" | sed -E "s/($INPUT_SEPARATOR)$//" | xargs)
ALL_MODIFIED_FILES=$(echo "${ALL_MODIFIED_FILES_ARRAY[@]}" | sed -E "s/($INPUT_SEPARATOR)$//" | xargs)
fi
echo "Added files: $ADDED"
echo "Copied files: $COPIED"
echo "Deleted files: $DELETED"
echo "Modified files: $MODIFIED"
echo "Renamed files: $RENAMED"
echo "Changed files: $CHANGED"
echo "Unmerged files: $UNMERGED"
echo "Unknown files: $UNKNOWN"
echo "All changed files: $ALL_CHANGED"
echo "All modified files: $ALL_MODIFIED_FILES"
if [[ -n "$INPUT_FILES" ]]; then
# shellcheck disable=SC2001
OUTPUT_ALL_MODIFIED_FILES=$(echo "$ALL_MODIFIED_FILES" | sed "s/$INPUT_SEPARATOR/ /g")
ALL_INPUT_FILES=$(echo "$INPUT_FILES" | tr "\n" " " | xargs)
echo "Input files: ${ALL_INPUT_FILES[@]}"
echo "Output all modified files: ${OUTPUT_ALL_MODIFIED_FILES[@]}"
SORTED_INPUT_FILES=()
SORTED_OUTPUT_ALL_MODIFIED_FILES=()
IFS=" " read -r -a SORTED_INPUT_FILES <<< "$(sort <<<"${ALL_INPUT_FILES[*]}")"
IFS=" " read -r -a SORTED_OUTPUT_ALL_MODIFIED_FILES <<< "$(sort <<<"${OUTPUT_ALL_MODIFIED_FILES[*]}")"
if [[ ${#SORTED_OUTPUT_ALL_MODIFIED_FILES[@]} -gt 0 ]]; then
echo "::set-output name=any_changed::true"
echo "Sorted input files: ${SORTED_INPUT_FILES[@]}"
echo "Sorted output all modified files: ${SORTED_OUTPUT_ALL_MODIFIED_FILES[@]}"
if [[ "${SORTED_INPUT_FILES[*]}" == "${SORTED_OUTPUT_ALL_MODIFIED_FILES[*]}" ]]; then
echo "::set-output name=all_changed::true"
else
echo "::set-output name=all_changed::false"
fi
else
echo "::set-output name=any_changed::false"
fi
fi
echo "::set-output name=added_files::$ADDED"
echo "::set-output name=copied_files::$COPIED"
echo "::set-output name=deleted_files::$DELETED"
echo "::set-output name=modified_files::$MODIFIED"
echo "::set-output name=renamed_files::$RENAMED"
echo "::set-output name=changed_files::$CHANGED"
echo "::set-output name=unmerged_files::$UNMERGED"
echo "::set-output name=unknown_files::$UNKNOWN"
echo "::set-output name=all_changed_files::$ALL_CHANGED"
echo "::set-output name=all_modified_files::$ALL_MODIFIED_FILES"
unset INPUT_FILES
unset INPUT_SEPARATOR
- 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:
icon: file-text

145
entrypoint.sh Executable file
View File

@@ -0,0 +1,145 @@
#!/usr/bin/env bash
set -e
git remote set-url origin "https://${INPUT_TOKEN}@github.com/${GITHUB_REPOSITORY}"
echo "Getting HEAD info..."
if [[ -z $GITHUB_SHA ]]; then
CURR_SHA=$(git rev-parse HEAD 2>&1) && exit_status=$? || exit_status=$?
else
CURR_SHA=$GITHUB_SHA
fi
if [[ $exit_status -ne 0 ]]; then
echo "::warning::Unable to determine the current head sha"
exit 1
fi
if [[ -z $GITHUB_BASE_REF ]]; then
PREV_SHA=$(git rev-parse HEAD^1 2>&1) && exit_status=$? || exit_status=$?
if [[ $exit_status -ne 0 ]]; then
echo "::warning::Unable to determine the previous commit sha"
echo "::warning::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage"
exit 1
fi
else
TARGET_BRANCH=${GITHUB_BASE_REF}
git fetch --depth=1 origin "${TARGET_BRANCH}":"${TARGET_BRANCH}"
PREV_SHA=$(git rev-parse "${TARGET_BRANCH}" 2>&1) && exit_status=$? || exit_status=$?
if [[ $exit_status -ne 0 ]]; then
echo "::warning::Unable to determine the base ref sha for ${TARGET_BRANCH}"
exit 1
fi
fi
echo "Retrieving changes between $PREV_SHA ($TARGET_BRANCH) ← $CURR_SHA ($GITHUB_HEAD_REF)"
if [[ -z "$INPUT_FILES" ]]; then
echo "Getting diff..."
ADDED=$(git diff --diff-filter=A --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
COPIED=$(git diff --diff-filter=C --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)$//")
RENAMED=$(git diff --diff-filter=R --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)$//")
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_MODIFIED_FILES=$(git diff --diff-filter="ACM" --name-only "$PREV_SHA" "$CURR_SHA" | tr "\n" "$INPUT_SEPARATOR" | sed -E "s/($INPUT_SEPARATOR)$//")
else
ADDED_ARRAY=()
COPIED_ARRAY=()
DELETED_ARRAY=()
MODIFIED_ARRAY=()
RENAMED_ARRAY=()
TYPE_CHANGED_ARRAY=()
UNMERGED_ARRAY=()
UNKNOWN_ARRAY=()
ALL_CHANGED_ARRAY=()
ALL_MODIFIED_FILES_ARRAY=()
for path in ${INPUT_FILES}
do
echo "Checking for file changes: \"${path}\"..."
IFS=" "
# shellcheck disable=SC2207
ADDED_ARRAY+=($(git diff --diff-filter=A --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
# shellcheck disable=SC2207
COPIED_ARRAY+=($(git diff --diff-filter=C --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
# shellcheck disable=SC2207
DELETED_ARRAY+=($(git diff --diff-filter=D --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
# shellcheck disable=SC2207
MODIFIED_ARRAY+=($(git diff --diff-filter=M --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
# shellcheck disable=SC2207
RENAMED_ARRAY+=($(git diff --diff-filter=R --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
# shellcheck disable=SC2207
TYPE_CHANGED_ARRAY+=($(git diff --diff-filter=T --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
# shellcheck disable=SC2207
UNMERGED_ARRAY+=($(git diff --diff-filter=U --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
# shellcheck disable=SC2207
UNKNOWN_ARRAY+=($(git diff --diff-filter=X --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
# shellcheck disable=SC2207
ALL_CHANGED_ARRAY+=($(git diff --diff-filter="*ACDMRTUX" --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
# shellcheck disable=SC2207
ALL_MODIFIED_FILES_ARRAY+=($(git diff --diff-filter="ACM" --name-only "$PREV_SHA" "$CURR_SHA" | grep -E "(${path})" | xargs || true))
done
# shellcheck disable=SC2001
ADDED=$(echo "${ADDED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
# shellcheck disable=SC2001
COPIED=$(echo "${COPIED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
# shellcheck disable=SC2001
DELETED=$(echo "${DELETED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
# shellcheck disable=SC2001
MODIFIED=$(echo "${MODIFIED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
# shellcheck disable=SC2001
RENAMED=$(echo "${RENAMED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
# shellcheck disable=SC2001
TYPE_CHANGED=$(echo "${TYPE_CHANGED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
# shellcheck disable=SC2001
UNMERGED=$(echo "${UNMERGED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
# shellcheck disable=SC2001
UNKNOWN=$(echo "${UNKNOWN_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
# shellcheck disable=SC2001
ALL_CHANGED=$(echo "${ALL_CHANGED_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
# shellcheck disable=SC2001
ALL_MODIFIED_FILES=$(echo "${ALL_MODIFIED_FILES_ARRAY[*]}" | sed 's/ */'"$INPUT_SEPARATOR"'/g')
fi
echo "Added files: $ADDED"
echo "Copied files: $COPIED"
echo "Deleted files: $DELETED"
echo "Modified files: $MODIFIED"
echo "Renamed files: $RENAMED"
echo "Type Changed files: $TYPE_CHANGED"
echo "Unmerged files: $UNMERGED"
echo "Unknown files: $UNKNOWN"
echo "All changed files: $ALL_CHANGED"
echo "All modified files: $ALL_MODIFIED_FILES"
if [[ -n "$INPUT_FILES" ]]; then
# shellcheck disable=SC2001
ALL_INPUT_FILES=$(echo "$INPUT_FILES" | tr "\n" " " | xargs)
echo "Input files: ${ALL_INPUT_FILES[*]}"
echo "Matching modified files: ${ALL_MODIFIED_FILES[*]}"
if [[ -n "$ALL_MODIFIED_FILES" ]]; then
echo "::set-output name=any_changed::true"
else
echo "::set-output name=any_changed::false"
fi
fi
echo "::set-output name=added_files::$ADDED"
echo "::set-output name=copied_files::$COPIED"
echo "::set-output name=deleted_files::$DELETED"
echo "::set-output name=modified_files::$MODIFIED"
echo "::set-output name=renamed_files::$RENAMED"
echo "::set-output name=type_changed_files::$TYPE_CHANGED"
echo "::set-output name=unmerged_files::$UNMERGED"
echo "::set-output name=unknown_files::$UNKNOWN"
echo "::set-output name=all_changed_files::$ALL_CHANGED"
echo "::set-output name=all_modified_files::$ALL_MODIFIED_FILES"