CI 및 기타 통합 설정
빌드에서 형식 차이가 발생할 경우 실패하도록, 당신은 (그리고 이렇게 해야 합니다) CI 파이프라인을 설정하여 Oxfmt를 실행해야 합니다.
이 페이지에서는 리뷰 전에 커밋 전 훅과 같은 다른 통합 기능도 다룹니다.
CI
GitHub Actions
package.json에 이미 fmt:check 스크립트가 없다면 먼저 추가하세요:
{
"scripts": {
"fmt:check": "oxfmt --check"
}
}그런 다음, GitHub Actions 워크플로우에 작업을 추가하세요:
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 워크플로우입니다:
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.2GitLab CI
GitLab CI를 사용하는 경우, CI 파이프라인의 일부로 코드 형식을 강제 적용할 수 있도록 oxfmt를 설정할 수 있습니다.
먼저, package.json에 이미 fmt:check 스크립트가 없다면 추가하세요:
{
"scripts": {
"fmt:check": "oxfmt --check"
}
}그런 다음, .gitlab-ci.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에 다음을 추가하세요:
{
"lint-staged": {
"*": "oxfmt --no-error-on-unmatched-pattern"
}
}의존성 설치 시 자동으로 git 훅을 설치하려면 husky도 고려해보세요.
