GitHub Actions를 사용하여 Node.js 애플리케이션 빌드 및 테스트

Do you have node.js project that has specs and you want to make sure these specs run when you push your code to GitHub repo? Well you must setup CI in your project to avoid failing specs to be pushed to remote origin. Read this article to learn how can you setup CI for node.js project using GitHub Actions.



사양을 실행하기 위한 Node.js 템플릿



GitHub는 기본 또는 마스터 분기로 푸시할 때마다 사양을 실행하고 종속성을 설치하기 위한 Node.js 워크플로 템플릿을 제공합니다. the node.js GitHub template here에 대해 자세히 알아보세요.

내 Node.js 워크플로 템플릿 파일 단계


  • 하나의 node.js 버전12.x에서만 사양을 실행하고 싶습니다.
  • main.yaml 폴더에 .github/workflows 파일을 만들었습니다.

  • 내 node.js 프로젝트에 대해 생성한 워크플로는 다음과 같습니다.

    GitHub용 Main.yaml 전체 node.js 템플릿




    name: Node.js CI
    
    on:
      push:
        branches: [main]
      pull_request:
        branches: [main]
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
          - name: Use Node.js
            uses: actions/setup-node@v2
            with:
              node-version: '12.x'
              registry-url: https://registry.npmjs.org
              scope: '@octocat'
          - run: npm ci
          - run: npm run build --if-present
          - run: npm run test:once
    
    


    GitHub 워크플로를 실행하여 node.js 사양 테스트



    GitHub 작업에서 내 코드를 푸시하면 내 CI 빌드가 통과하는 것을 볼 수 있습니다. 나는 지금 행복하다😄



    실패한 테스트에 대한 GitHub 워크플로 실행



    사양에 실패하고 코드를 푸시하겠습니다.



    GitHub 작업을 살펴보고 빌드가 통과하는지 확인해 볼까요?



    아니요, 내 저장소에 실패한 기호가 표시됩니다.

    작업을 확인하겠습니다. 빌드가 실패했음을 알 수 있습니다.



    자세한 오류는 다음과 같습니다.



    기분이 어떻습니까? 다르게 설정했습니까? 제가 할 수 있는 개선 사항을 알려주셨습니까?

    GitHub Actions를 사용하여 리포지토리 구성원의 푸시를 거부하려면 어떻게 해야 합니까?



    푸시를 방지하기 위해 GitHub Actions를 사용할 수 없습니다. 그렇게 하려면 사전 수신 후크가 필요합니다. GitHub의 클라우드 버전은 현재 이를 지원하지 않지만 GitHub Enterprise Server(온프레미스 버전)는 지원합니다.

    stack-overflow answer here을 읽으십시오.

    GitHub 작업에서 빌드가 실패한 경우 푸시를 거부하려면 어떻게 해야 합니까?



    따라서 기본적으로 내 프로젝트에서 따르는 규칙은 다음과 같습니다.
  • 각 작업에 대해 항상 기능 분기를 만듭니다.
  • 기능이 있는 경우 분기 빌드가 통과됩니다.
  • 그런 다음 코드를 기본/마스터 분기에만 병합합니다.

  • 아무도 메인/마스터 브랜치에 직접 푸시하지 않는 브랜치 정책을 항상 설정할 수 있습니다. 누구나 풀 리퀘스트를 작성해야 합니다.

    그렇게 하면 마스터/메인 브랜치에서 코드 기반을 보호할 수 있습니다.

    도움이 되었기를 바랍니다.

    푸시에서 실행하기 위해 GitHub 작업 CI를 건너뛰는 방법



    readme 파일 등과 같은 프로젝트 문서를 업데이트하고 코드를 푸시하고 빌드, 테스트 및 배포 등을 위해 전체 CI를 실행하지 않으려는 경우 때때로 커밋 주석에서 트릭 사용[skip CI]을 사용하십시오. 또한 워크플로우 템플릿에 필터를 추가하여 커밋 주석에 텍스트가 있는 경우[skip CI] 빌드를 실행하지 마십시오.

    워크플로 템플릿에 아래 식을 추가합니다.

    if: "!contains(github.event.head_commit.message, '[skip CI]')"
    
    


    Check my template file .

    다음은 GitHub 작업에서 ci 빌드를 건너뛰는 예입니다.
    chore: updating readme [skip CI]
    내 CI 빌드가 실행되지 않음을 참조하십시오.





    이 기사가 저와 같은 GitHub 작업 및 node.js의 모든 초보자에게 도움이 되기를 바랍니다!


    제 글을 끝까지 읽어주셔서 감사합니다. 오늘 특별한 것을 배웠기를 바랍니다. 이 기사가 마음에 드셨다면 친구들과 공유해 주시고 저와 공유할 제안이나 생각이 있으시면 댓글 상자에 적어주세요.

    풀 스택 개발자 되기 💻



    나는 Fullstack Master에서 가르칩니다. 소프트웨어 개발자가 되고 새로운 소프트웨어 엔지니어 또는 수석 개발자/설계자로 캐리어를 성장시키려는 경우. 전체 스택 개발 교육 프로그램에 가입하는 것을 고려하십시오. 많은 코딩 실습을 통해 Angular, RxJS, JavaScript, 시스템 아키텍처 등을 배우게 됩니다. All-Access Monthly 멤버십 플랜이 있으며 모든 비디오 코스, 슬라이드, 소스 코드 다운로드 및 월간 화상 통화에 무제한으로 액세스할 수 있습니다.
  • 현재 및 미래의 Angular, node.js 및 관련 과정에 액세스하려면 All-Access Membership PRO plan을 구독하십시오.
  • PRO 플랜의 모든 것을 얻으려면 All-Access Membership ELITE plan에 가입하세요. 또한 Rupesh와의 월별 라이브 Q&A 화상 통화에 액세스할 수 있으며 의심/질문을 하고 더 많은 도움, 팁 및 요령을 얻을 수 있습니다.

  • 여러분의 밝은 미래가 여러분을 기다리고 있습니다. 오늘FullstackMaster을 방문하여 꿈의 소프트웨어 회사에 새로운 소프트웨어 개발자, 설계자 또는 수석 엔지니어 역할로 참여할 수 있도록 도와드리겠습니다.

    💖 나에게 👋라고 말해!
    루페시 티와리
    Fullstack Master의 설립자
    이메일: [email protected]
    웹사이트: RupeshTiwari.com

    좋은 웹페이지 즐겨찾기