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