표준 뱅킹 데모를 사용한 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
는 워크플로가 실행하는 작업 목록입니다백엔드 작업 추가
첫 번째 작업은 다음과 같은 일련의 단계를 수행합니다.
각 작업은 작업 목록의 새 항목이며 다른 작업과 동시에 실행됩니다.
작업은 사용하는 러너와 실행하는 작업 또는 단계의 순서를 선언해야 합니다.
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
npm install
및 npm 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가지 고급 기능을 공유하겠습니다. 이 기능을 놓치지 마세요!
Reference
이 문제에 관하여(표준 뱅킹 데모를 사용한 GitHub 작업: 첫 번째 워크플로 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/entando/github-actions-using-the-standard-banking-demo-put-your-first-workflow-in-action-g0h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)