diff --git a/.all-contributorsrc b/.all-contributorsrc
index f81e27d5..a939bb7a 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -32,6 +32,16 @@
"code",
"doc"
]
+ },
+ {
+ "login": "IvanPizhenko",
+ "name": "Ivan Pizhenko",
+ "avatar_url": "https://avatars.githubusercontent.com/u/11859904?v=4",
+ "profile": "https://github.com/IvanPizhenko",
+ "contributions": [
+ "code",
+ "doc"
+ ]
}
],
"contributorsPerLine": 7,
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index d5de6d81..31561dc5 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -20,6 +20,59 @@ jobs:
- name: shellcheck
uses: reviewdog/action-shellcheck@v1.7
+ test-multiple-repositories:
+ name: Test with multiple repositories
+ runs-on: ${{ matrix.platform }}
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [ubuntu-latest, windows-latest, macos-latest]
+ steps:
+ - name: Checkout into dir1
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ path: dir1
+ - name: Run changed-files with defaults on the dir1
+ id: changed-files-dir1
+ uses: ./dir1
+ with:
+ path: dir1
+ - name: Show output
+ run: |
+ echo "${{ toJSON(steps.changed-files-dir1.outputs) }}"
+ shell:
+ bash
+ - name: List all modified files
+ run: |
+ for file in "${{ steps.changed-files-dir1.outputs.modified_files }}"; do
+ echo $file
+ done
+ shell:
+ bash
+ - name: Checkout into dir2
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ path: dir2
+ - name: Run changed-files with defaults on the dir2
+ id: changed-files-dir2
+ uses: ./dir2
+ with:
+ path: dir2
+ - name: Show output
+ run: |
+ echo "${{ toJSON(steps.changed-files-dir2.outputs) }}"
+ shell:
+ bash
+ - name: List all modified files
+ run: |
+ for file in "${{ steps.changed-files-dir2.outputs.modified_files }}"; do
+ echo $file
+ done
+ shell:
+ bash
+
test-no-head-sha:
name: Test changed-files missing head sha
runs-on: ${{ matrix.platform }}
@@ -31,12 +84,12 @@ jobs:
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) }}"
diff --git a/.gitignore b/.gitignore
index a53c6811..3f0e12c1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
.idea/
.envrc
+tag.sh
+untag.sh
diff --git a/README.md b/README.md
index cdf7413a..22864b46 100644
--- a/README.md
+++ b/README.md
@@ -53,11 +53,11 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
-
+
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v1.0.0
-
+
- name: List all modified files
run: |
for file in "${{ steps.changed-files.outputs.all_modified_files }}"; do
@@ -104,6 +104,7 @@ jobs:
| base_sha | `string` | `false` | | Specify a different
base commit SHA
used for
comparing changes |
| sha | `string` | `true` | `${{ github.sha }}` | Specify a different
commit SHA
used for
comparing changes |
| files_from_source_file | `string` | `false` | | Source file
used to populate
the files input |
+| path | `string` | `false` | | Relative path under
`GITHUB_WORKSPACE`
to the repository |
## Example
@@ -115,7 +116,7 @@ jobs:
- name: Get changed files using defaults
id: changed-files
uses: tj-actions/changed-files@v1.0.0
-
+
- name: Get changed files using a comma separator
id: changed-files-comma
uses: tj-actions/changed-files@v1.0.0
@@ -148,7 +149,7 @@ jobs:
new.txt
test_directory
*.sh
- .(png|jpeg)$
+ .(png|jpeg)$
.(sql)$
^(mynewfile|custom)
@@ -156,12 +157,12 @@ jobs:
if: steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "One or more files listed above has changed."
-
+
- name: Run step if only the files listed above change
if: steps.changed-files-specific.outputs.only_changed == 'true'
run: |
echo "Only files listed above have changed."
-
+
- name: Use a source file or list of file(s) to populate to files input.
id: changed-files-specific-source-file
uses: tj-actions/changed-files@v1.0.0
@@ -183,13 +184,13 @@ jobs:
uses: tj-actions/changed-files@v1.0.0
with:
sha: ${{ github.event.pull_request.head.sha }}
-
+
- name: Use a different base SHA
id: changed-files-custom-base-sha
uses: tj-actions/changed-files@v1.0.0
with:
base_sha: "2096ed0"
-
+
```
### Running [pre-commit](https://pre-commit.com/) on all modified files
@@ -200,7 +201,7 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 0
-
+
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v1.0.0
diff --git a/action.yml b/action.yml
index a63ba751..10b31e7d 100644
--- a/action.yml
+++ b/action.yml
@@ -25,6 +25,9 @@ inputs:
base_sha:
description: 'Specify a base commit SHA on used for comparing changes'
required: false
+ path:
+ description: 'Specify a relative path under $GITHUB_WORKSPACE to locate the repository'
+ required: false
outputs:
added_files:
@@ -100,6 +103,7 @@ runs:
INPUT_TOKEN: ${{ inputs.token }}
INPUT_FILES: ${{ join(format('{0} {1}', inputs.files, steps.source-input-files.outputs.files), ' ') }}
INPUT_SEPARATOR: ${{ inputs.separator }}
+ INPUT_PATH: ${{ inputs.path }}
branding:
icon: file-text
diff --git a/entrypoint.sh b/entrypoint.sh
index 324ce8da..2c660510 100755
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -4,6 +4,17 @@ set -e
echo "::group::changed-files"
+echo "Resolving repository path..."
+
+if [[ -n $INPUT_PATH ]]; then
+ REPO_DIR="$GITHUB_WORKSPACE/$INPUT_PATH"
+ if [[ ! -d "$REPO_DIR" ]]; then
+ echo "::warning::Invalid repository path"
+ exit 1
+ fi
+ cd "$REPO_DIR"
+fi
+
git remote add temp_changed_files "https://${INPUT_TOKEN}@github.com/${GITHUB_REPOSITORY}"
echo "Getting HEAD info..."
@@ -27,7 +38,7 @@ if [[ -z $GITHUB_BASE_REF ]]; then
fi
TARGET_BRANCH=${GITHUB_REF/refs\/heads\//}
CURRENT_BRANCH=$TARGET_BRANCH
-
+
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"
@@ -42,7 +53,7 @@ else
else
PREVIOUS_SHA=$INPUT_BASE_SHA
fi
-
+
if [[ $exit_status -ne 0 ]]; then
echo "::warning::Unable to determine the base ref sha for ${TARGET_BRANCH}"
exit 1