Skip to content

github-action/job-id-casing

Enforce naming convention to job id.

📖 Rule Details

This rule enforces the consistent case usage of job ids.

yaml
jobs:
  unit-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
correct
yaml
# camelCase
jobs:
  unitTest:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# snake_case
jobs:
  unit_test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# PascalCase
jobs:
  UnitTest:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# Train-Case
jobs:
  Unit-Test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# SCREAMING_SNAKE_CASE
jobs:
  UNIT_TEST:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect

🔧 Options

Default casing is set to kebab-case.

ts
type AllowedCasing =
  | 'camelCase'
  | 'kebab-case'
  | 'PascalCase'
  | 'snake_case'
  | 'Train-Case'
  | 'SCREAMING_SNAKE_CASE'

type JobIdCasingOptions = [
  'error' | 'warn' | 'off' | 2 | 1 | 0,
  (
    | AllowedCasing
    | ({
        [key in AllowedCasing]?: boolean
      } & {
        ignores?: string[]
      })
  ),
]

"kebab-case" (default)

Examples of correct code for this rule with default option:

yaml
jobs:
  unit-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
correct

Examples of incorrect code for this rule with default option:

yaml
# camelCase
jobs:
  unitTest:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# snake_case
jobs:
  unit_test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# PascalCase
jobs:
  UnitTest:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# Train-Case
jobs:
  Unit-Test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# SCREAMING_SNAKE_CASE
jobs:
  UNIT_TEST:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect

"snake_case"

Examples of correct code for this rule with "snake_case" option:

yaml
jobs:
  unit_test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
correct

Examples of incorrect code for this rule with "snake_case" option:

yaml
# camelCase
jobs:
  unitTest:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# kebab-case
jobs:
  unit-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# PascalCase
jobs:
  UnitTest:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# Train-Case
jobs:
  Unit-Test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect
yaml
# SCREAMING_SNAKE_CASE
jobs:
  UNIT_TEST:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
incorrect

🚀 Version

This rule was introduced in eslint-plugin-github-action v0.0.3

🔍 Implementation