이 문제를 두고 이것저것 시도해 보다가 GitHub에서 해결책을 찾았습니다.
즉, 최근 CI 작업에 대한 녹색 체크 표시만으로는 충분하지 않습니다. 최근에 변경 사항이 있어 플러그인이 깨질 수 있기 때문입니다. 기본적으로 Discourse가 브랜치를 업데이트할 때 CI 작업을 다시 실행해야 합니다.
이 예시 저장소에서 효율적인 해결책을 마련했습니다. 기본적으로 Discourse 저장소의 중요한 브랜치를 확인하여 변경 사항이 있는지 보는 예약된 워크플로우입니다. 변경 사항이 있으면 테스트 스위트를 실행해야 하는 일반 CI 워크플로우를 트리거합니다. 그런 다음 readme에 배지를 배치하여 최신 변경 사항에 대해 CI 워크플로우가 어떻게 실행되었는지 보여줄 수 있습니다.
모니터링 워크플로우는 몇 초 만에 실행됩니다. 따라서 예약 시 GitHub Action 시간을 1분만 소모하게 됩니다.
물론 이 전체 설정의 신뢰성은 플러그인/테마 컴포넌트 개발자가 좋은 테스트 스위트를 만드는 데 기울이는 노력에 달려 있습니다.
또한 Discourse의 “업데이트” 페이지에서 특정 버전의 최신 CI 작업이 실패했는지 여부를 알 수 없는 UX 문제가 여전히 남아 있습니다.
따라서 Discourse 브랜치가 변경될 때 플러그인을 다시 빌드하는 모니터링 워크플로우를 갖추는 것 외에도, 결과(성공/실패)를 기록하는 빌드 아티팩트를 생성해야 합니다. 플러그인 메타데이터에서 이 아티팩트를 가리킬 수 있어야 하며, Discourse는 업데이트 인터페이스에서 호환성/결과를 표시하기 위해 이 아티팩트를 가져와야 합니다.
이것은 foolproof(완벽한) 구성은 아니지만, 어쨌든 어떤 해결책은 됩니다.