React Native 라이브러리의 PR 검토 프로세스 자동화
PR 검토는 오픈 소스 라이브러리 관리의 중요한 부분입니다. 그러나 바쁜 생활로 인해 상당한 시간과 노력이 필요할 수 있습니다. 즉, 가능한 한 효율적이어야 합니다.
내 전체 도구 체인은 검토 프로세스를 가능한 한 쉽게 만들기 위해 설정되었습니다. 이번에는 검토 프로세스를 훨씬 더 간단하게 만들기 위해 Github 작업 워크플로를 만들 것입니다.
라이브러리에 제기된 모든 PR에는 다음 검사가 자동으로 수행됩니다.
PR이 전송되는 즉시 검토 작업 흐름의 진행 상황을 볼 수 있어야 합니다. ﹣
위 이미지는 내rex-state 라이브러리의 PR에서 가져온 것입니다. 이를 효과적으로 구현할 수 있는 방법을 살펴보겠습니다.
내 .github/workflows/review.yml 라이브러리의 rex-state 파일에서 내 작업 검토 워크플로를 찾을 수 있습니다.
워크플로 트리거
이 워크플로는 모든 풀 요청에서 실행됩니다.
name: review
on: pull_request
린팅 및 테스트
이 단계는 빌드 워크플로에서 수행한 것과 동일합니다. 다른 모든 작업은 린팅 및 테스트가 완료된 후에만 실행됩니다.
lint:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/setup-node@master
with:
node-version: 12.x
- run: npx yarn bootstrap
- run: npx yarn typescript
- run: npx yarn lint
test:
strategy:
matrix:
platform: [ubuntu-latest, macOS-latest]
node: ['12.x']
name: test/node ${{ matrix.node }}/${{ matrix.platform }}
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@master
- uses: actions/setup-node@master
with:
node-version: ${{ matrix.node }}
- run: npx yarn bootstrap
- run: npx yarn test
커버리지 보고서
이전 빌드 단계에서 Code Climate를 사용하여 테스트 커버리지 보고서를 저장했습니다. 그러나 PR에서는 들어오는 코드의 테스트 범위를 빠르게 확인할 수 있는 방법이 필요합니다.
이를 위해 romeovs/lcov-reporter-action 테스트 커버리지 세부 정보와 함께 PR에 멋진 댓글을 게시할 수 있습니다. 댓글 ﹣ 다음과 같은 보고서를 받게 됩니다.
커버리지를 댓글로 받기 위해 다음 구성 추가 ﹣
coverage:
needs: [test, lint]
name: coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/setup-node@master
with:
node-version: 12.x
- run: npx yarn bootstrap
- run: npx yarn test --coverage
- uses: romeovs/[email protected]
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
업데이트된 스토리북 문서의 미리보기 배포
Netlify Github 앱을 사용하고 있었기 때문에 추가 설정 없이 즉시 배포 미리 보기를 받을 수 있습니다. Github 작업으로 배포 미리 보기를 수동으로 활성화하려는 경우 Netlify CLI을 시도할 수 있습니다.
예제 앱의 버전 검토
여기에서 엑스포 툴체인의 힘이 빛을 발합니다. expo-cli를 사용하여 검토 목적으로 사용할 수 있는 별도의 채널에 앱을 게시할 수 있습니다.
엑스포 팀은 또한 documentation에 대한 자세한 내용expo-github-action을 제공했습니다. 워크플로에 다음 구성을 추가합니다(
msg
의 URL을 애플리케이션의 URL로 바꿉니다)﹣ expo-publish:
needs: [test, lint]
name: Publish to Expo 🚀
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12.x
- uses: expo/expo-github-action@v5
with:
expo-version: 3.x
expo-username: ${{ secrets.EXPO_CLI_USERNAME }}
expo-password: ${{ secrets.EXPO_CLI_PASSWORD }}
- run: npx yarn bootstrap
- run: expo publish --release-channel=pr-${{ github.event.number }}
working-directory: example
- uses: unsplash/comment-on-pr@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
msg: App is ready for review, you can [see it here](https://expo.io/@daniakash/rex-state-example?release-channel=pr-${{ github.event.number }}).
이제부터 모든 PR에 대해 다음과 같은 댓글을 받게 됩니다 ﹣
반음계에 이야기 보내기
마지막으로 PR이 스토리에 영향을 미쳤는지 시각적 검토를 위해 스토리를 반음계로 보낼 수 있습니다. 구성은 마지막 구성과 동일하며, 크로매틱은 데이터가 PR에서 온 것임을 알아낼 만큼 똑똑합니다!
chromatic:
needs: [test, lint]
name: Publish storybook to chromatic 🧪
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12.x
- run: npx yarn bootstrap
- run: npx yarn chromatic
working-directory: example
env:
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
모든 준비가 완료되면 PR에는 매번 수동으로 확인해야 하는 사항에 대한 자세한 정보가 포함됩니다 ﹣
이제 강력한 검토 워크플로가 생겼습니다. 에서 GitHub에서 새 릴리스를 만들 때마다 라이브러리를 NPM에 게시합시다!
Reference
이 문제에 관하여(React Native 라이브러리의 PR 검토 프로세스 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dani_akash_/automating-the-review-process-of-your-react-native-library-s-prs-4457텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)