Skip to content

CI 및 기타 통합 설정

빌드에서 형식 차이가 발생할 경우 실패하도록, 당신은 (그리고 이렇게 해야 합니다) CI 파이프라인을 설정하여 Oxfmt를 실행해야 합니다.

이 페이지에서는 리뷰 전에 커밋 전 훅과 같은 다른 통합 기능도 다룹니다.

CI

GitHub Actions

package.json에 이미 fmt:check 스크립트가 없다면 먼저 추가하세요:

package.json
json
{
  "scripts": {
    "fmt:check": "oxfmt --check"
  }
}

그런 다음, GitHub Actions 워크플로우에 작업을 추가하세요:

.github/workflows/ci.yml
yaml
name: CI

on:
  pull_request:
  push:
    branches: [main]

permissions: {}

jobs:
  format:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - uses: pnpm/action-setup@v4

      - uses: actions/setup-node@v6
        with:
          node-version: lts/*
          cache: pnpm

      # 또는 yarn, npm 등
      - run: pnpm install --frozen-lockfile
      - run: pnpm run fmt:check

형식 문제 자동 수정

당신이 종종 프로젝트 요청(기본적으로는 브랜치 병합 요청)을 열기 전에 oxfmt를 실행하는 것을 잊어버리는 경우, 또는 커밋 전 훅을 사용하지 못하거나 사용할 수 없는 경우, autofix.ci를 사용하여 CI 워크플로우에 자동 수정 단계를 추가할 수 있습니다.

자세한 내용은 https://autofix.ci/setup를 참조하세요. 또한 관련된 GitHub 앱을 설치해야 할 수도 있습니다.

아래는 사용할 수 있는 예제 GitHub Actions 워크플로우입니다:

.github/workflows/autofix.yml
yaml
name: autofix.ci # 이 이름을 사용해야 합니다

on:
  pull_request:
  push:
    branches: ["main"]

permissions:
  contents: read

jobs:
  autofix:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - uses: pnpm/action-setup@v4

      - uses: actions/setup-node@v6
        with:
          node-version: lts/*
          cache: pnpm

      # 또는 yarn, npm 등
      - run: pnpm install --frozen-lockfile

      # oxfmt를 실행하여 변경 사항을 쓰고, 변경 사항이 있으면 autofix.ci가 커밋합니다.
      # 이미 `package.json`에 `fmt` 스크립트가 없다면 반드시 추가하세요.
      - run: pnpm run fmt

      # 참고: 이 액션에 대해 버전 번호 대신 최신 SHA 해시를 사용하는 것이 강력히 권장됩니다. (자세한 정보는 https://autofix.ci/setup 참조)
      - uses: autofix-ci/action@1.3.2

GitLab CI

GitLab CI를 사용하는 경우, CI 파이프라인의 일부로 코드 형식을 강제 적용할 수 있도록 oxfmt를 설정할 수 있습니다.

먼저, package.json에 이미 fmt:check 스크립트가 없다면 추가하세요:

package.json
json
{
  "scripts": {
    "fmt:check": "oxfmt --check"
  }
}

그런 다음, .gitlab-ci.yml 파일에 정규적인 형식이 올바르게 적용되었는지 확인하기 위한 작업을 추가하세요:

.gitlab-ci.yml
yml
oxfmt:
  image: node:lts
  stage: test
  before_script:
    # 또는 pnpm, yarn 등
    - npm install
  script:
    - npm run fmt:check

또한 패키지 매니저의 캐시를 추가하여 설치 속도를 높일 수 있습니다.

커밋 전 훅

스테이징된 파일을 자동으로 형식화하려면 oxfmt --no-error-on-unmatched-pattern을 사용하세요. 이 옵션은 지원되는 모든 파일을 형식화하고, 일치하는 파일이 없을 때 오류를 방지합니다(예: 스테이징된 파일이 오직 Ruby 파일만 포함된 경우).

파일을 작성하지 않고 형식을 확인하려면 --check를 사용하세요.

lint-staged를 사용하는 경우, package.json에 다음을 추가하세요:

package.json
json
{
  "lint-staged": {
    "*": "oxfmt --no-error-on-unmatched-pattern"
  }
}

의존성 설치 시 자동으로 git 훅을 설치하려면 husky도 고려해보세요.