표준 뱅킹 데모를 사용한 GitHub 작업: 첫 번째 워크플로 실행

Github 작업 워크플로 시작



이 기사를 이해하려면 Entando에서 제공하는 샘플 모듈식 프로젝트인 Standard Banking Demo 을 참조해야 합니다.

이 프로젝트에는 여러 애플리케이션이 포함되어 있으므로 애플리케이션당 하나의 워크플로를 생성하여 명확한 파이프라인으로 분리해야 합니다.

이 자습서에서는 Banking 마이크로 서비스 및 관련 마이크로 프런트엔드에 대한 워크플로를 정의합니다.

프로젝트를 체크아웃한 후 다음 위치에 파일을 생성합니다. .github/workflows/banking-plugin-ci.yml
파일 맨 위에 있는 전역 속성을 복사합니다.

name: Banking Plugin CI
on: push
env:
 PROJECT_NAME: banking-plugin
jobs:


  • name는 워크플로 이름
  • 입니다.
  • on 워크플로가 수신 대기 중인 트리거를 정의합니다
  • .
  • env 워크플로에 사용할 수 있는 재사용 가능한 환경 속성 목록을 정의합니다
  • .
  • jobs는 워크플로가 실행하는 작업 목록입니다
  • .

    백엔드 작업 추가



    첫 번째 작업은 다음과 같은 일련의 단계를 수행합니다.
  • 프로젝트 체크아웃
  • Java 11 설치
  • 백엔드 테스트 실행
  • 애플리케이션 패키징

  • 각 작업은 작업 목록의 새 항목이며 다른 작업과 동시에 실행됩니다.

    작업은 사용하는 러너와 실행하는 작업 또는 단계의 순서를 선언해야 합니다.

    jobs:
     backend:
       runs-on: ubuntu-latest
       steps:
    


    이 "백엔드"항목은 GitHub 작업 UI에서 사용된 작업 이름과 일치합니다.

    단계를 정의하려면 marketplace 의 기존 작업을 사용하거나 uses 를 사용하여 고유한 복합 작업을 생성하거나 run 를 사용하여 bash 명령을 실행할 수 있습니다.

    steps:
     - uses: actions/checkout@v2
     - uses: actions/setup-java@v1
       with:
         java-version: '11.x'
     - name: Run backend test
       run: |
         cd $GITHUB_WORKSPACE/$PROJECT_NAME
         chmod +x mvnw
         ./mvnw -ntp clean verify
     - name: Package application
       run: |
         cd $GITHUB_WORKSPACE/$PROJECT_NAME
         ./mvnw -ntp package -Pprod -DskipTests
    


    명령은 GitHub Actions에서 제공하거나 워크플로 또는 작업 수준에서 정의된 환경 변수 값( $GITHUB_WORKSPACE/$PROJECT_NAME )을 사용합니다.

    마이크로 프런트엔드에 대한 매트릭스 작업 추가



    매트릭스 기능을 사용하면 동일한 매트릭스 변수 값 구성으로 여러 작업을 실행할 수 있습니다.

    각 행렬 변수는 템플릿${{ matrix.NAME> }}을 통해 작업에서 사용할 수 있습니다(예: 아래 코드에서 ${{matrix.widget}}).

    official documentation 에서 행렬 기능에 대해 자세히 알아보십시오.

    매트릭스 작업 시작


  • backend 와 같은 들여쓰기 수준에서 micro-frontends 라는 새 항목을 추가합니다.

  • 행렬 변수를 사용하여 각 작업을 이름으로 구분합니다.

    name: ${{ matrix.widget }} micro frontend
    

  • 이전 작업 설명에서 러너 정의를 복사합니다.

  • 매트릭스 전략에 마이크로 프런트엔드 이름 목록을 추가합니다. fail-fast를 false로 설정하면 하나 이상의 작업이 실패하더라도 작업을 계속할 수 있습니다.

    strategy:
    fail-fast: false
    matrix:
    widget:
     - alert-bar-icon-react
     - dashboard-card-angular
     - dashboard-card-config
     - dashboard-card-react
     - transaction-table
    include:
     - widget: dashboard-card-angular
       test-script-name: test-ci
    

  • 코드를 체크아웃하고, NodeJS를 설치하고, npm installnpm test.를 모두 실행하는 단계를 추가합니다.

  • steps:
     - uses: actions/checkout@v2
     - uses: actions/[email protected]
       with:
         node-version: '14.15.0'
     - name: Run tests
       run: |
         cd $GITHUB_WORKSPACE/$PROJECT_NAME/ui/widgets/banking-widgets/${{ matrix.widget }}
         npm install
         npm run ${{ matrix.test-script-name || 'test' }}
    

    include 옵션을 사용하면 주어진 매트릭스 전략에 대한 특정 속성을 정의할 수 있습니다. Angular 위젯의 test-script-name는 고유하므로 include 기능을 활용하여 기본 이름에서 전환할 수 있습니다.

    최종 작업 정의는 다음과 같아야 합니다.

    micro-frontends:
     name: ${{ matrix.widget }} micro frontend
     runs-on: ubuntu-latest
     strategy:
       fail-fast: false
       matrix:
         widget:
           - alert-bar-icon-react
           - dashboard-card-angular
           - dashboard-card-config
           - dashboard-card-react
           - transaction-table
         include:
           - widget: dashboard-card-angular
             test-script-name: test-ci
     steps:
       - uses: actions/checkout@v2
       - uses: actions/[email protected]
         with:
           node-version: '14.15.0'
       - name: Run tests
         run: |
           cd $GITHUB_WORKSPACE/$PROJECT_NAME/ui/widgets/banking-widgets/${{ matrix.widget }}
           npm install
           npm run ${{ matrix.test-script-name || 'test' }}
    


    이 작업 구성은 이전 작업 외에 5개의 작업을 생성합니다.



    최종 워크플로우 정의




    name: Banking Plugin CI
    on: push
    env:
     PROJECT_NAME: banking-plugin
    jobs:
     backend:
       runs-on: ubuntu-latest
       steps:
         - uses: actions/checkout@v2
         - uses: actions/setup-java@v1
           with:
             java-version: '11.x'
         - name: Run backend test
           run: |
             cd $GITHUB_WORKSPACE/$PROJECT_NAME
             chmod +x mvnw
             ./mvnw -ntp clean test
         - name: Package application
           run: |
             cd $GITHUB_WORKSPACE/$PROJECT_NAME
             ./mvnw -ntp package -Pprod -DskipTests
     micro-frontends:
       name: ${{ matrix.widget }} micro frontend
       runs-on: ubuntu-latest
       strategy:
         fail-fast: false
         matrix:
           widget:
             - alert-bar-icon-react
             - dashboard-card-angular
             - dashboard-card-config
             - dashboard-card-react
             - transaction-table
           include:
             - widget: dashboard-card-angular
               test-script-name: test-ci
       steps:
         - uses: actions/checkout@v2
         - uses: actions/[email protected]
           with:
             node-version: '14.15.0'
         - name: Run tests
           run: |
             cd $GITHUB_WORKSPACE/$PROJECT_NAME/ui/widgets/banking-widgets/${{ matrix.widget }}
             npm install
             npm run ${{ matrix.test-script-name || 'test' }}
    


    결론



    first article 에서 GitHub Actions를 살펴본 후 Entando Standard Banking Demo의 실제 예를 사용하여 성공적인 워크플로를 구축하는 방법을 배웠습니다.

    필요에 따라 보안, 품질 스캔 및/또는 이벤트 UI 테스트와 같은 단계를 추가하도록 워크플로를 수정할 수 있습니다. 이러한 자동 게이트는 높은 수준의 우선 순위에 계속 초점을 맞추면서 애플리케이션이 기업의 요구 사항과 요구 사항을 계속 지원하도록 합니다.

    이 시리즈의 3부를 계속 지켜봐 주십시오. 제 상위 3가지 고급 기능을 공유하겠습니다. 이 기능을 놓치지 마세요!

    좋은 웹페이지 즐겨찾기