잘못된 커밋을 방지하고 Lefthook으로 코드를 테스트하고 Flutter와 통합하는 방법
시작하려면 OS에 따라 다르며 Ubuntu 및 Debian과 같은 Linux 배포판에는 두 가지 다른 방법이 있습니다.
curl
사용:curl -1sLf 'https://dl.cloudsmith.io/public/evilmartians/lefthook/setup.deb.sh' | sudo -E bash
sudo apt install lefthook
curl이 설치되어 있지 않으면 다음을 입력하십시오.
sudo apt install curl
다음을 입력하기만 하면 됩니다.
snap install --classic lefthook
macOS를 사용하는 경우 Homebrew 으로 시도해 볼 수 있습니다.
brew install lefthook
이 단계 후에 컴퓨터에 레프트후크가 설치되어 있어야 합니다. 사용 방법을 살펴보겠습니다.
프로젝트에서 사용하려면 터미널로 이동한 다음 루트로 이동해야 합니다. 그런 다음
lefthook install
를 입력하고 lefthook.yml
라는 파일을 프로젝트에 만들어야 합니다. 이 예에서는 Flutter 프로젝트를 실행하고 명령을 실행하면 아래와 같은 결과를 볼 수 있습니다.pre-commit
, pre-push
및 commit-msg
와 같은 커밋 프로세스의 특정 순간에 몇 가지 명령을 설정할 수 있습니다. 이러한 명령은 내부에 있는 커밋 프로세스에 따라 실행됩니다. 예를 보여 드리겠습니다.pre-commit:
parallel: true
commands:
tests:
run: flutter test
analyze:
run: flutter analyze
위의 이 코드 블록에서는 커밋 프로세스가 완료되기 전에 몇 가지 작업을 병렬로 실행하고 있습니다. 이 경우 Flutter 테스트를 실행하고 분석하고 커밋은 이러한 작업이 완료된 경우에만 완료됩니다. 예시
pre-push:
parallel: true
commands:
tests:
run: flutter test
이제 위의 이 코드 블록을 사용하면 푸시 프로세스가 시작된 경우에만 작업이 실행됩니다. 이 경우 Flutter 테스트를 실행하고 있으며 모든 테스트가 성공적으로 완료되면 커밋만 수행됩니다.
마치려면
commit-msg
블록을 사용하는 방법을 알아보겠습니다. 우리의 경우 기존 커밋 사양을 기반으로 커밋 메시지를 확인합니다. 이 개념에 대해 모르는 경우 click here 할 수 있으므로 이동하겠습니다. , 이 예에서는 bin
라는 폴더를 만들고 그 안에 commit_message.dart
라는 파일을 만들어야 합니다. 결과는 다음과 같아야 합니다.내부
bin/commit_message.dart
파일에 아래 코드를 삽입할 수 있습니다.import 'dart:io';
dynamic main() {
final rootDir = Directory.current;
final commitFile = File("${rootDir.path}/.git/COMMIT_EDITMSG");
final commitMessage = commitFile.readAsStringSync();
final regExp = RegExp(
r'(bugfix|feature|hotfix|none|chore|refactor|doc|style|test)(\(\w+\):\s?)(\[\w+-\d+])(.+)',
);
final valid = regExp.hasMatch(commitMessage);
if (!valid) exitCode = 1;
}
이 파일은 기본적으로 커밋 메시지를 받은 다음 정규식을 전달하여 기존 커밋과 관련이 있는지 확인하고 마지막으로
lefthook.yml
파일에 넣을 수 있습니다.commit-msg:
commands:
validate:
run: flutter pub run bin/commit_message.dart
이를 통해 메시지 커밋이 예상한 것과 일치하는지 확인하기 위해 생성된 파일을 실행합니다. 제 경우 최종 결과는 다음과 같습니다.
pre-commit:
parallel: true
commands:
tests:
run: flutter test
analyze:
run: flutter analyze
lint_code:
glob: '*.dart'
run: dart fix --dry-run lib && git add .
format_code:
glob: '*.dart'
run: flutter format {staged_files} && git add .
commit-msg:
commands:
validate:
run: flutter pub run bin/commit_message.dart
지금까지 이 도구를 통합하여 명확한 메시지로 커밋을 보다 안전하고 깨끗하게 유지하는 방법을 배웠습니다. 마음에 드셨기를 바라며 다음 기사에서 뵙겠습니다.
Lefthook repo
Reference
이 문제에 관하여(잘못된 커밋을 방지하고 Lefthook으로 코드를 테스트하고 Flutter와 통합하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/matteuus/how-to-prevent-bad-commits-and-test-code-with-lefthook-and-integrate-with-flutter-1ni4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)