잘못된 커밋을 방지하고 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.)