diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8b9c37d688b..d046f6b0155 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,9 +10,24 @@ on: - main jobs: - test-no-head-sha: + shellcheck: + name: Run shellcheck runs-on: ubuntu-latest + + steps: + - name: Checkout to branch + uses: actions/checkout@v2 + - name: shellcheck + uses: reviewdog/action-shellcheck@v1.5 + + test-no-head-sha: name: Test changed-files missing head sha + runs-on: ${{ matrix.platform }} + strategy: + fail-fast: false + matrix: + platform: [ubuntu-latest, macos-latest, windows-latest] + steps: - name: Checkout to branch uses: actions/checkout@v2 @@ -25,32 +40,43 @@ jobs: - name: Show output run: | echo "${{ toJSON(steps.changed-files.outputs) }}" + shell: + bash test: - runs-on: ubuntu-latest name: Test changed-files + runs-on: ${{ matrix.platform }} + strategy: + fail-fast: false + matrix: + platform: [ubuntu-latest, macos-latest, windows-latest] + steps: - name: Checkout - uses: actions/checkout@v2.3.4 + uses: actions/checkout@v2 with: fetch-depth: 0 - - name: shellcheck - uses: reviewdog/action-shellcheck@v1.5 - name: Run changed-files with defaults id: changed-files uses: ./ - name: Show output run: | echo "${{ toJSON(steps.changed-files.outputs) }}" + shell: + bash - name: List all modified files run: | for file in "${{ steps.changed-files.outputs.modified_files }}"; do echo $file done + shell: + bash - name: Run step when README.md changes if: contains(steps.changed-files.outputs.modified_files, 'README.md') run: | echo "Your README.md has been modified ${{ steps.changed-files.outputs.modified_files }}." + shell: + bash - name: Run changed-files with comma separator id: changed-files-comma uses: ./ @@ -59,6 +85,8 @@ jobs: - name: Show output run: | echo "${{ toJSON(steps.changed-files-comma.outputs) }}" + shell: + bash - name: Run changed-files with specific files id: changed-files-specific uses: ./ @@ -73,9 +101,13 @@ jobs: echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_changed }})" exit 1 fi + shell: + bash - name: Show output run: | echo "${{ toJSON(steps.changed-files-specific.outputs) }}" + shell: + bash - name: Run changed-files with specific files comma separator id: changed-files-specific-comma uses: ./ @@ -91,6 +123,10 @@ jobs: echo "Invalid output: Expected (false) got (${{ steps.changed-files-specific.outputs.any_changed }})" exit 1 fi + shell: + bash - name: Show output run: | echo "${{ toJSON(steps.changed-files-specific-comma.outputs) }}" + shell: + bash diff --git a/action.yml b/action.yml index 75038364553..fdf9d425154 100644 --- a/action.yml +++ b/action.yml @@ -18,30 +18,51 @@ inputs: outputs: added_files: description: List of added files. + value: ${{ steps.changed-files.outputs.added_files }} copied_files: description: List of copied files. + value: ${{ steps.changed-files.outputs.copied_files }} deleted_files: description: List of deleted files. + value: ${{ steps.changed-files.outputs.deleted_files }} modified_files: description: List of modified files. + value: ${{ steps.changed-files.outputs.modified_files }} renamed_files: description: List of renamed files. + value: ${{ steps.changed-files.outputs.renamed_files }} changed_files: description: List of changed files. + value: ${{ steps.changed-files.outputs.changed_files }} unmerged_files: description: List of unmerged files. + value: ${{ steps.changed-files.outputs.unmerged_files }} unknown_files: description: List of unknown files. + value: ${{ steps.changed-files.outputs.unknown_files }} all_changed_files: description: List of all changed files. + value: ${{ steps.changed-files.outputs.all_changed_files }} all_modified_files: description: List of all copied modified and added files. + value: ${{ steps.changed-files.outputs.all_modified_files }} any_changed: description: Return true only when any files provided using the files input have changed. + value: ${{ steps.changed-files.outputs.any_changed }} runs: - using: 'docker' - image: 'Dockerfile' + using: 'composite' + steps: + - run: | + bash $GITHUB_ACTION_PATH/entrypoint.sh + id: changed-files + shell: bash + env: + # INPUT_ is not available in Composite run steps + # https://github.community/t/input-variable-name-is-not-available-in-composite-run-steps/127611 + INPUT_TOKEN: ${{ inputs.github_token }} + INPUT_FILES: ${{ inputs.files }} + INPUT_SEPARATOR: ${{ inputs.separator }} branding: icon: file-text diff --git a/entrypoint.sh b/entrypoint.sh old mode 100644 new mode 100755