Skip to content

A simple github action that validates if all files in a given folder match the given regex pattern.

License

Notifications You must be signed in to change notification settings

scheduleonce/lint-filenames

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace
 
 

Repository files navigation

Lint Filenames action

build-test action status code-ql status license MIT

Lint Filenames is an simple github action to help you ensure certain patterns are followed in a given folder in your repository.

Sample Report

Inputs

path

Required A glob path to search for files.

pattern

Required The escaped regex pattern to match for each of the files in the given directory.

  • NOTE: the pattern needs to have all backslashes (\) escaped, i.e. for each \ you need to replace with \\.
  • Example: /^\d+\.jpg$/ should be /^\\d+\\.jpg$/.

For more examples, see ./test.js.

Outputs

total-files-analyzed

The number of files analyzed.

Example usage

to ensure all files match the pattern /^.+\..+$/ in the my-files directory, use the following:

uses: batista/lint-filenames@v1
name: Validating my-folder filenames
with:
  path: './my-folder'
  pattern: '^.+\\..+$'

Development

Install the dependencies

$ npm install

Build the typescript and package it for distribution

$ npm run build && npm run package

Run the tests ✔️

$ npm test

 PASS  __tests__/validate-filenames.test.ts
  Name of the group
    ✓ 01 - Passes for any character files (10 ms)
    ✓ 02 - Passes for `name.ext` files (1 ms)
    ✓ 03 - Passes for `.dotfiles` (1 ms)
    ✓ 04 - Passes for no `.dotfiles`
    ✓ 05 - Passes for files with `a` in the name (1 ms)
    ✓ 06 - Passes for json files `*.json` (1 ms)
    √ 07 - Passes for folders (3 ms)

Test Suites: 1 passed, 1 total
Tests:       7 passed, 7 total
Snapshots:   0 total
Time:        0.559 s, estimated 2 s
Ran all test suites.

Publish to a distribution branch

Actions are run from GitHub repos so we will checkin the packed dist folder.

Then run ncc and push the results:

$ npm run package
$ git add dist
$ git commit -a -m "prod dependencies"
$ git push origin releases/v1

Your action is now published! 🚀

See the versioning documentation

Validate

You can now validate the action by referencing ./ in a workflow in your repo (see test.yml)

uses: ./
with:
  path: './__tests__/test-files/06-json-files'
  pattern: "\\.json$"

See the actions tab for runs of this action! 🚀

Usage:

After testing you can create a v1 tag to reference the stable and latest V1 action

About

A simple github action that validates if all files in a given folder match the given regex pattern.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 96.7%
  • JavaScript 3.3%