개요
견고한 Discourse 확장 기능을 구축하려면 플러그인 또는 테마 컴포넌트에 지속적 통합(CI)을 포함하는 것이 현명할 수 있습니다. 이를 통해 오류를 조기에 감지하고 코드 내 버그 발생 가능성을 줄일 수 있습니다.
GitHub Actions를 사용하여 빌드와 테스트를 자동화하는 CI 워크플로를 설정하는 것은 Discourse 팀이 모든 컴포넌트에 사용하는 방법이며, 여러분도 동일한 방식을 권장합니다.
설정 방법
GitHub Actions의 자동화 워크플로를 추가하여 오류를 감지하려면 저장소의 루트 디렉터리에 .github/workflows 폴더를 생성해야 합니다.
workflows 폴더 안에는 GitHub Actions가 실행해야 할 자동화 작업을 정의할 수 있습니다. 예를 들어, 린팅과 테스트를 위한 .yml 파일 등이 될 수 있습니다.
플러그인과 테마 컴포넌트 모두에 사용할 수 있는 템플릿 워크플로를 준비했습니다. 이 템플릿은 여기에 있는 ‘재사용 가능한 워크플로’ 정의와 연결됩니다.
템플릿 스켈레톤 저장소에서 GitHub의 이 템플릿 사용 버튼을 클릭하면 템플릿을 기반으로 한 플러그인/테마 컴포넌트 저장소를 생성할 수 있습니다.
대신, 워크플로를 추가하려는 기존 프로젝트가 있다면 관련 워크플로를 저장소의 .github/workflows/ 폴더로 복사하기만 하면 됩니다:
플러그인: discourse-plugin.yml
테마 및 테마 컴포넌트: discourse-theme.yml
이 템플릿은 재사용 가능한 워크플로의 특정 주요 버전으로 고정되어 있습니다. 워크플로에 적용되는 작은 개선 사항은 테마/플러그인에 자동으로 반영됩니다. 파괴적 변경 사항(예: 새로운 린터 도입)이 있을 경우 재사용 가능한 워크플로의 주요 버전을 업데이트하며, 워크플로를 새 버전으로 가리키도록 수정해야 합니다.
자, 이제 설정이 완료되었습니다! 단순히 저장소에 커밋이나 PR을 생성하면 GitHub Actions가 워크플로를 자동으로 감지하고 작업을 시작합니다.
GitHub Actions는 각 테스트의 세부 사항을 표시하고, 실행 후 테스트가 통과했는지 실패했는지에 따라
또는
를 표시합니다.
테스트가 실패한 경우, 세부 사항을 클릭하면 실패한 항목에 대한 정보를 확인할 수 있으며, 이는 코드에 무엇이 잘못되었고 무엇을 수정해야 하는지에 대한 단서를 제공할 수 있습니다.
자체 테스트 추가
플러그인과 컴포넌트 테스트가 효과적으로 작동하려면 플러그인 또는 테마 컴포넌트에 대한 테스트를 작성하는 것이 중요합니다.
EmberJS를 사용하여 프론트엔드 테스트를 작성하는 방법에 대한 자세한 내용은 다음을 참조하세요:
- Write acceptance tests and component tests for Ember code in Discourse
- Introduction - Testing - Ember Guides
Rails를 사용하여 RSpec 테스트를 작성하는 방법에 대한 자세한 내용은 다음을 참조하세요:
예시
여러분의 편의를 위해, 견고한 테스트가 통합된 플러그인과 테마 컴포넌트 몇 가지를 선정했습니다:
| 플러그인 / 컴포넌트 | 클라이언트 사이드 테스트 | 서버 사이드 테스트 |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
이 문서는 버전 관리됩니다 - github에서 변경 사항을 제안하세요.
