GitHub 프로젝트의 종속성 자동 업데이트

소프트웨어나 프로젝트의 관련성을 유지하기 위해서는 반드시 끊임없이 개선하고 유지보수해야 한다.이것은 보통 버그 복구, 기능 요청 추가, 성능 최적화, 업데이트 의존 항목 등과 관련된다.
관리와 갱신 의존 관계는 프로젝트를 유지하는 관건적인 부분이다.우리는 종종 이 임무를 소홀히 하고, 그것에 관심을 거의 갖지 않는다. 왜냐하면 이것은 이렇게 시간과 중복을 소모하는 일이기 때문이다.새로운 지점을 만들고 의존 항목을 업데이트하고 테스트를 한 다음 통합시켜야 하며, 실제 업무를 무시해야 한다.의존항을 자주 업데이트하지 않으면 프로젝트에 오류와 치명적인 고장이 발생하기 쉬우므로 복구하는 데 더 많은 시간이 필요합니다.
만약 우리가 이 임무를 누군가나 어떤 일에 위탁할 수 있다면?본고에서, 나는 당신에게 WhiteSource Renovate 도구를 사용하여 의존항 업데이트를 자동으로 관리하는 방법을 보여 드리겠습니다. 그러면 당신은 자신이 좋아하는 일: 나쁜 코드를 작성하는 것에 전념할 수 있습니다.
Renove는 소스 코드 의존 항목의 최신 상태를 유지하기 위해 자동으로 요청을 끌어오는 무료 도구입니다.저장소의 패키지 관리자 파일 (예: package.json (npm/Thread) 의 의존항을 스캔하고 요청을 발견할 때 업데이트 요청을 제출합니다.
그러나 우선 의존관계가 무엇인지 확실히 알아야 한다.

소프트웨어/코드 의존 관계는 무엇입니까?


의존항은 제3자 소프트웨어 패키지나 라이브러리를 포함하고 귀하는 이 소프트웨어 패키지나 라이브러리를 한 항목에 추가하여 즉각적인 기능을 얻을 수 있습니다.유행하는 프로그래밍 조언은 바퀴를 재발명하지 말라는 것이다.이것은 기존 해결 방안이 존재할 때 그것을 다시 사용해야 한다는 것을 의미한다. 처음부터 구축하는 것이 아니라.예를 들어 프로젝트에서 그림을 조작할 필요가 있다면, 코드를 작성하지 않고 npm에서 Jimp 패키지를 설치하고 사용할 것입니다.이제 Jimp는 내 프로젝트의 의존항이 되었다.

의존항을 정기적으로 업데이트하는 이유는 무엇입니까?


프로젝트를 유지하고, 때때로 윤색을 추가하는 것처럼, 의존 관계는 보통 저자와 발표된 새 버전으로 업데이트됩니다.프로젝트에 의존하기 때문에 보안/오류 복구, 성능 향상 및 새로운 기능/API를 놓치지 않도록 자주 업데이트하는 것이 현명합니다.
앞서 언급한 바와 같이, 의존항을 정기적으로 업데이트하지 못하면, 당신의 프로젝트는 보안 결함, 호환되지 않는 오류, 그리고 중단될 수 있습니다. 이것은 몇 시간, 심지어 며칠이 걸릴 수도 있습니다.가장 좋은 방법은 작은 버전 버프의 의존항을 정기적으로 업데이트하는 것입니다. Refrove는 이 문제를 해결할 수 있습니다.

왜 새로 고쳐야 합니까?


GitHub도 같은 기능인 신뢰성을 가지고 있다고 생각할 수도 있다.왜 나는 다른 공구를 사용해야 합니까?응, 몇 가지 특징이 나로 하여금 신뢰성보다 리모델링을 더 좋아하게 한다.이 문서를 작성할 때 업데이트:
  • Trusted No
  • 보다 지원package managers 증가
  • 는 원천을 개척한 것이기 때문에 언제든지 결정할 수 있다spin up your instance. 믿을 수 없는 약속 같지 않다
  • monorepo(단일 저장소/소프트웨어 패키지 아래의 여러 소프트웨어 패키지, 예를 들어 React) 업데이트를 하나의 당김 요청에 그룹으로 나누는 것은 창설individual pull requests for each package된 Releadot와 달리 후자는 추가 설정과 거의 같은 PRs를 대량으로 심사하게 된다.
  • 설정에 설정된 규칙에 따라 자동으로 통합된 업데이트 유형에 대해 세립도 제어를 한다.신뢰할 수 있는 약속은 자동 합병 또는 자동 합병을 선택할 수 있습니다.
  • GitHub 작업을 사용하여 GitHub에 새로 고침을 설정하는 방법


    GitHub Actions는 소프트웨어 개발의 생명 주기 내에 임무를 자동화하는 자동화 도구이다.
    본 논문에서는 의존 항목 업데이트가 자동으로 통합되기 전에 프로그램이 파괴되지 않도록 Refrove에 대한 테스트를 자동으로 실행할 것입니다.
    프로젝트에 GitHub 작업을 설정하려면 를 생성합니다.루트 폴더의github/workflowsdirectory입니다.workflows 폴더에 build-and-test.ymlfile라는 워크플로우 파일을 만들고 다음 코드를 추가합니다.
    name: Build and Test 
      on:  
        pull_request: 
          branches: [master]
    
      jobs:  
        build_and_test:    
          runs-on: ubuntu-latest 
          steps:      
            - uses: actions/checkout@v2
            - uses: actions/setup-node@v2-beta
            with:
              node-version: '12'     
            - run: npm install      
            - run: npm run build --if-present      
            - run: npm test
    
    위의 코드에서, 우리는 먼저 작업 흐름의 이름을 정의한다.이것은 선택할 수 있는 것이다.그리고 호스트에 요청을 할 때마다 build_and_test 작업 흐름 작업이 실행되어야 한다고 지정했습니다.우리는 또한 build_and_test 작업 흐름 작업이 Ubuntu 가상 기기와 노드 v.12에서 실행되어야 한다고 지정했다.
    구축 및 테스트 작업은 모든 프로젝트 의존항, 구축 및 실행 테스트를 설치하여 매번 실행할 때 아무런 문제가 발생하지 않도록 합니다.
    주의: npm 스크립트에서 지정한 테스트 명령만 실행합니다.
    워크플로우 파일 매개 변수에 대한 자세한 내용은 this를 참조하십시오.
    다음 단계는 마침내 새로 인테리어할 때가 되었다.
    응용 프로그램을 설치하려면 https://github.com/apps/renovate로 이동하십시오.설치 단추를 누르면 모든 저장소에 설치하거나 저장소만 선택합니다.현재는 지정된 저장소에서만 시작할 수 있습니다(항상 설정 페이지의 applications tab에서 수정할 수 있습니다).그런 다음 페이지 하단에 있는 녹색 설치 버튼을 클릭하면 저장소에 Refrove가 설정되고 입사 프로세스가 시작됩니다.
    저장소에 Refrove가 성공적으로 설치되면 다음과 같은 요청이 수신됩니다.

    PR을 검토하고 구성한 후 병합하여 실제 끌어오기 요청을 시작합니다.결합하면 REFRONE은 프로젝트 루트 폴더renovate.json 파일을 생성합니다.사용자 정의 설정을 추가할 것입니다.
    다음을 추가합니다.
    "packageRules": [
        {
          "updateTypes": [
            "minor",
            "patch"
          ],
          "automerge": true
        }
      ],
    
    
    여기서, 우리는 모든 부차적인 것과 패치 의존 항목의 업데이트가 자동으로 통합되어야 한다고 지정합니다.
    프로젝트를 구축하기 위해 GitHub 작업이 설정되어 있고, 모든pull에 테스트를 요청하기 때문에, 작업 흐름이 성공적으로 통과될 때만 Refrove가 자동으로 통합됩니다.
    주요 의존 버전에 대해 우리는 합병하기 전에 수동으로 검사하고 확인하기를 희망한다.
    이렇게축하드립니다. GitHub 프로젝트에 대한 자동 의존성 업데이트를 성공적으로 설정하셨습니다.
    비트버킷과 기틀랩에서도 같은 방식으로 리노브를 사용할 수 있다.정보를 얻기 위해 그들의 문서를 보십시오.
    만약 당신이 이 문장이 매우 식견이 있다고 생각한다면 박수를 쳐야 한다. myfrontend development blog에서 다른 식견이 있는 문장을 볼 수도 있고, 아마도 나에게 메시지를 남길 수 있을 것이다.
    안녕히 계세요.

    좋은 웹페이지 즐겨찾기