CI #10025
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- "**" | |
pull_request_review: | |
types: [edited, dismissed, submitted] | |
pull_request_target: | |
pull_request: | |
types: | |
- assigned | |
- unassigned | |
- labeled | |
- unlabeled | |
- opened | |
- edited | |
- closed | |
- reopened | |
- synchronize | |
- converted_to_draft | |
- ready_for_review | |
- locked | |
- unlocked | |
- review_requested | |
- review_request_removed | |
- auto_merge_enabled | |
- auto_merge_disabled | |
branches: | |
- main | |
jobs: | |
shellcheck: | |
name: Run shellcheck | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
- name: shellcheck | |
uses: reviewdog/action-shellcheck@v1.18 | |
build: | |
runs-on: ubuntu-latest | |
outputs: | |
files_changed: ${{ steps.changed_files.outputs.files_changed }} | |
steps: | |
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
persist-credentials: false | |
fetch-depth: 0 | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
- name: Use Node.js 16.x | |
uses: actions/setup-node@v3.8.1 | |
with: | |
cache: 'yarn' | |
node-version: '16.x' | |
- name: Create coverage directory and clover.xml | |
run: | | |
mkdir -p coverage | |
touch coverage/clover.xml | |
- name: Install dependencies | |
run: | | |
yarn install | |
- name: Run eslint on changed files | |
uses: tj-actions/eslint-changed-files@v20 | |
if: github.event_name == 'pull_request' | |
with: | |
token: ${{ secrets.PAT_TOKEN }} | |
config_path: ".eslintrc.json" | |
ignore_path: ".eslintignore" | |
- name: Run build and test | |
run: | | |
yarn all | |
- name: Verify Changed files | |
uses: tj-actions/verify-changed-files@v16 | |
id: changed_files | |
with: | |
files: | | |
src | |
dist | |
- name: Commit files | |
if: steps.changed_files.outputs.files_changed == 'true' && github.event_name == 'pull_request' | |
run: | | |
git config --local user.email "action@github.com" | |
git config --local user.name "GitHub Action" | |
git add src dist | |
git commit -m "Added missing changes and modified dist assets." | |
- name: Push changes | |
if: steps.changed_files.outputs.files_changed == 'true' && github.event_name == 'pull_request' | |
continue-on-error: true | |
uses: ad-m/github-push-action@master | |
with: | |
github_token: ${{ secrets.PAT_TOKEN }} | |
branch: ${{ github.head_ref }} | |
- name: Upload build assets | |
uses: actions/upload-artifact@v3 | |
with: | |
name: build-assets | |
path: dist | |
- name: Run codacy-coverage-reporter | |
uses: codacy/codacy-coverage-reporter-action@v1 | |
continue-on-error: true | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: coverage/lcov.info | |
test-multiple-repositories: | |
name: Test with multiple repositories | |
runs-on: ubuntu-latest | |
needs: build | |
if: needs.build.outputs.files_changed != 'true' | |
steps: | |
- name: Checkout into dir1 | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
submodules: true | |
fetch-depth: 0 | |
path: dir1 | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
path: dir1/dist | |
- 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: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
path: dir2/dist | |
- name: Checkout into dir2 | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
submodules: true | |
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-using-since-and-until: | |
name: Test changed-files using since and until | |
needs: build | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' && needs.build.outputs.files_changed != 'true' | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
fetch-depth: 0 | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files since 2022-08-19 | |
id: changed-files-since | |
uses: ./ | |
with: | |
since: "2022-08-19" | |
- name: Check output | |
if: "!contains(steps.changed-files-since.outputs.all_changed_files, '.github/workflows/sync-release-version.yml')" | |
run: | | |
echo "Invalid output: Expected to include (.github/workflows/sync-release-version.yml) got (${{ steps.changed-files-since.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-since.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files until 2022-08-20 | |
id: changed-files-until | |
uses: ./ | |
with: | |
until: "2022-08-20" | |
- name: Check output | |
if: "!contains(steps.changed-files-until.outputs.all_changed_files, 'README.md')" | |
run: | | |
echo "Invalid output: Expected to include (README.md) got (${{ steps.changed-files-until.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-until.outputs) }}' | |
shell: | |
bash | |
test-similar-base-and-commit-sha: | |
name: Test changed-files similar base and commit sha | |
runs-on: ubuntu-latest | |
needs: build | |
if: needs.build.outputs.files_changed != 'true' | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
fetch-depth: 0 | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files with similar base and commit sha | |
id: changed-files | |
continue-on-error: true | |
uses: ./ | |
with: | |
base_sha: d1c0ee4 | |
sha: d1c0ee4 | |
- name: Exit with 1 if no error is raised | |
if: steps.changed-files.outcome != 'failure' | |
run: | | |
echo "Expected: (failure) got ${{ steps.changed-files.outcome }}" | |
exit 1 | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files.outputs) }}' | |
shell: | |
bash | |
test-unset-github-output-env: | |
name: Test unset GITHUB_OUTPUT env | |
runs-on: ubuntu-latest | |
needs: build | |
if: needs.build.outputs.files_changed != 'true' | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
fetch-depth: 0 | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files with unset GITHUB_OUTPUT env | |
id: changed-files | |
continue-on-error: true | |
uses: ./ | |
env: | |
GITHUB_OUTPUT: "" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files.outputs) }}' | |
shell: | |
bash | |
test-limited-commit-history: | |
name: Test changed-files with limited commit history | |
runs-on: ubuntu-latest | |
needs: build | |
if: needs.build.outputs.files_changed != 'true' | |
strategy: | |
fail-fast: false | |
max-parallel: 4 | |
matrix: | |
fetch-depth: [1, 2, 50] | |
input-fetch_depth: [1, 2, 50] | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
fetch-depth: ${{ matrix.fetch-depth }} | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files | |
id: changed-files | |
uses: ./ | |
continue-on-error: ${{ matrix.input-skip_initial_fetch == true && matrix.fetch-depth < 10 }} | |
with: | |
fetch_depth: ${{ matrix.input-fetch_depth }} | |
skip_initial_fetch: ${{ github.event_name == 'push' }} | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files.outputs) }}' | |
shell: | |
bash | |
test-pull-request-head-ref: | |
name: Test changed-files with pull request head ref | |
runs-on: ubuntu-latest | |
needs: build | |
if: github.event_name != 'push' && needs.build.outputs.files_changed != 'true' | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files | |
id: changed-files | |
uses: ./ | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files.outputs) }}' | |
shell: | |
bash | |
test-pull-request-without-persist-credentials: | |
name: Test changed-files with pull request without persist credentials | |
runs-on: ubuntu-latest | |
needs: build | |
if: github.event_name != 'push' && needs.build.outputs.files_changed != 'true' | |
strategy: | |
fail-fast: false | |
max-parallel: 4 | |
matrix: | |
fetch-depth: [1, 2, 0] | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
fetch-depth: ${{ matrix.fetch-depth }} | |
persist-credentials: false | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files | |
id: changed-files | |
uses: ./ | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files.outputs) }}' | |
shell: | |
bash | |
test-non-existent-base-sha: | |
name: Test changed-files non existent base sha | |
runs-on: ubuntu-latest | |
needs: build | |
if: needs.build.outputs.files_changed != 'true' | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files with non existent base sha | |
id: changed-files | |
uses: ./ | |
continue-on-error: true | |
with: | |
base_sha: "4554456" | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files.outputs) }}" | |
shell: | |
bash | |
- name: Exit with 1 if no error is raised | |
if: steps.changed-files.outcome != 'failure' | |
run: | | |
echo "Expected: (failure) got ${{ steps.changed-files.outcome }}" | |
exit 1 | |
- name: Run changed-files-specific with non existent base sha | |
id: changed-files-specific | |
uses: ./ | |
continue-on-error: true | |
with: | |
files: action.yml | |
base_sha: "4554456" | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files-specific.outputs) }}" | |
shell: | |
bash | |
- name: Exit with 1 if no error is raised | |
if: steps.changed-files-specific.outcome != 'failure' | |
run: | | |
echo "Expected: (failure) got ${{ steps.changed-files-specific.outcome }}" | |
exit 1 | |
test-non-existent-sha: | |
name: Test changed-files non existent sha | |
runs-on: ubuntu-latest | |
needs: build | |
if: needs.build.outputs.files_changed != 'true' | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files with non existent sha | |
id: changed-files | |
uses: ./ | |
continue-on-error: true | |
with: | |
sha: "4774456" | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files.outputs) }}" | |
shell: | |
bash | |
- name: Exit with 1 if no error is raised | |
if: steps.changed-files.outcome != 'failure' | |
run: | | |
echo "Expected: (failure) got ${{ steps.changed-files.outcome }}" | |
exit 1 | |
- name: Run changed-files-specific with non existent sha | |
id: changed-files-specific | |
uses: ./ | |
continue-on-error: true | |
with: | |
files: action.yml | |
sha: "4774456" | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files-specific.outputs) }}" | |
shell: | |
bash | |
- name: Exit with 1 if no error is raised | |
if: steps.changed-files-specific.outcome != 'failure' | |
run: | | |
echo "Expected: (failure) got ${{ steps.changed-files-specific.outcome }}" | |
exit 1 | |
test-rest-api: | |
name: Test changed-files with REST API | |
runs-on: ubuntu-latest | |
needs: build | |
if: github.event_name != 'push' && needs.build.outputs.files_changed != 'true' | |
permissions: | |
pull-requests: read | |
steps: | |
- name: Checkout into dir1 | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
submodules: true | |
fetch-depth: 0 | |
path: dir1 | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
path: dir1/dist | |
- name: Run changed-files with REST API | |
id: changed-files | |
uses: ./dir1 | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files.outputs) }}' | |
shell: | |
bash | |
test-submodules: | |
name: Test changed-files with submodule | |
runs-on: ubuntu-latest | |
needs: build | |
if: needs.build.outputs.files_changed != 'true' | |
strategy: | |
fail-fast: false | |
max-parallel: 4 | |
matrix: | |
fetch-depth: [0, 1, 2] | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha || github.sha }} | |
submodules: recursive | |
fetch-depth: ${{ matrix.fetch-depth }} | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files with submodule | |
id: changed-files | |
uses: ./ | |
with: | |
base_sha: "85bd869" | |
sha: "adde7bb" | |
fetch_depth: 60000 | |
- name: Verify added files | |
if: steps.changed-files.outputs.added_files != 'test/demo/test/test.txt' | |
run: | | |
echo "Expected: (test/demo/test/test.txt) got ${{ steps.changed-files.outputs.added_files }}" | |
exit 1 | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files.outputs) }}" | |
shell: | |
bash | |
test-yaml: | |
name: Test changed-files with yaml | |
runs-on: ubuntu-latest | |
needs: build | |
if: needs.build.outputs.files_changed != 'true' | |
strategy: | |
fail-fast: false | |
max-parallel: 4 | |
matrix: | |
fetch-depth: [0, 1, 2] | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha || github.sha }} | |
submodules: recursive | |
fetch-depth: ${{ matrix.fetch-depth }} | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files with files_yaml | |
id: changed-files | |
uses: ./ | |
with: | |
files_yaml: | | |
test: | |
- test/**.txt | |
- test/**.md | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files.outputs) }}" | |
shell: | |
bash | |
- name: Run changed-files with files_yaml_from_source_file | |
id: changed-files-from-source-file | |
uses: ./ | |
with: | |
files_yaml_from_source_file: | | |
test/changed-files.yml | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files-from-source-file.outputs) }}" | |
shell: | |
bash | |
test-recover-deleted-file: | |
name: Test changed-files recover deleted file | |
runs-on: ubuntu-latest | |
needs: build | |
if: needs.build.outputs.files_changed != 'true' | |
strategy: | |
fail-fast: false | |
max-parallel: 4 | |
matrix: | |
fetch-depth: [0, 1, 2] | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha || github.sha }} | |
submodules: recursive | |
fetch-depth: ${{ matrix.fetch-depth }} | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Run changed-files with recover_deleted_files | |
id: changed-files-recover-deleted-files | |
uses: ./ | |
with: | |
base_sha: "fcdeb5b3d797752d95f6dbe98552a95c29dad338" | |
sha: "432e0c810c60ef1332850a971c5ec39022034b4c" | |
recover_deleted_files: true | |
fetch_depth: 60000 | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files-recover-deleted-files.outputs) }}" | |
shell: | |
bash | |
- name: Verify deleted files | |
if: steps.changed-files-recover-deleted-files.outputs.deleted_files != 'test/test deleted.txt' | |
run: | | |
echo "Expected: (test/test deleted.txt) got ${{ steps.changed-files-recover-deleted-files.outputs.deleted_files }}" | |
exit 1 | |
- name: Verify that test/test deleted.txt is restored | |
run: | | |
if [ ! -f "test/test deleted.txt" ]; then | |
echo "Expected: (test/test deleted.txt) to exist" | |
exit 1 | |
else | |
cat "test/test deleted.txt" | |
rm "test/test deleted.txt" | |
fi | |
- name: Run changed-files with recover_deleted_files and files input | |
id: changed-files-recover-deleted-files-with-files | |
uses: ./ | |
with: | |
base_sha: "fcdeb5b3d797752d95f6dbe98552a95c29dad338" | |
sha: "432e0c810c60ef1332850a971c5ec39022034b4c" | |
files: | | |
test | |
recover_deleted_files: true | |
fetch_depth: 60000 | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files-recover-deleted-files-with-files.outputs) }}" | |
shell: | |
bash | |
- name: Verify deleted files | |
if: steps.changed-files-recover-deleted-files-with-files.outputs.deleted_files != 'test/test deleted.txt' | |
run: | | |
echo "Expected: (test/test deleted.txt) got ${{ steps.changed-files-recover-deleted-files-with-files.outputs.deleted_files }}" | |
exit 1 | |
- name: Verify that test/test deleted.txt is restored | |
run: | | |
if [ ! -f "test/test deleted.txt" ]; then | |
echo "Expected: (test/test deleted.txt) to exist" | |
exit 1 | |
else | |
cat "test/test deleted.txt" | |
rm "test/test deleted.txt" | |
fi | |
- name: Run changed-files with recover_deleted_files and files_yaml input | |
id: changed-files-recover-deleted-files-with-files-yaml | |
uses: ./ | |
with: | |
base_sha: "fcdeb5b3d797752d95f6dbe98552a95c29dad338" | |
sha: "432e0c810c60ef1332850a971c5ec39022034b4c" | |
files_yaml: | | |
test: | |
- test/**.txt | |
- test/**.md | |
recover_deleted_files: true | |
fetch_depth: 60000 | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files-recover-deleted-files-with-files-yaml.outputs) }}" | |
shell: | |
bash | |
- name: Verify deleted files | |
if: steps.changed-files-recover-deleted-files-with-files-yaml.outputs.test_deleted_files != 'test/test deleted.txt' | |
run: | | |
echo "Expected: (test/test deleted.txt) got ${{ steps.changed-files-recover-deleted-files-with-files-yaml.outputs.test_deleted_files }}" | |
exit 1 | |
- name: Verify that test/test deleted.txt is restored | |
run: | | |
if [ ! -f "test/test deleted.txt" ]; then | |
echo "Expected: (test/test deleted.txt) to exist" | |
exit 1 | |
else | |
cat "test/test deleted.txt" | |
rm "test/test deleted.txt" | |
fi | |
- name: Run changed-files with recover_deleted_files and recover_deleted_files_to_destination | |
id: changed-files-recover-deleted-files-to-destination | |
uses: ./ | |
with: | |
base_sha: "fcdeb5b3d797752d95f6dbe98552a95c29dad338" | |
sha: "432e0c810c60ef1332850a971c5ec39022034b4c" | |
recover_deleted_files: true | |
recover_deleted_files_to_destination: "deleted_files" | |
fetch_depth: 60000 | |
- name: Show output | |
run: | | |
echo "${{ toJSON(steps.changed-files-recover-deleted-files-to-destination.outputs) }}" | |
shell: | |
bash | |
- name: Verify deleted files | |
if: steps.changed-files-recover-deleted-files-to-destination.outputs.deleted_files != 'test/test deleted.txt' | |
run: | | |
echo "Expected: (test/test deleted.txt) got ${{ steps.changed-files-recover-deleted-files-to-destination.outputs.deleted_files }}" | |
exit 1 | |
- name: Verify that test/test deleted.txt is restored | |
run: | | |
if [ ! -f "deleted_files/test/test deleted.txt" ]; then | |
echo "Expected: (deleted_files/test/test deleted.txt) to exist" | |
exit 1 | |
else | |
cat "deleted_files/test/test deleted.txt" | |
fi | |
test: | |
name: Test changed-files | |
runs-on: ${{ matrix.platform }} | |
needs: build | |
if: needs.build.outputs.files_changed != 'true' | |
strategy: | |
fail-fast: false | |
max-parallel: 4 | |
matrix: | |
platform: [ubuntu-latest, macos-latest, windows-latest] | |
fetch-depth: [0, 1, 2] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
submodules: true | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
fetch-depth: ${{ matrix.fetch-depth }} | |
- name: Download build assets | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-assets | |
- name: Dump GitHub context | |
env: | |
GITHUB_CONTEXT: ${{ toJson(github) }} | |
run: echo "$GITHUB_CONTEXT" | |
- name: Run changed-files with defaults | |
id: changed-files | |
uses: ./ | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with since_last_remote_commit | |
id: changed-files-since-last-remote-commit | |
uses: ./ | |
with: | |
since_last_remote_commit: true | |
- name: Show output | |
run: | | |
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: ./ | |
with: | |
json: true | |
write_output_files: true | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-write-output-files.outputs.all_changed_files) }}' | |
cat .github/outputs/all_changed_files.json | |
shell: | |
bash | |
- name: Run changed-files with include_all_old_new_renamed_files | |
id: changed-files-all-old-new-renamed-files | |
uses: ./ | |
with: | |
include_all_old_new_renamed_files: true | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-all-old-new-renamed-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 quotepath disabled for single path | |
id: changed-files-quotepath-specific | |
uses: ./ | |
with: | |
files: test/test-è.txt | |
quotepath: "false" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-quotepath-specific.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with quotepath disabled | |
id: changed-files-quotepath | |
uses: ./ | |
with: | |
quotepath: "false" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-quotepath.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with dir_names and dir_names_max_depth | |
id: changed-files-dir-names-max-depth | |
uses: ./ | |
with: | |
base_sha: ba788ed | |
sha: 0a5b7c6 | |
fetch_depth: 60000 | |
dir_names: "true" | |
dir_names_max_depth: 3 | |
dir_names_exclude_current_dir: "true" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-dir-names-max-depth.outputs) }}' | |
shell: | |
bash | |
- name: Check dir_names output on non windows platform | |
if: "!contains(steps.changed-files-dir-names-max-depth.outputs.all_changed_files, 'test/test2/test3') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected to include (test/test2/test3) got (${{ steps.changed-files-dir-names-max-depth.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check dir_names output on windows platform | |
if: "!contains(steps.changed-files-dir-names-max-depth.outputs.all_changed_files, 'test\\test2\\test3') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected to not include (test\\test2\\test3) got (${{ steps.changed-files-dir-names-max-depth.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Run changed-files with dir_names and dir_names_exclude_current_dir | |
id: changed-files-dir-names-exclude-root | |
uses: ./ | |
with: | |
base_sha: dddfbd69 | |
sha: ce8c1983 | |
fetch_depth: 60000 | |
dir_names: "true" | |
dir_names_exclude_current_dir: "true" | |
dir_names_max_depth: 1 | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-dir-names-exclude-root.outputs) }}' | |
shell: | |
bash | |
- name: Check dir_names output | |
if: steps.changed-files-dir-names-exclude-root.outputs.all_changed_files != '.github' | |
run: | | |
echo "Invalid output: Expected (.github) got (${{ steps.changed-files-dir-names-exclude-root.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Run changed-files with dir_names | |
id: changed-files-dir-names | |
uses: ./ | |
with: | |
base_sha: d1c0ee4 | |
sha: 4d04215 | |
fetch_depth: 60000 | |
dir_names: "true" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-dir-names.outputs) }}' | |
shell: | |
bash | |
- name: Check dir_names output | |
if: steps.changed-files-dir-names.outputs.all_changed_files != 'test' | |
run: | | |
echo "Invalid output: Expected (test) got (${{ steps.changed-files-dir-names.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Run changed-files with dir_names specific | |
id: changed-files-dir-names-specific | |
uses: ./ | |
with: | |
base_sha: d1c0ee4 | |
sha: 4d04215 | |
fetch_depth: 60000 | |
dir_names: true | |
files: test/** | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-dir-names-specific.outputs) }}' | |
shell: | |
bash | |
- name: Check dir_names output | |
if: steps.changed-files-dir-names-specific.outputs.all_changed_files != 'test' | |
run: | | |
echo "Invalid output: Expected (test) got (${{ steps.changed-files-dir-names-specific.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Run changed-files with dir_names and dir_names_include_files with specific files | |
id: changed-files-dir-names-specific-include-files | |
uses: ./ | |
with: | |
base_sha: d1c0ee4 | |
sha: 4d04215 | |
fetch_depth: 60000 | |
dir_names: true | |
dir_names_include_files: test/*.txt | |
files: test/** | |
json: true | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-dir-names-specific-include-files.outputs) }}' | |
shell: | |
bash | |
- name: Check dir_names output on non windows platform | |
if: | | |
( | |
!contains(steps.changed-files-dir-names-specific-include-files.outputs.all_changed_files, 'test/test rename-1.txt') || | |
!contains(steps.changed-files-dir-names-specific-include-files.outputs.all_changed_files, 'test') | |
) && runner.os != 'Windows' | |
run: | | |
echo "Invalid output: Expected to include (test/test rename-1.txt) and (test) got (${{ steps.changed-files-dir-names-specific-include-files.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check dir_names output on windows platform | |
if: | | |
( | |
!contains(steps.changed-files-dir-names-specific-include-files.outputs.all_changed_files, 'test\\test rename-1.txt') || | |
!contains(steps.changed-files-dir-names-specific-include-files.outputs.all_changed_files, 'test') | |
) && runner.os == 'Windows' | |
run: | | |
echo "Invalid output: Expected to include (test\\test rename-1.txt) and (test) got (${{ steps.changed-files-dir-names-specific-include-files.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Run changed-files with forward slash separator | |
id: changed-files-forward-slash | |
uses: ./ | |
with: | |
separator: "/" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-forward-slash.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with newline separator | |
id: changed-files-newline | |
uses: ./ | |
with: | |
separator: "\n" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-newline.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with pipe separator | |
id: changed-files-pipe | |
uses: ./ | |
with: | |
separator: "|" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-pipe.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with json output | |
id: changed-files-json | |
uses: ./ | |
with: | |
json: true | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-json.outputs) }}' | |
echo '${{ toJSON(steps.changed-files-json.outputs.all_changed_files) }}' | |
shell: | |
bash | |
- name: Run changed-files with json unescaped format | |
id: changed-files-json-unescaped | |
uses: ./ | |
with: | |
json: true | |
escape_json: false | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-json-unescaped.outputs) }}' | |
echo '${{ toJSON(steps.changed-files-json-unescaped.outputs.all_changed_files) }}' | |
shell: | |
bash | |
- name: Run changed-files with comma separator | |
id: changed-files-comma | |
uses: ./ | |
with: | |
separator: "," | |
- name: List all modified files | |
run: | | |
IFS=$',' read -a MODIFIED_FILES_ARRAY <<< "${{ steps.changed-files-comma.outputs.modified_files }}" | |
for file in "${MODIFIED_FILES_ARRAY[@]}"; do | |
echo $file | |
done | |
unset IFS | |
shell: | |
bash | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-comma.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with specific files from a source file using a newline separator | |
id: changed-files-specific-newline-source-file | |
uses: ./ | |
with: | |
files_from_source_file: | | |
test/changed-files-list.txt | |
separator: "\n" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-specific-newline-source-file.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files for old new filenames test rename 1 | |
id: changed-files-all-old-new-renamed-files-1 | |
uses: ./ | |
with: | |
base_sha: d1c0ee4 | |
sha: 4d04215 | |
fetch_depth: 60000 | |
include_all_old_new_renamed_files: true | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-all-old-new-renamed-files-1.outputs) }}' | |
shell: | |
bash | |
- name: Check all_old_new_renamed_files output on non windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-1.outputs.all_old_new_renamed_files, 'test/test rename 1.txt,test/test rename-1.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected to include (test/test rename 1.txt,test/test rename-1.txt) got (${{ steps.changed-files-all-old-new-renamed-files-1.outputs.all_old_new_renamed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check all_old_new_renamed_files output on windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-1.outputs.all_old_new_renamed_files, 'test\\test rename 1.txt,test\\test rename-1.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected to not include (test\\test rename 1.txt,test\\test rename-1.txt) got (${{ steps.changed-files-all-old-new-renamed-files-1.outputs.all_old_new_renamed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check the renamed_files output on non windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-1.outputs.renamed_files, 'test/test rename-1.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected to include (test/test rename-1.txt) got (${{ steps.changed-files-all-old-new-renamed-files-1.outputs.renamed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check the renamed_files output on windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-1.outputs.renamed_files, 'test\\test rename-1.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected to not include (test\\test rename-1.txt) got (${{ steps.changed-files-all-old-new-renamed-files-1.outputs.renamed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Run changed-files for old new filenames test rename 2 | |
id: changed-files-all-old-new-renamed-files-2 | |
uses: ./ | |
with: | |
base_sha: 4d04215 | |
sha: fe238e6 | |
fetch_depth: 60000 | |
include_all_old_new_renamed_files: true | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-all-old-new-renamed-files-2.outputs) }}' | |
shell: | |
bash | |
- name: Check all_old_new_renamed_files output on non windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-2.outputs.all_old_new_renamed_files, 'test/test rename 2.txt,test/test rename-2.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected to include (test/test rename 2.txt test/test rename-2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2.outputs.all_old_new_renamed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check all_old_new_renamed_files output on windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-2.outputs.all_old_new_renamed_files, 'test\\test rename 2.txt,test\\test rename-2.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected to not include (test\\test rename 2.txt test/test rename-2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2.outputs.all_old_new_renamed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check the renamed_files output on non windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-2.outputs.renamed_files, 'test/test rename-2.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected to include (test/test rename-2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2.outputs.renamed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check the renamed_files output on windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-2.outputs.renamed_files, 'test\\test rename-2.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected to not include (test\\test rename-2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2.outputs.renamed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Run changed-files for old new filenames test rename 2 output as deleted and added | |
id: changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added | |
uses: ./ | |
with: | |
base_sha: 4d04215 | |
sha: fe238e6 | |
fetch_depth: 60000 | |
include_all_old_new_renamed_files: true | |
output_renamed_files_as_deleted_and_added: true | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs) }}' | |
shell: | |
bash | |
- name: Check all_old_new_renamed_files output on non windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.all_old_new_renamed_files, 'test/test rename 2.txt,test/test rename-2.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected to include (test/test rename 2.txt test/test rename-2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.all_old_new_renamed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check all_old_new_renamed_files output on windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.all_old_new_renamed_files, 'test\\test rename 2.txt,test\\test rename-2.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected to not include (test\\test rename 2.txt test\\test rename-2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.all_old_new_renamed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check deleted_files output on non windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.deleted_files, 'test/test rename 2.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected to include (test/test rename 2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.deleted_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check deleted_files output on windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.deleted_files, 'test\\test rename 2.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected to not include (test\\test rename 2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.deleted_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check added_files output on non windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.added_files, 'test/test rename-2.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected to include (test/test rename-2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.added_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check added_files output on windows platform | |
if: "!contains(steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.added_files, 'test\\test rename-2.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected to not include (test\\test rename-2.txt) got (${{ steps.changed-files-all-old-new-renamed-files-2-output-as-deleted-and-added.outputs.added_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Run changed-files with specific files | |
id: changed-files-specific | |
uses: ./ | |
with: | |
files: | | |
.github/workflows/test.yml | |
action.yml | |
**/test.txt | |
files_ignore: | | |
test/test/test.txt | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-specific.outputs) }}' | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_changed on non windows platform | |
if: "contains(steps.changed-files-specific.outputs.all_changed_files, 'test/test/test.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test/test/test.txt) got (${{ steps.changed-files-specific.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_changed on windows platform | |
if: "contains(steps.changed-files-specific.outputs.all_changed_files, 'test\\test\\test.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test\\test\\test.txt) got (${{ steps.changed-files-specific.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Verify any_changed for specific files on non windows platform | |
if: "!contains(steps.changed-files-specific.outputs.all_changed_files, 'action.yml') && !contains(steps.changed-files-specific.outputs.all_changed_files, '.github/workflows/test.yml') && !contains(steps.changed-files-specific.outputs.all_changed_files, 'test/test.txt') && runner.os != 'Windows'" | |
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: Verify any_changed for specific files on windows platform | |
if: "!contains(steps.changed-files-specific.outputs.all_changed_files, 'action.yml') && !contains(steps.changed-files-specific.outputs.all_changed_files, '.github\\workflows\\test.yml') && !contains(steps.changed-files-specific.outputs.all_changed_files, 'test\\test.txt') && runner.os == 'Windows'" | |
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: Check if a excluded file is not included in any_modified on non windows platform | |
if: "contains(steps.changed-files-specific.outputs.all_modified_files, 'test/test/test.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test/test/test.txt) got (${{ steps.changed-files-specific.outputs.all_modified_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_modified on windows platform | |
if: "contains(steps.changed-files-specific.outputs.all_modified_files, 'test\\test\\test.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test\\test\\test.txt) got (${{ steps.changed-files-specific.outputs.all_modified_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Verify any_modified for specific files on non windows platform | |
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') && !contains(steps.changed-files-specific.outputs.all_modified_files, 'test/test.txt') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific.outputs.any_modified }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_modified }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_modified for specific files on windows platform | |
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') && !contains(steps.changed-files-specific.outputs.all_modified_files, 'test\\test.txt') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific.outputs.any_modified }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_modified }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_deleted on non windows platform | |
if: "contains(steps.changed-files-specific.outputs.deleted_files, 'test/test/test.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test/test/test.txt) got (${{ steps.changed-files-specific.outputs.deleted_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_deleted on windows platform | |
if: "contains(steps.changed-files-specific.outputs.deleted_files, 'test\\test\\test.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test\\test\\test.txt) got (${{ steps.changed-files-specific.outputs.deleted_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Verify any_deleted for specific files on non windows platform | |
if: "!contains(steps.changed-files-specific.outputs.deleted_files, 'action.yml') && !contains(steps.changed-files-specific.outputs.deleted_files, '.github/workflows/test.yml') && !contains(steps.changed-files-specific.outputs.deleted_files, 'test/test.txt') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific.outputs.any_deleted }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_deleted }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_deleted for specific files on windows platform | |
if: "!contains(steps.changed-files-specific.outputs.deleted_files, 'action.yml') && !contains(steps.changed-files-specific.outputs.deleted_files, '.github\\workflows\\test.yml') && !contains(steps.changed-files-specific.outputs.deleted_files, 'test\\test.txt') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific.outputs.any_deleted }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_deleted }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Run changed-files with specific files comma check duplicates | |
id: changed-files-specific-duplicate-output | |
uses: ./ | |
with: | |
files: | | |
get-changed-paths.sh | |
*.sh | |
- name: Verify all_changed_files files has no duplicates | |
if: contains(steps.changed-files-specific-duplicate-output.outputs.all_changed_files, 'get-changed-paths.sh') | |
run: | | |
ALL_CHANGED_FILES=(${{ steps.changed-files-specific-duplicate-output.outputs.all_changed_files }}) | |
UNIQUE_ALL_CHANGED_FILES=$(echo "$ALL_CHANGED_FILES" | tr ' ' '\n' | sort -u | xargs) | |
if [[ "$ALL_CHANGED_FILES[@]" != "$UNIQUE_ALL_CHANGED_FILES[@]" ]]; then | |
echo "Duplicate output: Expected "$UNIQUE_ALL_CHANGED_FILES" got $ALL_CHANGED_FILES" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify all_changed_and_modified_files files has no duplicates | |
if: contains(steps.changed-files-specific-duplicate-output.outputs.all_changed_and_modified_files, 'get-changed-paths.sh') | |
run: | | |
ALL_CHANGED_AND_MODIFIED_FILES=(${{ steps.changed-files-specific-duplicate-output.outputs.all_changed_and_modified_files }}) | |
UNIQUE_ALL_CHANGED_AND_MODIFIED_FILES=$(echo "$ALL_CHANGED_AND_MODIFIED_FILES" | tr ' ' '\n' | sort -u | xargs) | |
if [[ "$ALL_CHANGED_AND_MODIFIED_FILES[@]" != "$UNIQUE_ALL_CHANGED_AND_MODIFIED_FILES[@]" ]]; then | |
echo "Duplicate output: Expected "$UNIQUE_ALL_CHANGED_AND_MODIFIED_FILES" got $ALL_CHANGED_AND_MODIFIED_FILES" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify all_modified_files files has no duplicates | |
if: contains(steps.changed-files-specific-duplicate-output.outputs.all_modified_files, 'get-changed-paths.sh') | |
run: | | |
ALL_MODIFIED_FILES=(${{ steps.changed-files-specific-duplicate-output.outputs.all_modified_files }}) | |
UNIQUE_ALL_MODIFIED_FILES=$(echo "$ALL_MODIFIED_FILES" | tr ' ' '\n' | sort -u | xargs) | |
if [[ "$ALL_MODIFIED_FILES[@]" != "$UNIQUE_ALL_MODIFIED_FILES[@]" ]]; then | |
echo "Duplicate output: Expected "$UNIQUE_ALL_MODIFIED_FILES" got $ALL_MODIFIED_FILES" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Run changed-files with specific files comma separator | |
id: changed-files-specific-comma | |
uses: ./ | |
with: | |
files: | | |
.github/workflows/test.yml | |
action.yml | |
separator: "," | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-specific-comma.outputs) }}' | |
shell: | |
bash | |
- name: Verify any_changed files comma separator on non windows platform | |
if: "!contains(steps.changed-files-specific-comma.outputs.all_changed_files, 'action.yml') && !contains(steps.changed-files-specific-comma.outputs.all_changed_files, '.github/workflows/test.yml') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-comma.outputs.any_changed }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma.outputs.any_changed }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_changed files comma separator on windows platform | |
if: "!contains(steps.changed-files-specific-comma.outputs.all_changed_files, 'action.yml') && !contains(steps.changed-files-specific-comma.outputs.all_changed_files, '.github\\workflows\\test.yml') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-comma.outputs.any_changed }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma.outputs.any_changed }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_modified files comma separator on non windows platform | |
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') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-comma.outputs.any_modified }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma.outputs.any_modified }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_modified files comma separator on windows platform | |
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') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-comma.outputs.any_modified }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma.outputs.any_modified }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_deleted files comma separator on non windows platform | |
if: "!contains(steps.changed-files-specific-comma.outputs.deleted_files, 'action.yml') && !contains(steps.changed-files-specific-comma.outputs.deleted_files, '.github/workflows/test.yml') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-comma.outputs.any_deleted }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma.outputs.any_deleted }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_deleted files comma separator on windows platform | |
if: "!contains(steps.changed-files-specific-comma.outputs.deleted_files, 'action.yml') && !contains(steps.changed-files-specific-comma.outputs.deleted_files, '.github\\workflows\\test.yml') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-comma.outputs.any_deleted }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma.outputs.any_deleted }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Run changed-files with specific files pipe separator | |
id: changed-files-specific-pipe | |
uses: ./ | |
with: | |
files: | | |
**/test.yml | |
action.yml | |
separator: "|" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-specific-pipe.outputs) }}' | |
shell: | |
bash | |
- name: Verify any_changed files comma separator on non windows platform | |
if: "!contains(steps.changed-files-specific-pipe.outputs.all_changed_files, 'action.yml') && !contains(steps.changed-files-specific-pipe.outputs.all_changed_files, '.github/workflows/test.yml') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-pipe.outputs.any_changed }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-pipe.outputs.any_changed }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_changed files comma separator on windows platform | |
if: "!contains(steps.changed-files-specific-pipe.outputs.all_changed_files, 'action.yml') && !contains(steps.changed-files-specific-pipe.outputs.all_changed_files, '.github\\workflows\\test.yml') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-pipe.outputs.any_changed }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-pipe.outputs.any_changed }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_modified files comma separator on non windows platform | |
if: "!contains(steps.changed-files-specific-pipe.outputs.all_modified_files, 'action.yml') && !contains(steps.changed-files-specific-pipe.outputs.all_modified_files, '.github/workflows/test.yml') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-pipe.outputs.any_modified }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-pipe.outputs.any_modified }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_modified files comma separator on windows platform | |
if: "!contains(steps.changed-files-specific-pipe.outputs.all_modified_files, 'action.yml') && !contains(steps.changed-files-specific-pipe.outputs.all_modified_files, '.github\\workflows\\test.yml') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-pipe.outputs.any_modified }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-pipe.outputs.any_modified }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_deleted files comma separator on non windows platform | |
if: "!contains(steps.changed-files-specific-pipe.outputs.deleted_files, 'action.yml') && !contains(steps.changed-files-specific-pipe.outputs.deleted_files, '.github/workflows/test.yml') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-pipe.outputs.any_deleted }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-pipe.outputs.any_deleted }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_deleted files comma separator on windows platform | |
if: "!contains(steps.changed-files-specific-pipe.outputs.deleted_files, 'action.yml') && !contains(steps.changed-files-specific-pipe.outputs.deleted_files, '.github\\workflows\\test.yml') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-pipe.outputs.any_deleted }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-pipe.outputs.any_deleted }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Run changed-files with specific files forward slash separator | |
id: changed-files-specific-forward-slash | |
uses: ./ | |
with: | |
files: | | |
.github/workflows/test.yml | |
action.yml | |
separator: "/" | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-specific-forward-slash.outputs) }}' | |
shell: | |
bash | |
- name: Verify any_changed files forward slash separator on non windows platform | |
if: "!contains(steps.changed-files-specific-forward-slash.outputs.all_changed_files, 'action.yml') && !contains(steps.changed-files-specific-forward-slash.outputs.all_changed_files, '.github/workflows/test.yml') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-forward-slash.outputs.any_changed }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-forward-slash.outputs.any_changed }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_changed files forward slash separator on windows platform | |
if: "!contains(steps.changed-files-specific-forward-slash.outputs.all_changed_files, 'action.yml') && !contains(steps.changed-files-specific-forward-slash.outputs.all_changed_files, '.github\\workflows\\test.yml') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-forward-slash.outputs.any_changed }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-forward-slash.outputs.any_changed }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_modified files forward slash separator on non windows platform | |
if: "!contains(steps.changed-files-specific-forward-slash.outputs.all_modified_files, 'action.yml') && !contains(steps.changed-files-specific-forward-slash.outputs.all_modified_files, '.github/workflows/test.yml') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-forward-slash.outputs.any_modified }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-forward-slash.outputs.any_modified }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_modified files forward slash separator on windows platform | |
if: "!contains(steps.changed-files-specific-forward-slash.outputs.all_modified_files, 'action.yml') && !contains(steps.changed-files-specific-forward-slash.outputs.all_modified_files, '.github\\workflows\\test.yml') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-forward-slash.outputs.any_modified }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-forward-slash.outputs.any_modified }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_deleted files forward slash separator on non windows platform | |
if: "!contains(steps.changed-files-specific-forward-slash.outputs.deleted_files, 'action.yml') && !contains(steps.changed-files-specific-forward-slash.outputs.deleted_files, '.github/workflows/test.yml') && runner.os != 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-forward-slash.outputs.any_deleted }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-forward-slash.outputs.any_deleted }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_deleted files forward slash separator on windows platform | |
if: "!contains(steps.changed-files-specific-forward-slash.outputs.deleted_files, 'action.yml') && !contains(steps.changed-files-specific-forward-slash.outputs.deleted_files, '.github\\workflows\\test.yml') && runner.os == 'Windows'" | |
run: | | |
if [[ "${{ steps.changed-files-specific-forward-slash.outputs.any_deleted }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-forward-slash.outputs.any_deleted }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Run changed-files with specific files from a source file | |
id: changed-files-specific-source-file | |
uses: ./ | |
with: | |
files_from_source_file: | | |
test/changed-files-list.txt | |
test/changed-files-list.txt | |
files: | | |
**/workflows/greetings.yml | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-specific-source-file.outputs) }}' | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_changed on non windows platform | |
if: "contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'test/test/test.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test/test/test.txt) got (${{ steps.changed-files-specific-source-file.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_changed on windows platform | |
if: "contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'test\\test\\test.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test\\test\\test.txt) got (${{ steps.changed-files-specific-source-file.outputs.all_changed_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Verify any_changed from source files on non windows platform | |
if: | | |
( | |
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'action.yml') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, '.github/workflows/test.yml') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'test/test.txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'test/test2/test.txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, 'test/test2/test3/test4/test.txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, '[test new].txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_changed_files, '.github/workflows/greetings.yml') && | |
runner.os != 'Windows' | |
) | |
run: | | |
if [[ "${{ steps.changed-files-specific-source-file.outputs.any_changed }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-source-file.outputs.any_changed }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_modified on non windows platform | |
if: "contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'test/test/test.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test/test/test.txt) got (${{ steps.changed-files-specific-source-file.outputs.all_modified_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_modified on windows platform | |
if: "contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'test\\test\\test.txt') && runner.os == 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test\\test\\test.txt) got (${{ steps.changed-files-specific-source-file.outputs.all_modified_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Verify any_modified from source files on non windows platform | |
if: | | |
( | |
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'action.yml') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, '.github/workflows/test.yml') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'test/test.txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'test/test2/test.txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, 'test/test2/test3/test4/test.txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, '[test new].txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.all_modified_files, '.github/workflows/greetings.yml') && | |
runner.os != 'Windows' | |
) | |
run: | | |
if [[ "${{ steps.changed-files-specific-source-file.outputs.any_modified }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-source-file.outputs.any_modified }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_deleted on non windows platform | |
if: "contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'test/test/test.txt') && runner.os != 'Windows'" | |
run: | | |
echo "Invalid output: Expected not to include (test/test/test.txt) got (${{ steps.changed-files-specific-source-file.outputs.deleted_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Check if a excluded file is not included in any_deleted on windows platform | |
if: contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'test\\test\\test.txt') | |
run: | | |
echo "Invalid output: Expected not to include (test\\test\\test.txt) got (${{ steps.changed-files-specific-source-file.outputs.deleted_files }})" | |
exit 1 | |
shell: | |
bash | |
- name: Verify any_deleted from source files on non windows platform | |
if: | | |
( | |
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'action.yml') && | |
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, '.github/workflows/test.yml') && | |
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'test/test.txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'test/test2/test.txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, 'test/test2/test3/test4/test.txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, '[test new].txt') && | |
!contains(steps.changed-files-specific-source-file.outputs.deleted_files, '.github/workflows/greetings.yml') && | |
runner.os != 'Windows' | |
) | |
run: | | |
if [[ "${{ steps.changed-files-specific-source-file.outputs.any_deleted }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-source-file.outputs.any_deleted }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-specific-source-file.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with specific files from a source file using a comma separator | |
id: changed-files-specific-comma-source-file | |
uses: ./ | |
with: | |
files_from_source_file: | | |
test/changed-files-list.txt | |
separator: "," | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-specific-comma-source-file.outputs) }}' | |
shell: | |
bash | |
- name: Verify any_changed files comma separator from source files on non windows platform | |
if: | | |
( | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, 'action.yml') && | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, '.github/workflows/test.yml') && | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, 'test/test.txt') && | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, 'test/test2/test.txt') && | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, 'test/test2/test3/test4/test.txt') && | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_changed_files, '[test new].txt') && | |
runner.os != 'Windows' | |
) | |
run: | | |
if [[ "${{ steps.changed-files-specific-comma-source-file.outputs.any_changed }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma-source-file.outputs.any_changed }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify any_modified files comma separator from source files on non windows platform | |
if: | | |
( | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, 'action.yml') && | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, '.github/workflows/test.yml') && | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, 'test/test.txt') && | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, 'test/test2/test.txt') && | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, 'test/test2/test3/test4/test.txt') && | |
!contains(steps.changed-files-specific-comma-source-file.outputs.all_modified_files, '[test new].txt') && | |
runner.os != 'Windows' | |
) | |
run: | | |
if [[ "${{ steps.changed-files-specific-comma-source-file.outputs.any_modified }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-comma-source-file.outputs.any_modified }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v7 | |
if: github.event_name == 'pull_request' && matrix.fetch-depth == 0 | |
- uses: nrwl/nx-set-shas@v3 | |
id: last_successful_commit | |
if: github.event_name == 'pull_request' && github.event.action != 'closed' && matrix.fetch-depth == 0 | |
with: | |
main-branch-name: ${{ steps.branch-name.outputs.base_ref_branch }} | |
workflow-id: 'test.yml' | |
- name: Run changed-files with a custom base sha | |
if: github.event_name != 'push' && github.event.action != 'closed' && matrix.fetch-depth == 0 && steps.last_successful_commit.outputs.base != steps.last_successful_commit.outputs.head | |
id: changed-files-custom-base-sha | |
uses: ./ | |
with: | |
base_sha: ${{ steps.last_successful_commit.outputs.base }} | |
- name: Show output | |
if: github.event_name == 'pull_request' && github.event.action != 'closed' && matrix.fetch-depth == 0 | |
run: | | |
echo '${{ toJSON(steps.changed-files-custom-base-sha.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with custom sha | |
id: changed-files-custom-sha | |
if: github.event_name == 'pull_request' && github.event.action != 'closed' | |
uses: ./ | |
with: | |
sha: ${{ github.event.pull_request.head.sha }} | |
- name: Show output | |
if: github.event.action != 'closed' | |
run: | | |
echo '${{ toJSON(steps.changed-files-custom-sha.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with the pull request base sha and head sha | |
id: changed-files-pull-request-base-sha-head-sha | |
if: github.event_name == 'pull_request' && github.event.action != 'closed' | |
uses: ./ | |
with: | |
base_sha: ${{ github.event.pull_request.base.sha }} | |
sha: ${{ github.event.pull_request.head.sha }} | |
- name: Show output | |
if: github.event.action != 'closed' | |
run: | | |
echo '${{ toJSON(steps.changed-files-pull-request-base-sha-head-sha.outputs) }}' | |
shell: | |
bash | |
- name: Run changed-files with specific files (only-changed) | |
id: changed-files-specific-only-changed | |
uses: ./ | |
with: | |
files: | | |
.github/**/test.yml | |
- name: Verify only_changed files | |
if: steps.changed-files-specific-only-changed.outputs.other_changed_files != '' | |
run: | | |
if [[ "${{ steps.changed-files-specific-only-changed.outputs.only_changed }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-only-changed.outputs.only_changed }})" | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Verify only_deleted files | |
if: steps.changed-files-specific-only-changed.outputs.other_deleted_files != '' | |
run: | | |
if [[ "${{ steps.changed-files-specific-only-changed.outputs.only_deleted }}" != "false" ]]; then | |
echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific-only-changed.outputs.only_deleted }})." | |
exit 1 | |
fi | |
shell: | |
bash | |
- name: Show output | |
run: | | |
echo '${{ toJSON(steps.changed-files-specific-only-changed.outputs) }}' | |
shell: | |
bash |