워크플로 트리거

완료됨

아무도 코드 리포지토리의 주 분기에 직접 변경 내용을 푸시할 수 없습니다. 개발이 필요한 경우 분기의 코드 복사본을 변경하는 것이 가장 좋습니다.

일반적인 방법은 기능 분기로 작업하는 것입니다. 여기서 분기는 기능에서 작업하는 데 사용됩니다. 예를 들어 데이터 과학 팀은 모델 성능을 개선해야 할 수 있으며 하이퍼 매개 변수 값을 실험하여 이를 시도할 것입니다. 팀은 분기를 만들고 교육 스크립트에서 하이퍼 매개 변수 값을 업데이트할 수 있습니다. 실험이 완료되면 데이터 과학자는 브랜치를 주 리포지토리와 병합하는 풀 리퀘스트를 만들 수 있습니다.

분기 및 끌어오기 요청을 사용하면 기본 분기와 병합하기 전에 코드에 대한 모든 변경 내용을 확인할 수 있습니다. 또한 끌어오기 요청은 GitHub Actions 트리거로 사용되어 자동 코드 품질 검사와 같이 코드에 대한 제안된 업데이트를 따라야 하는 작업을 자동화할 수도 있습니다.

자동화와 함께 기능 기반 개발을 사용하려면 다음을 수행해야 합니다.

  • 기본으로의 직접 푸시를 차단하는 분기 보호 규칙을 만듭니다.
  • 코드를 업데이트할 분기를 만듭니다.
  • 끌어오기 요청을 열 때 GitHub Actions 워크플로를 트리거합니다.

분기 보호 규칙 만들기

코드를 보호하려면 메인 브랜치에 대한 직접 푸시를 차단해야 합니다. 직접 푸시 차단은 아무도 코드 변경 내용을 기본 분기에 직접 푸시할 수 없음을 의미합니다. 대신 끌어오기 요청을 병합하여 기본 분기를 변경할 수 있습니다.

메인 브랜치를 보호하려면 GitHub에서 분기 보호 규칙을 활성화합니다.

  1. 리포지토리의 설정 탭으로 이동합니다.
  2. 설정 탭의 코드 및 자동화에서 분기를 선택합니다.
  3. 규칙 추가를 선택합니다.
  4. 분기 이름 패턴main을 입력합니다.
  5. 병합 전에 끌어오기 필요승인 필요를 사용하도록 설정합니다.
  6. 변경 내용을 저장합니다.

GitHub에서 분기 보호 규칙을 구성하는 스크린샷

코드를 업데이트할 분기를 만듭니다.

코드를 편집하려고 할 때마다 분기를 만들고 해당 분기에서 작업해야 합니다. 변경 내용을 최종으로 변경하려면 끌어오기 요청을 만들어 기능 분기를 기본 분기와 병합할 수 있습니다.

GitHub Actions 워크플로 트리거

마지막으로 끌어오기 요청 만들기를 GitHub Actions 워크플로의 트리거로 사용할 수 있습니다. 예를 들어 누군가가 코드를 변경할 때마다 일부 코드 품질 검사를 실행하려고 합니다.

편집된 코드가 품질 검사를 통과하고 누군가가 제안된 변경 내용을 확인한 경우에만 끌어오기 요청을 실제로 병합하려고 합니다.

GitHub Actions 워크플로를 트리거하려면 on: [pull_request]을 사용할 수 있습니다. 이 트리거를 사용하면 끌어오기 요청을 만들 때마다 워크플로가 실행됩니다.

끌어오기 요청이 병합될 때마다 워크플로를 실행하려면 다른 트리거를 사용해야 합니다. 끌어오기 요청을 병합하는 것은 기본적으로 기본 분기에 푸시하는 것입니다. 따라서 끌어오기 요청이 병합될 때 워크플로가 실행되도록 트리거하려면 GitHub Actions 워크플로에서 다음 트리거를 사용합니다.

on:
  push:
    branches:
      - main