Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
944a8b8909 | ||
|
|
a78216810d | ||
|
|
69a29db2d7 | ||
|
|
e4fdf56472 | ||
|
|
582ce2283c | ||
|
|
43886cd0c3 | ||
|
|
581eef0495 | ||
|
|
9e1cda0fb7 | ||
|
|
20b6ac540d | ||
|
|
f0da059036 | ||
|
|
0e1a7180e5 |
29
.github/workflows/manual-test.yml
vendored
Normal file
29
.github/workflows/manual-test.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: Manual Test
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Test changed-files
|
||||
runs-on: ${{ matrix.platform }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
platform: [ubuntu-latest, windows-latest, macos-latest, macos-11, ubuntu-18.04, windows-2022]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Run changed-files with defaults
|
||||
id: changed-files
|
||||
uses: ./
|
||||
|
||||
- name: Show output
|
||||
run: |
|
||||
echo '${{ toJSON(steps.changed-files.outputs) }}'
|
||||
54
HISTORY.md
54
HISTORY.md
@@ -1,5 +1,35 @@
|
||||
# Changelog
|
||||
|
||||
## [Unreleased](https://github.com/tj-actions/changed-files/tree/HEAD)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v20...HEAD)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- \[Feature\] Rename `files` -\> `paths` [\#125](https://github.com/tj-actions/changed-files/issues/125)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- \[BUG\] Using the fork point to detect file changes. [\#355](https://github.com/tj-actions/changed-files/issues/355)
|
||||
|
||||
## [v20](https://github.com/tj-actions/changed-files/tree/v20) (2022-05-15)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v19.3...v20)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- fix: bug finding fork point commit and removed unused temp\_changed\_files remote. [\#490](https://github.com/tj-actions/changed-files/pull/490) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v19.3 [\#489](https://github.com/tj-actions/changed-files/pull/489) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v19.3](https://github.com/tj-actions/changed-files/tree/v19.3) (2022-05-14)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v19.2...v19.3)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- fix: bug with renames [\#488](https://github.com/tj-actions/changed-files/pull/488) ([jackton1](https://github.com/jackton1))
|
||||
- Upgraded to v19.2 [\#487](https://github.com/tj-actions/changed-files/pull/487) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v19.2](https://github.com/tj-actions/changed-files/tree/v19.2) (2022-05-14)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v19.1...v19.2)
|
||||
@@ -625,7 +655,7 @@
|
||||
|
||||
## [v1.2.1](https://github.com/tj-actions/changed-files/tree/v1.2.1) (2021-11-08)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v1.2.0...v1.2.1)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.5...v1.2.1)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
@@ -639,13 +669,13 @@
|
||||
- Update actions/checkout action to v2.4.0 [\#243](https://github.com/tj-actions/changed-files/pull/243) ([renovate[bot]](https://github.com/apps/renovate))
|
||||
- Upgraded to v11.5 [\#241](https://github.com/tj-actions/changed-files/pull/241) ([jackton1](https://github.com/jackton1))
|
||||
|
||||
## [v1.2.0](https://github.com/tj-actions/changed-files/tree/v1.2.0) (2021-10-30)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.5...v1.2.0)
|
||||
|
||||
## [v11.5](https://github.com/tj-actions/changed-files/tree/v11.5) (2021-10-30)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.4...v11.5)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v1.2.0...v11.5)
|
||||
|
||||
## [v1.2.0](https://github.com/tj-actions/changed-files/tree/v1.2.0) (2021-10-30)
|
||||
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v11.4...v1.2.0)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
@@ -1037,7 +1067,7 @@
|
||||
|
||||
## [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)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6...v7)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
@@ -1053,13 +1083,13 @@
|
||||
- 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)
|
||||
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6.3...v6)
|
||||
|
||||
## [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.2...v6.3)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
|
||||
37
README.md
37
README.md
@@ -22,18 +22,17 @@ Retrieve all changed files relative to the target branch (`pull_request*` based
|
||||
* Boolean output indicating that certain files have been changed.
|
||||
* Scales to large repositories.
|
||||
* Git submodules support.
|
||||
* Multiple repositories support.
|
||||
* Monorepos (Fetches only the last remote commit).
|
||||
* Supports all platforms (Linux, MacOS, Windows).
|
||||
* [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners) support
|
||||
* [GitHub Enterprise Server](https://docs.github.com/en/enterprise-server@3.3/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server) support.
|
||||
* [self-hosted runners](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners) support.
|
||||
* Monorepos (Fetches only the last remote commit).
|
||||
* Supports all platforms (Linux, MacOS, Windows).
|
||||
* List all files that have changed.
|
||||
* List all files that have changed:
|
||||
* Between the current pull request branch and the last commit on the target branch.
|
||||
* Between the current pull request branch and the fork point on the target branch.
|
||||
* Between the last commit and the current pushed change.
|
||||
* Between the last remote branch commit and the current HEAD.
|
||||
* 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.
|
||||
* Using [Glob pattern](https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet) matching.
|
||||
|
||||
@@ -68,7 +67,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
|
||||
- name: List all changed files
|
||||
run: |
|
||||
@@ -114,12 +113,12 @@ Support this project with a :star:
|
||||
| all\_changed\_files | `string` | `'new.txt path/to/file.png ...'` | Select all changed files <br /> i.e. *a combination of all added, <br />copied, modified and renamed files (ACMR)* |
|
||||
| all\_modified\_files | `string` | `'new.txt path/to/file.png ...'` | Select all changed files <br /> i.e. *a combination of all added, <br />copied, modified, renamed and deleted files (ACMRD)* |
|
||||
| all\_changed\_and\_modified\_files | `string` | `'new.txt path/to/file.png ...'` | Select all changed <br /> and modified files <br /> i.e. *a combination of (ACMRDTUX)* |
|
||||
| all\_old\_new\_renamed\_files | `string` | `'old name.txt,new name.txt old name 2.txt,new name 2.txt...'` | Select only files that are Renamed and list their old and new names (R) |
|
||||
| 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) |
|
||||
| all\_old\_new\_renamed\_files | `string` | `'old name.txt,new name.txt old name 2.txt,new name 2.txt...'` | Select only files that are Renamed and list their old and new names (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) |
|
||||
@@ -157,11 +156,11 @@ Support this project with a :star:
|
||||
|
||||
- name: Get changed files using defaults
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
|
||||
- name: Get changed files using a comma separator
|
||||
id: changed-files-comma
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
with:
|
||||
separator: ","
|
||||
|
||||
@@ -183,7 +182,7 @@ Support this project with a :star:
|
||||
|
||||
- name: Get specific changed files
|
||||
id: changed-files-specific
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
with:
|
||||
files: |
|
||||
my-file.txt
|
||||
@@ -224,14 +223,14 @@ Support this project with a :star:
|
||||
|
||||
- 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@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
with:
|
||||
files_from_source_file: |
|
||||
test/changed-files-list.txt
|
||||
|
||||
- name: Use a source file or list of file(s) to populate to files input and optionally specify more files.
|
||||
id: changed-files-specific-source-file-and-specify-files
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
with:
|
||||
files_from_source_file: |
|
||||
test/changed-files-list.txt
|
||||
@@ -240,13 +239,13 @@ Support this project with a :star:
|
||||
|
||||
- name: Use a different commit SHA
|
||||
id: changed-files-custom-sha
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
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@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
with:
|
||||
base_sha: "2096ed0"
|
||||
|
||||
@@ -258,7 +257,7 @@ Support this project with a :star:
|
||||
|
||||
- name: Run changed-files with defaults on the dir1
|
||||
id: changed-files-for-dir1
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
with:
|
||||
path: dir1
|
||||
|
||||
@@ -270,19 +269,19 @@ Support this project with a :star:
|
||||
|
||||
- name: Run changed-files using the last commit on the remote branch
|
||||
id: changed-files-since-last-remote-commit
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
with:
|
||||
since_last_remote_commit: "true"
|
||||
|
||||
- name: Run changed-files using the fork point of a pull request
|
||||
id: changed-files-fork-point
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
with:
|
||||
use_fork_point: "true"
|
||||
|
||||
- name: Run changed-files with quotepath disabled
|
||||
id: changed-files-quotepath
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
with:
|
||||
quotepath: "false"
|
||||
|
||||
@@ -336,7 +335,7 @@ With the switch from using grep's Extended regex to match files to the natively
|
||||
|
||||
- name: Get specific changed files
|
||||
id: changed-files-specific
|
||||
uses: tj-actions/changed-files@v19.2
|
||||
uses: tj-actions/changed-files@v20
|
||||
with:
|
||||
files: |
|
||||
*.sh
|
||||
|
||||
29
diff-sha.sh
29
diff-sha.sh
@@ -15,21 +15,6 @@ if [[ -n $INPUT_PATH ]]; then
|
||||
cd "$REPO_DIR"
|
||||
fi
|
||||
|
||||
SERVER_URL=$(echo "$GITHUB_SERVER_URL" | awk -F/ '{print $3}')
|
||||
|
||||
echo "Setting up 'temp_changed_files' remote..."
|
||||
|
||||
git ls-remote --exit-code temp_changed_files 1>/dev/null 2>&1 && exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "No 'temp_changed_files' remote found"
|
||||
echo "Creating 'temp_changed_files' remote..."
|
||||
git remote remove temp_changed_files 2>/dev/null || true
|
||||
git remote add temp_changed_files "https://${INPUT_TOKEN}@${SERVER_URL}/${GITHUB_REPOSITORY}"
|
||||
else
|
||||
echo "Found 'temp_changed_files' remote"
|
||||
fi
|
||||
|
||||
echo "Getting HEAD SHA..."
|
||||
|
||||
if [[ -z $INPUT_SHA ]]; then
|
||||
@@ -43,7 +28,6 @@ git rev-parse --quiet --verify "$CURRENT_SHA^{commit}" 1>/dev/null 2>&1 && exit_
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::warning::Unable to locate the current sha: $CURRENT_SHA"
|
||||
echo "::warning::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage"
|
||||
git remote remove temp_changed_files
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -52,7 +36,8 @@ if [[ -z $GITHUB_BASE_REF ]]; then
|
||||
CURRENT_BRANCH=$TARGET_BRANCH
|
||||
|
||||
if [[ -z $INPUT_BASE_SHA ]]; then
|
||||
git fetch --no-tags -u --progress --depth=2 temp_changed_files "${CURRENT_BRANCH}":"${CURRENT_BRANCH}" && exit_status=$? || exit_status=$?
|
||||
git fetch --no-tags -u --progress --depth=2 origin "${CURRENT_BRANCH}":"${CURRENT_BRANCH}" &&
|
||||
exit_status=$? || exit_status=$?
|
||||
|
||||
if [[ $(git rev-list --count HEAD) -gt 1 ]]; then
|
||||
PREVIOUS_SHA=$(git rev-list --no-merges -n 1 HEAD^1 2>&1) && exit_status=$? || exit_status=$?
|
||||
@@ -70,7 +55,6 @@ if [[ -z $GITHUB_BASE_REF ]]; then
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::warning::Unable to locate the previous sha: $PREVIOUS_SHA"
|
||||
echo "::warning::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage"
|
||||
git remote remove temp_changed_files
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
@@ -80,14 +64,14 @@ else
|
||||
if [[ -z $INPUT_BASE_SHA ]]; then
|
||||
if [[ "$INPUT_USE_FORK_POINT" == "true" ]]; then
|
||||
echo "Getting fork point..."
|
||||
git fetch --no-tags -u --progress temp_changed_files "${TARGET_BRANCH}":"${TARGET_BRANCH}" && exit_status=$? || exit_status=$?
|
||||
PREVIOUS_SHA=$(git merge-base --fork-point "temp_changed_files/${TARGET_BRANCH}") && exit_status=$? || exit_status=$?
|
||||
git fetch --no-tags -u --progress origin "${TARGET_BRANCH}":"${TARGET_BRANCH}" && exit_status=$? || exit_status=$?
|
||||
PREVIOUS_SHA=$(git merge-base --fork-point "${TARGET_BRANCH}" "$(git name-rev --name-only "$CURRENT_SHA")") && exit_status=$? || exit_status=$?
|
||||
else
|
||||
git fetch --no-tags -u --progress --depth=1 temp_changed_files "${TARGET_BRANCH}":"${TARGET_BRANCH}" && exit_status=$? || exit_status=$?
|
||||
git fetch --no-tags -u --progress origin --depth=1 "${TARGET_BRANCH}":"${TARGET_BRANCH}" && exit_status=$? || exit_status=$?
|
||||
PREVIOUS_SHA=$(git rev-list --no-merges -n 1 "${TARGET_BRANCH}" 2>&1) && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
else
|
||||
git fetch --no-tags -u --progress --depth=1 temp_changed_files "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$?
|
||||
git fetch --no-tags -u --progress origin --depth=1 "$INPUT_BASE_SHA" && exit_status=$? || exit_status=$?
|
||||
PREVIOUS_SHA=$INPUT_BASE_SHA
|
||||
TARGET_BRANCH=$(git name-rev --name-only "$PREVIOUS_SHA" 2>&1) && exit_status=$? || exit_status=$?
|
||||
fi
|
||||
@@ -98,7 +82,6 @@ else
|
||||
if [[ $exit_status -ne 0 ]]; then
|
||||
echo "::warning::Unable to locate the previous sha: $PREVIOUS_SHA"
|
||||
echo "::warning::You seem to be missing 'fetch-depth: 0' or 'fetch-depth: 2'. See https://github.com/tj-actions/changed-files#usage"
|
||||
git remote remove temp_changed_files
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -46,7 +46,12 @@ function get_renames() {
|
||||
)
|
||||
fi
|
||||
done < <(git submodule | awk '{print $2}')
|
||||
git log --name-status --ignore-submodules=all "$base".."$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}'
|
||||
|
||||
if [ -n "$(git log --name-status --ignore-submodules=all "$base".."$sha")" ]; then
|
||||
git log --name-status --ignore-submodules=all "$base".."$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}'
|
||||
else
|
||||
git diff --diff-filter=R --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}'
|
||||
fi
|
||||
}
|
||||
|
||||
echo "::group::changed-files"
|
||||
@@ -196,8 +201,6 @@ else
|
||||
ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
|
||||
fi
|
||||
|
||||
git remote remove temp_changed_files
|
||||
|
||||
echo "Added files: $ADDED"
|
||||
echo "Copied files: $COPIED"
|
||||
echo "Deleted files: $DELETED"
|
||||
|
||||
Reference in New Issue
Block a user