Compare commits

...

8 Commits

Author SHA1 Message Date
Tonye Jack
cf4fe8759a fix: matching all nested files with a directory name (#1197)
Co-authored-by: GitHub Action <action@github.com>
2023-05-29 16:12:36 +00:00
tj-actions[bot]
58c7ce2add Updated README.md (#1196)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-05-29 09:41:26 -06:00
Tonye Jack
61316fda76 Update README.md 2023-05-29 09:21:30 -06:00
Tonye Jack
5d38ef5289 Update README.md (#1195) 2023-05-29 09:20:14 -06:00
Tonye Jack
51330c5719 Update README.md 2023-05-29 09:19:05 -06:00
Tonye Jack
7b92155d7a Update README.md 2023-05-29 09:15:00 -06:00
Tonye Jack
3127174fab Update README.md 2023-05-28 20:26:25 -06:00
tj-actions[bot]
cfdaf8f14e Upgraded to v36.0.8 (#1192)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-05-29 02:13:51 +00:00
7 changed files with 86 additions and 29 deletions

View File

@@ -508,6 +508,16 @@ jobs:
echo '${{ toJSON(steps.changed-files-since-last-remote-commit.outputs) }}'
shell:
bash
- name: Run changed-files with dir name
id: changed-files-dir-name
uses: ./
with:
files: .github/workflows
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-dir-name.outputs) }}'
shell:
bash
- name: Run changed-files with write_output_files
id: changed-files-write-output-files
uses: ./

View File

@@ -1,5 +1,17 @@
# Changelog
# [36.0.8](https://github.com/tj-actions/changed-files/compare/v36.0.7...v36.0.8) - (2023-05-29)
## <!-- 0 -->🚀 Features
- Add support for running on release event ([#1191](https://github.com/tj-actions/changed-files/issues/1191)) ([043929e](https://github.com/tj-actions/changed-files/commit/043929ee8fffa1dd1d619782a5a338cf39e76e23)) - (Tonye Jack)
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v36.0.7 ([#1190](https://github.com/tj-actions/changed-files/issues/1190))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([96fd197](https://github.com/tj-actions/changed-files/commit/96fd19710a49b0e910f7363e8af37dd6b182636a)) - (tj-actions[bot])
# [36.0.7](https://github.com/tj-actions/changed-files/compare/v36.0.6...v36.0.7) - (2023-05-29)
## <!-- 1 -->🐛 Bug Fixes

View File

@@ -59,6 +59,7 @@ Retrieve all changed files and directories relative to a target branch, preceedi
* Restrict change detection to a subset of files and directories:
* Boolean output indicating that certain files have been changed.
* Using [Glob pattern](https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet) matching.
* Globstar.
* Brace expansion.
## Usage
@@ -67,7 +68,6 @@ Retrieve all changed files and directories relative to a target branch, preceedi
>
> * **IMPORTANT:** For `push` events when configuring [`actions/checkout`](https://github.com/actions/checkout#usage) the `fetch-depth` should be set to either `fetch-depth: 0` **OR** `fetch-depth: 2` depending on your use case.
> * For monorepos where pulling all the branch history might not be desired, you can omit [`actions/checkout`](https://github.com/actions/checkout#usage) - `fetch-depth` for `pull_request` events.
> * For files located in a sub-directory ensure that the pattern specified contains `**/` (globstar) to match any preceding directories or explicitly pass the full path relative to the project root. See: [Pattern Gotcha](https://github.com/tj-actions/glob#pattern-gotcha).
> * All multiline inputs should not use double or single quotes since the value is already a string seperated by a newline character. See [Examples](#examples) for more information.
> * Ensure that `persist-credentials` is set to `true` when configuring [`actions/checkout`](https://github.com/actions/checkout#usage) if `fetch-depth` isn't set to `0`.
@@ -125,19 +125,19 @@ jobs:
echo "List all the files that have changed: ${{ steps.changed-files-specific.outputs.all_changed_files }}"
# Example 3
- name: Get all changed *.js file(s) or any file in the static folder excluding the docs folder
- name: Get all changed .js file(s) or any file in the static folder excluding the docs folder
id: changed-files-excluded
uses: tj-actions/changed-files@v36
with:
files: |
**/*.js
**.js
static
files_ignore: docs
- name: Run step if any *.js file(s) or any file in the static folder change
- name: Run step if any .js file(s) or any file in the static folder change
if: steps.changed-files-excluded.outputs.any_changed == 'true'
run: |
echo "One or more *.js file(s) or any file in the static folder but not in the doc folder has changed."
echo "One or more .js file(s) or any file in the static folder but not in the doc folder has changed."
echo "List all the files that have changed: ${{ steps.changed-files-excluded.outputs.all_changed_files }}"
```
@@ -731,6 +731,10 @@ See [inputs](#inputs) for more information.
* [nodejs/docker-node: uses tj-actions/changed-files to generate matrix jobs based on changes detected](https://github.com/nodejs/docker-node/blob/3c4fa6daf06a4786d202f2f610351837806a0380/.github/workflows/build-test.yml#L29)
* [refined-github: uses tj-actions/changed-files to automate test URL validation in added/edited files](https://github.com/refined-github/refined-github/blob/b754bfe58904da8a599d7876fdaaf18302785629/.github/workflows/features.yml#L35)
* [aws-doc-sdk-examples: uses tj-actions/changed-files to automate testing](https://github.com/awsdocs/aws-doc-sdk-examples/blob/2393723ef6b0cad9502f4852f5c72f7be58ca89d/.github/workflows/javascript.yml#L22)
And many more...
## Known Limitation
@@ -767,7 +771,6 @@ With the switch from using grep's Extended regex to match files to the natively
This package was created with [cookiecutter-action](https://github.com/tj-actions/cookiecutter-action).
* [tj-actions/glob](https://github.com/tj-actions/glob)
* [tj-actions/auto-doc](https://github.com/tj-actions/auto-doc)
* [tj-actions/verify-changed-files](https://github.com/tj-actions/verify-changed-files)
* [tj-actions/demo](https://github.com/tj-actions/demo)

38
dist/index.js generated vendored
View File

@@ -980,8 +980,8 @@ function run() {
});
core.debug(`All other changed files: ${allOtherChangedFiles}`);
const otherChangedFiles = allOtherChangedFiles
.split(inputs.filesSeparator)
.filter(filePath => !allChangedFiles.split(inputs.filesSeparator).includes(filePath));
.split(inputs.separator)
.filter(filePath => !allChangedFiles.split(inputs.separator).includes(filePath));
const onlyChanged = otherChangedFiles.length === 0 && allChangedFiles.length > 0;
yield (0, utils_1.setOutput)({
key: 'only_changed',
@@ -990,7 +990,7 @@ function run() {
});
yield (0, utils_1.setOutput)({
key: 'other_changed_files',
value: otherChangedFiles.join(inputs.filesSeparator),
value: otherChangedFiles.join(inputs.separator),
inputs
});
const allModifiedFiles = yield (0, changedFiles_1.getDiffFiles)({
@@ -1022,8 +1022,8 @@ function run() {
submodulePaths
});
const otherModifiedFiles = allOtherModifiedFiles
.split(inputs.filesSeparator)
.filter(filePath => !allModifiedFiles.split(inputs.filesSeparator).includes(filePath));
.split(inputs.separator)
.filter(filePath => !allModifiedFiles.split(inputs.separator).includes(filePath));
const onlyModified = otherModifiedFiles.length === 0 && allModifiedFiles.length > 0;
yield (0, utils_1.setOutput)({
key: 'only_modified',
@@ -1032,7 +1032,7 @@ function run() {
});
yield (0, utils_1.setOutput)({
key: 'other_modified_files',
value: otherModifiedFiles.join(inputs.filesSeparator),
value: otherModifiedFiles.join(inputs.separator),
inputs
});
const deletedFiles = yield (0, changedFiles_1.getDiffFiles)({
@@ -1064,8 +1064,8 @@ function run() {
submodulePaths
});
const otherDeletedFiles = allOtherDeletedFiles
.split(inputs.filesSeparator)
.filter(filePath => !deletedFiles.split(inputs.filesSeparator).includes(filePath));
.split(inputs.separator)
.filter(filePath => !deletedFiles.split(inputs.separator).includes(filePath));
const onlyDeleted = otherDeletedFiles.length === 0 && deletedFiles.length > 0;
yield (0, utils_1.setOutput)({
key: 'only_deleted',
@@ -1074,7 +1074,7 @@ function run() {
});
yield (0, utils_1.setOutput)({
key: 'other_deleted_files',
value: otherDeletedFiles.join(inputs.filesSeparator),
value: otherDeletedFiles.join(inputs.separator),
inputs
});
if (inputs.includeAllOldNewRenamedFiles) {
@@ -1660,7 +1660,25 @@ const getFilePatterns = ({ inputs, workingDirectory }) => __awaiter(void 0, void
filePatterns = filePatterns.replace(/\r/g, '\n');
}
core.debug(`file patterns: ${filePatterns}`);
return filePatterns.trim().split('\n').filter(Boolean);
return filePatterns
.trim()
.split('\n')
.filter(Boolean)
.map(pattern => {
if (pattern.endsWith('/')) {
return `${pattern}**`;
}
else {
const pathParts = pattern.split('/');
const lastPart = pathParts[pathParts.length - 1];
if (!lastPart.includes('.')) {
return `${pattern}/**`;
}
else {
return pattern;
}
}
});
});
exports.getFilePatterns = getFilePatterns;
const setOutput = ({ key, value, inputs }) => __awaiter(void 0, void 0, void 0, function* () {

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@@ -265,10 +265,9 @@ export async function run(): Promise<void> {
core.debug(`All other changed files: ${allOtherChangedFiles}`)
const otherChangedFiles = allOtherChangedFiles
.split(inputs.filesSeparator)
.split(inputs.separator)
.filter(
filePath =>
!allChangedFiles.split(inputs.filesSeparator).includes(filePath)
filePath => !allChangedFiles.split(inputs.separator).includes(filePath)
)
const onlyChanged =
@@ -282,7 +281,7 @@ export async function run(): Promise<void> {
await setOutput({
key: 'other_changed_files',
value: otherChangedFiles.join(inputs.filesSeparator),
value: otherChangedFiles.join(inputs.separator),
inputs
})
@@ -318,10 +317,9 @@ export async function run(): Promise<void> {
})
const otherModifiedFiles = allOtherModifiedFiles
.split(inputs.filesSeparator)
.split(inputs.separator)
.filter(
filePath =>
!allModifiedFiles.split(inputs.filesSeparator).includes(filePath)
filePath => !allModifiedFiles.split(inputs.separator).includes(filePath)
)
const onlyModified =
@@ -335,7 +333,7 @@ export async function run(): Promise<void> {
await setOutput({
key: 'other_modified_files',
value: otherModifiedFiles.join(inputs.filesSeparator),
value: otherModifiedFiles.join(inputs.separator),
inputs
})
@@ -371,9 +369,9 @@ export async function run(): Promise<void> {
})
const otherDeletedFiles = allOtherDeletedFiles
.split(inputs.filesSeparator)
.split(inputs.separator)
.filter(
filePath => !deletedFiles.split(inputs.filesSeparator).includes(filePath)
filePath => !deletedFiles.split(inputs.separator).includes(filePath)
)
const onlyDeleted = otherDeletedFiles.length === 0 && deletedFiles.length > 0
@@ -386,7 +384,7 @@ export async function run(): Promise<void> {
await setOutput({
key: 'other_deleted_files',
value: otherDeletedFiles.join(inputs.filesSeparator),
value: otherDeletedFiles.join(inputs.separator),
inputs
})

View File

@@ -757,7 +757,23 @@ export const getFilePatterns = async ({
core.debug(`file patterns: ${filePatterns}`)
return filePatterns.trim().split('\n').filter(Boolean)
return filePatterns
.trim()
.split('\n')
.filter(Boolean)
.map(pattern => {
if (pattern.endsWith('/')) {
return `${pattern}**`
} else {
const pathParts = pattern.split('/')
const lastPart = pathParts[pathParts.length - 1]
if (!lastPart.includes('.')) {
return `${pattern}/**`
} else {
return pattern
}
}
})
}
export const setOutput = async ({