자습서: Microsoft Power Platform용 GitHub Actions를 사용하여 솔루션 배포 자동화
이 자습서에서는 다음을 수행하는 방법을 배우게 됩니다.
- 새로운 GitHub 리포지토리 만들기
- Microsoft Power Platform용 GitHub 작업을 사용하여 두 개의 GitHub 워크플로 만들기
워크플로는 개발 환경에서 앱(비관리형 솔루션으로)을 자동으로 내보내고 빌드 아티팩트(관리형 솔루션)를 생성하고 프로덕션 환경에 앱을 배포할 수 있습니다. 이 자습서에서는 구축해놓은 ALMLab 솔루션과 이전 자습서에서 설정한 환경을 사용합니다.
관련 자습서:시작 및모델 기반 앱 빌드.
GitHub 계정 만들기
https://github.com으로 이동하여 가입 또는 무료 평가판 시작(또는 기존 계정이 있는 경우, 로그인)을 클릭합니다.
계정을 만든 후 리포지토리 만들기 또는 새로 만들기를 선택하여 리포지토리를 만듭니다.
다음과 같은 대체 랜딩 화면이 표시될 수 있습니다.
새 리포지토리를 만들고 이름을 'poweractionslab'으로 지정합니다. README 파일 추가를 선택하여 리포지토리를 시작하고 리포지토리 만들기를 선택했는지 확인합니다.
서비스 주체 인증을 위한 새 암호 만들기
저장소로 이동하여 설정을 클릭한 다음, 비밀을 확장하고 작업을 클릭합니다.
암호 페이지에서 암호 이름을 'PowerPlatformSPN'으로 지정합니다. Microsoft Entra에서 만든 애플리케이션 등록의 클라이언트 암호를 사용하여 값 필드에 입력한 다음 암호 추가를 선택합니다. 클라이언트 암호는 이 실습의 뒷부분에서 GitHub 워크플로를 정의하는 데 사용되는 YML 파일에서 참조됩니다.
이제 클라이언트 암호가 GitHub 암호로 안전하게 저장됩니다.
솔루션 파일 내보내기 및 새 분기에 압축을 푸는 워크플로 만들기
작업을 클릭하고 직접 워크플로 설정을 클릭하거나 이 리포지토리에 대해 제안됨 섹션 아래의 간단한 워크플로 상자에서 구성을 클릭합니다.
이렇게 하면 GitHub 작업을 시작하는 데 도움이 되는 기본 워크플로로 새 YAML 파일이 시작됩니다.
미리 생성된 콘텐츠를 삭제하고 export-and-branch-solution-with-spn-auth.yml 파일의 내용을 붙여넣은 후 파일 이름을 'export-and-branch-solution'.yml로 변경합니다.
내보낼 개발 환경의 URL로
<ENVIRONMENTURL>
을 업데이트합니다(예:https://poweractionsdev.crm.dynamics.com
).<APPID>
및<TENANT ID>
내 값으로 업데이트합니다.자격 증명을 사용하는 경우 export-and-branch-solution-with-spn-auth.yml 파일 내용 대신 export-and-branch-solution.yml 파일을 붙여넣습니다. 환경에 연결하는 데 사용하는 사용자 이름으로
<USERNAME>
을 업데이트합니다.
팁
GitHub 작업에 익숙하지 않고 자세히 알아보려면 https://docs.github.com/en/actions에서 공식 문서를 확인하세요.
이제 변경 내용을 커밋할 준비가 되었습니다. 커밋 시작을 선택하고 제목 필드에 Create export yml을 입력한 다음 설명(선택 사항)을 추가합니다. 다음으로 새 파일 커밋을 클릭합니다.
축하합니다. 다음 작업을 사용하여 첫 번째 GitHub 워크플로를 만들었습니다.
- 저는 누구입니까: 내보내는 환경에 성공적으로 연결할 수 있도록 보장합니다.
- 솔루션 내보내기: 개발 환경에서 솔루션 파일을 내보냅니다.
- 솔루션 압축 해제: 서버에서 내보내지는 솔루션 파일은 통합된 구성 파일이 들어 있는 압축(zip) 파일입니다. 이러한 초기 파일은 소스 코드 관리 시스템이 파일에 대한 차이점을 적절하게 수행하고 소스 제어에 커밋하려는 변경 내용을 캡처할 수 있도록 구성되지 않았기 때문에 소스 코드 관리에 적합하지 않습니다. 소스 제어 스토리지 및 처리에 적합하도록 솔루션 파일을 '압축 해제'해야 합니다.
- 브랜치 솔루션: 내보낸 솔루션을 저장할 새 브랜치를 만듭니다.
내보내기 및 압축 해제 워크플로 테스트
다음으로 워크플로가 실행되는지 테스트합니다. 작업, 워크플로 실행으로 이동하고 워크플로 실행을 선택합니다. 'ALMLab'과 다른 솔루션 이름이 있는 경우 여기에서 값을 변경하고 다른 값은 그대로 둡니다.
5~10초 후에 워크플로가 시작되고 실행 중인 워크플로를 선택하여 진행 상황을 모니터링할 수 있습니다.
워크플로가 완료된 후 솔루션/ALMLab 폴더에 솔루션의 압축을 푼 새 분기가 생성되었는지 확인합니다. 코드 탭 으로 이동하고 분기 드롭다운 을 확장합니다.
작업에서 만든 분기를 선택합니다.
새 분기에 솔루션/ ALMLab 폴더가 생성되었는지 확인한 다음 변경 내용을 기본 분기에 병합하는 끌어오기 요청을 만듭니다. 기여 를 클릭하고 플라이아웃에서 풀 리퀘스트 열기 를 클릭합니다.
끌어오기 요청 열기 화면에서 원하는 대로 제목과 설명을 추가한 다음 끌어오기 요청 만들기를 클릭합니다.
새로 생성된 끌어오기 요청을 보여주는 화면이 업데이트됩니다. 끌어오기 요청이 생성되면 우리 분기가 메인 분기와 충돌하지 않는다는 확인 메시지가 제공됩니다. 이 확인은 변경 사항이 자동으로 기본 분기에 병합될 수 있음을 의미합니다. 풀 리퀘스트 병합 을 클릭한 다음, 병합 확인 을 클릭합니다. 선택적으로 분기 삭제를 클릭하여 지금은 사용되지 않는 분기를 정리합니다.
기본(메인) 분기로 다시 이동하여 이제 솔루션을 사용할 수 있는지 확인합니다.
재사용 가능한 워크플로를 만들어 빌드 아티팩트를 생성하고 프로덕션으로 가져오기
이 섹션에서는 다음과 같은 추가 워크플로를 만듭니다.
- 관리형 솔루션를 만들고 GitHub 아티팩트로 게시합니다.
- 빌드 아티팩트를 프로덕션 환경으로 가져옵니다.
작업으로 이동하고 새로운 워크플로를 선택합니다.
워크플로 직접 설정을 선택합니다.
워크플로 제목을 'release-solution-to-prod-with-inputs'로 변경하고 콘텐츠를 release-solution-to-prod-with-inputs.yml에서 복사하여 새 파일 편집 화면에 붙여넣습니다.
변경 내용을 커밋합니다. 커밋 시작을 선택한 다음 제목과 설명(선택 사항)을 추가합니다. 다음으로 새 파일 커밋을 선택합니다.
릴리스 이벤트에서 재사용 가능한 워크플로 호출
이 섹션에서는 릴리스 이벤트에 대한 재사용 가능한 워크플로를 호출합니다.
작업으로 이동하고 새로운 워크플로를 선택합니다.
워크플로를 직접 설정을 선택합니다.
워크플로 제목을 ‘release-action-call’로 변경하고 콘텐츠를 release-action-call.yml에서 복사하여 새 파일 편집 화면에 붙여넣습니다.
새 워크플로 파일에서 다음 변수를 업데이트합니다.
- 관리형 솔루션을 생성하는 데 사용 중인 빌드 환경의 URL로
<BUILD_ENVIRONMENT>
을 업데이트합니다. 예:https://poweractionsbuild.crm.dynamics.com
. - 배포할 프로덕션 환경의 URL로
<PROD_ENVIRONMENT>
을 업데이트합니다. 예: https://poweractionsprod.crm.dynamics.com. - 이 자습서에서 이전에 만든 등록을 클릭하여 Microsoft Azure 포털의 앱 등록 블레이드에서 찾을 수 있는 애플리케이션(클라이언트) ID로
<APP_ID>
를 업데이트합니다. - 이 자습서에서 이전에 만든 등록을 클릭하여 Microsoft Azure 포털의 앱 등록 블레이드에서 찾을 수 있는 디렉토리(테넌트) ID로
<TENANT_ID>
를 업데이트합니다.
- 관리형 솔루션을 생성하는 데 사용 중인 빌드 환경의 URL로
변경 내용을 커밋합니다. 커밋 시작을 선택한 다음 제목(선택 사항)과 설명(선택 사항)을 추가합니다. 다음으로 새 파일 커밋을 선택합니다.
프로덕션 워크플로에 대한 릴리스 테스트
이제 마지막 워크플로를 테스트할 준비가 되었습니다. 이 워크플로는 새 릴리스가 프로덕션에 배포될 때 트리거됩니다.
릴리스으로 이동합니다.
새 릴리스 초안 작성을 선택합니다.
릴리스 태그, 제목을 추가하고 릴리스 게시를 선택합니다.
작업을 선택하여 실행 중인 워크플로를 확인합니다.
실행 중인 작업을 보려면 실행 중인 워크플로를 선택합니다.
각 작업이 완료될 때까지 기다립니다.
워크플로가 완료되면 프로덕션 환경에 로그인하고 솔루션이 관리형 솔루션으로 배포되었는지 확인합니다.
프로덕션 릴리스 전에 업데이트 배포 및 변경 내용 검토
이제 엔드투엔드 프로세스를 테스트한 다음 프로덕션에 배포하기 전에 앱의 변경 내용을 확인하고 유효성을 검사하는 방법을 살펴보겠습니다.
개발 환경에서 ALMLab 솔루션으로 이동하여 편집을 선택하거나 솔루션 표시 이름을 클릭합니다.
휴가 요청 테이블을 선택하여 봅니다.
+ 열 추가를 클릭하고 아래 그림과 같이 새 열을 만듭니다.
업데이트된 필드 값:**
- 표시 이름: 승인됨
- 데이터 유형: 예/아니요
완료를 클릭합니다.
테이블 저장을 선택합니다.
GitHub 리포지토리 작업 탭으로 돌아가 워크플로 실행을 선택하고 워크플로 실행 단추를 선택합니다.
5~10초 후에 워크플로가 시작되고 실행 중인 워크플로를 클릭하여 진행 상황을 모니터링할 수 있습니다.
워크플로가 완료되면 코드 및 분기를 차례대로 선택하여 새 분기로 이동합니다.
기여 확장으로 생성된 분기를 선택하고 끌어오기 요청 열기를 클릭합니다.
제목(선택 사항)을 추가한 다음 끌어오기 요청 생성을 클릭합니다.
콘텐츠 업데이트 후 변경된 파일 탭을 클릭합니다.
솔루션의 변경 내용이 녹색으로 강조 표시되어 기본 분기의 동일한 파일과 비교할 때 파일의 이 섹션이 추가되었음을 나타냅니다.
대화 탭으로 다시 이동합니다. 끌어오기 요청를 선택한 다음 이전에 생성한 끌어오기 요청을 선택합니다.
끌어오기 요청 페이지에서 스쿼시 및 병합을 선택하여 업데이트된 솔루션 파일을 메인 분기에 병합하고 선택적으로 현재 메인에 병합된 파일을 삭제합니다.
프로덕션 워크플로로 릴리스 테스트 섹션의 단계에 따라 새 릴리스를 만들고 업데이트된 솔루션이 프로덕션 환경에 배포되었는지 확인합니다.
축하합니다. GitHub 작업을 사용하여 샘플 CI/CD 워크플로를 성공적으로 설정했습니다!