어떻게 환매 협의 패키지의 의존 관계를 자동으로 갱신합니까

사진 작성자Andrea De SantisUnsplash

TL;박사 01 명
의존항을 자동으로 업데이트하기 위해 신뢰성 테스트를 실현하는 방법을 알고 dep가 업데이트된pr을 열면 이 요청에서 테스트를 실행하고 성공하면 자동으로 통합됩니다.

개발자로서의 일상적인 임무
개발자의 업무는 보통 할리우드 영화를 가리키는데, 이 영화에서 똑똑한 사람이나 해커가 타자를 치고 있고, 우리는 스크린에서 각종 녹색 코드를 볼 수 있다.아니면 모니터 불빛만 볼 수 있는 검은색 방.
그러나 개발자의 업무는 대부분의 업무와 같다.그것은 매일 해결해야 할 문제, 이해해야 할 일상적인 임무를 가지고 문제를 해결하는 최선의 방법을 생각한다.그리고 다른 어떤 일과 마찬가지로 일상적인 임무도 있고 하루의 시간이 필요할 수도 있다.
너는 식당을 차리는 것과 같은 개발자의 일상적인 업무를 비교해 볼 수 있다.매일 식당에 들어가면 창문을 열고 불을 켜고 마루를 청소하고 접시를 씻고 의자를 열어야 한다. 내가 말한 것처럼 일상적인 임무다.
내 가방의 의존 관계를 갱신하는 것은 이런 일상적인 임무 중의 하나이다.그리고 프로젝트의 발전에 따라 수동으로 그것을 보존하는 것은 점점 어려워진다.

자동화
GitHub을 사용하여 작업을 추상화하기 쉽습니다.
  • 특정 의존 항목을 업데이트하는 새로운 인출 요청의 신뢰성 OT 설정을 매일 엽니다.
  • 이pull 요청 내부의 응용 프로그램에서 테스트를 실행하는 GitHub 작업이 열렸습니다
  • 만약pull이 내부 검사에 성공하면 이pull이 요청한 Github 조작을 합병합니다.

  • These flows work together. So, it is important to write tests to have the dependabot working every day and these tests being responsible to identify problems with the updates.



    신뢰성 구성
    매일 신뢰할 수 있는 프로그램을 실행하고 프로그램 내부의 의존 항목에서 업데이트를 찾을 수 있도록 설정을 추가합니다.
  • 루트 디렉터리에 있는 항목에 .github라는 폴더가 있을 수 있습니다.없으면 지금 수동으로 만듭니다.
  • 새 파일을 만들고 Correlateot라고 명명합니다.yml
  • 코드를 밑에 놓으세요.
  • version: 2
    updates:
      - package-ecosystem: npm
        directory: '/'
        schedule:
          interval: daily
          time: '01:00'
        open-pull-requests-limit: 10
    
    이 yml 파일은 신뢰성 OT에 대한 구성을 설정합니다.
  • 매일 당김 요청
  • 을 엽니다.
  • 간격은 01:00
  • 최대 100
  • 신뢰할 수 있는 모든 인출 요청은 소유자 저장소
  • 에 새로운 알림을 가져옵니다.

    워크플로 폴더
    GitHub 작업을 만들기 전에 워크플로 폴더가 존재하지 않으면 워크플로 폴더를 만들어야 합니다.
  • 내부에 새 폴더를 만들고 워크플로우
  • 로 이름 지정

    GitHub 작업 테스트

    important: this flow is responsible to run your application tests. So, it is expected a jest environment is already configured. If you don't have it yet it is a good time to start to write tests.


    열려 있는 모든pull 요청에서 저장소의 모든 테스트를 실행하는 GitHub 작업을 만듭니다.
  • workflows 폴더에 새 파일을 만들고 이름.github
  • 코드를 밑에 놓으세요.
  • name: tests
    
    on:
      push:
        branches:
          - main
      pull_request:
        branches:
          - main
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
          - name: Setup Node.js
            uses: actions/setup-node@v2
            with:
              node-version: "14"
          - run: yarn
          - run: yarn jest
    
    이 yml 파일은 다음을 담당하는 새 작업을 설정합니다.
  • 주 지점에서 모든pull 요청의 내부 실행 모든 테스트를 통합합니다.
  • thread 명령을 실행하여 모든 의존 항목을 설치합니다.
  • 그리고 모든 테스트를 실행하기 위해 실 농담을 실행합니다.

  • 신뢰성 자동 통합 GitHub 작업
    Relationot에서 연 pull 요청을 자동으로 병합하는 GitHub 작업을 만듭니다.이 작업은 모든 체크가 녹색이면 자동으로 병합됩니다.
  • 워크플로에 새 파일을 만들고 이름을 test.yml로 지정합니다.
  • 코드를 밑에 놓으세요.
  • name: auto-merge
    
    on:
      pull_request_target:
        branches:
          - main
    
    jobs:
      auto-merge:
        runs-on: ubuntu-latest
        if: github.actor == 'dependabot[bot]'
        steps:
          - uses: ahmadnassri/[email protected]
            with:
              github-token: ${{ secrets.AUTOMERGE_TOKEN }}
              command: 'squash and merge'
              target: minor
    
    이 yml 파일은 다음을 담당하는 새 작업을 설정합니다.
  • 요청 참여자를 끌어당기는 것이'믿을 만한 로봇'일 때
  • ahmadnassri/[email protected] 사용 예정
  • pull이 요청한 검사 결과가 녹색
  • 이면'압출과 합병'을 실행합니다
  • target minor
  • 에서 의존항을 업데이트하는pull 요청에만 적용
  • 패키지 종속성 알림을 보는 데 시간을 낭비하지 않습니다
  • auto-merge.yml 폴더는 다음과 같습니다.

    새pull 요청에서 변경 사항을 업데이트하고 신기한 일이 일어나기 시작합니다.


    위의 인쇄 요청: https://github.com/daniloab/graphql-real-world-server/pull/115

    use this pull request as an example about how to implement this blog post https://github.com/daniloab/graphql-real-world-server/pull/69



    자동화에 오신 걸 환영합니다.
    이제 애플리케이션에 새로운 자동화 기능이 추가되어 일상적인 작업을 원활하게 수행할 수 있게 되었습니다. 이러한 작업을 수동으로 수행해야 하는 시간이 늘어날수록 애플리케이션에 새로운 투자를 시작할 수 있습니다.

    왜 자동화
    너는 테스트를 쓰는 시간을 줄이기 위해 더 많은 테스트를 써야 한다.매일 응용 프로그램의 의존 항목을 업데이트해야 합니다. 그렇지 않으면 생각보다 빨리 유류 응용 프로그램을 가질 수 있습니다.
    이 프로세스에 대한 질문이나 견해가 있으면 언제든지 DM에 전화하십시오.
    Patreonhttps://www.patreon.com/daniloab에서 저를 지원하여 오픈 소스 작업을 돕습니다.
  • 공부.
  • 나의 분쟁에 가입하여 나의 모든 내용을 무료로 지도받을 수 있다.

    좋은 웹페이지 즐겨찾기