GitHub Actions를 사용하여 지속적 통합 설정하기

:mag: 개요

견고한 Discourse 확장을 구축하려면 플러그인 또는 테마 컴포넌트에 지속적 통합(CI)을 포함하는 것이 현명할 수 있습니다. 이를 통해 오류를 조기에 발견하고 코드에 버그가 발생할 가능성을 줄일 수 있습니다.

빌드와 테스트를 자동화하기 위해 GitHub Actions를 사용하여 CI 워크플로를 설정하는 것은 Discourse 팀이 모든 컴포넌트에 사용하는 방법이며, 여러분도 동일한 방식을 사용하는 것을 권장합니다.

:gear: 설정 방법

GitHub Actions를 통한 자동화된 워크플로를 추가하려면 저장소의 루트 디렉터리에 .github/workflows 폴더를 생성해야 합니다.

workflows 폴더 내부에서는 GitHub Actions가 실행해야 하는 자동화 작업을 정의할 수 있습니다. 예를 들어, 린팅과 테스트를 위한 .yml 파일이 될 수 있습니다.

플러그인테마 컴포넌트 모두를 위한 템플릿 워크플로를 작성해 두었으며, 이를 활용할 수 있습니다. 이 템플릿은 여기의 ‘재사용 가능한 워크플로’ 정의와 연결됩니다.

템플릿 스켈레톤 저장소에서 GitHub의 이 템플릿 사용 버튼을 클릭하면 템플릿 기반의 플러그인/테마 컴포넌트 저장소를 생성할 수 있습니다.

대신, 워크플로를 추가하려는 기존 프로젝트가 있다면 관련 워크플로를 저장소의 .github/workflows/ 폴더로 복사하기만 하면 됩니다:

:electric_plug: 플러그인: discourse-plugin.yml

:jigsaw: 테마 및 테마 컴포넌트: discourse-theme.yml

:point_up: 이 템플릿은 재사용 가능한 워크플로의 특정 주요 버전에 고정되어 있습니다. 워크플로에 적용하는 작은 개선 사항은 테마/플러그인에 자동으로 반영됩니다. 단, 깨짐 변경 사항(예: 새로운 린터 도입)의 경우 재사용 가능한 워크플로의 주요 버전을 높이고, 워크플로를 새 버전을 가리키도록 업데이트해야 합니다.

:tada: 완성! 이제 모든 준비가 끝났습니다. 저장소에 커밋이나 PR을 생성하기만 하면 GitHub Actions가 워크플로를 자동으로 감지하고 작업을 실행하기 시작합니다.

GitHub Actions는 각 테스트의 세부 사항을 표시하며, 실행 후 테스트가 통과했는지 실패했는지에 따라 :white_check_mark: 또는 :x: 중 하나를 표시합니다.

테스트가 실패한 경우 세부 정보를 클릭하면 실패한 항목에 대한 정보를 제공하여 코드에 문제가 무엇인지 및 무엇을 수정해야 하는지 단서를 얻을 수 있습니다.

예시 보기

:white_check_mark: 자체 테스트 추가

플러그인과 컴포넌트 테스트가 효과적으로 작동하려면 플러그인 또는 테마 컴포넌트에 대한 테스트를 작성하는 것이 중요합니다.

EmberJS를 사용한 프론트엔드 테스트 작성 방법은 아래를 참고하세요:

Rails를 사용한 RSpec 테스트 작성에 대한 자세한 내용은 아래를 참고하세요:

:bulb: 예시

여러분의 편의를 위해, 견고한 테스트가 통합된 플러그인과 테마 컴포넌트 중 몇 가지를 선정했습니다:


이 문서는 버전 관리됩니다 - github에서 변경 사항을 제안해 주세요.

15개의 좋아요