A GitHub Action that validates whether specified files exist in your repository. This action helps ensure that required files are present before proceeding with your workflow, which is useful for validation steps or pre-deployment checks.
Input | Description | Required |
---|---|---|
required-files |
Comma-separated list of files to check for existence | Yes |
Output | Description |
---|---|
exists |
'true' if all specified files exist |
steps:
- uses: actions/checkout@v4
- name: Validate configuration files
uses: chrisreddington/validate-file-exists@v0.0.1
with:
required-files: README.md
steps:
- uses: actions/checkout@v4
- name: Validate configuration files
uses: chrisreddington/validate-file-exists@v0.0.1
with:
required-files: 'README.md, .github/copilot-instructions.md'
steps:
- uses: actions/checkout@v4
- name: Validate critical files
id: validate
uses: chrisreddington/validate-file-exists@v0.0.1
with:
required-files: 'package.json, tsconfig.json, src/main.ts'
continue-on-error: true
- name: Handle validation failure
if: steps.validate.outcome == 'failure'
run: |
echo "Critical files are missing - this may affect the build"
exit 1
If any of the specified files are missing, the action will:
- Fail with a detailed error message listing all missing files
- Exit with a non-zero status code, which will cause the workflow to fail
Example error message:
Error: The following files do not exist: config.json, settings.yml
The action validates input parameters and provides clear error messages for common issues:
- Empty input: Throws error if no files are specified
- Invalid format: Handles cases with only commas or whitespace
- File filtering: Automatically filters out empty entries from comma-separated lists
Example validation errors:
Error: Input cannot be empty. Please provide a comma-separated list of files to validate.
Error: No valid files found in input. Please provide a comma-separated list of
file names.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.