풀 리퀘스트를 부팅해서 리뷰하기

2 hours ago 2

trynix-preview는 PR 댓글에 브라우저 부팅 링크를 남기는 GitHub Action으로, 리뷰어가 저장소를 복제하거나 직접 빌드하지 않고 PR 빌드를 테스트할 수 있게 함 trynix.dev가 브라우저 탭에서 Linux를 부팅하고 Nix 캐시에서 PR 빌드를 가져오며, Action은 nix eval로 확인한 스토어 경로를 캐시 URL·공개 키와 함께 전달함 대상 경로는 미리 빌드해 캐시에 저장해야 하며, Action 자체는 빌드·캐싱·게시를 수행하지 않고 특정 Nix 캐시 제공업체에도 종속되지 않음 포크의 PR 실행에는 보안상 주의가 필요하며, PR 빌드용 캐시를 주 캐시와 분리하거나 유지보수자의 /trynix 댓글로 실행하는 방식을 사용할 수 있음 큰 바이너리는 실행에 1~2분이 걸릴 수 있어, 현재는 중소형 바이너리의 브라우저 기반 리뷰에 가장 적합함 브라우저에서 PR 빌드 실행하기 trynix-preview는 trynix.dev로 PR 빌드를 부팅하는 링크를 댓글에 남김 앞선 trynix 구상은 임의의 /nix/store 경로를 브라우저에서 부팅하는 데서 출발했으며, 이를 리뷰어의 테스트·검증·피드백에 활용함 sqlelf의 포크에서 보낸 PR #31에서 실제 동작을 볼 수 있음 브라우저 부팅 링크를 열면 탭 안에서 Linux가 부팅되고 해당 PR의 sqlelf가 PATH에 놓임 리뷰어는 저장소 복제나 빌드 없이 사용할 수 있으며, 별도 서버·SSH·VPN·Docker·VM·클라우드를 준비할 필요가 없음 빌드와 캐시를 연결하는 워크플로 기존 워크플로가 빌드와 캐시 저장을 담당하고, Action은 준비된 결과를 연결할 뿐 직접 빌드·캐싱·게시하지 않음 예제는 cachix/cachix-action@v17로 캐시를 설정하고 nix build .#default로 빌드한 뒤 fzakaria/trynix@v1을 실행함 입력값은 cache, publicKey, attrs이며, 예제의 attrs 값은 .#default임 여러 경로를 부팅하려면 attrs에 여러 속성을 지정할 수 있음 스토어 경로는 nix eval로 확인하고, 캐시 URL·공개 키와 함께 브라우저에 전달함 특정 캐시 제공업체에 종속되지 않음 Cachix는 오픈소스용으로 최대 5GiB 무료여서 권장함 포크의 PR을 실행할 때의 보안 조건 전체 trynix.yaml 예제는 포크의 PR 코드를 체크아웃하므로, actions/checkout에 allow...

Read Entire Article