다음 섹션에서는 Microsoft Power Platform 대한 GitHub Actions 설명합니다. 섹션에서는 샘플 GitHub 워크플로도 보여 줍니다. GitHub Actions 및 다운로드 방법에 대한 자세한 내용은 Microsoft Power Platform 대한 GitHub Actions 참조하세요.
Microsoft Power Platform에서 GitHub Actions에 사용할 자격 증명 구성
많은 작업을 수행하려면 Microsoft Dataverse 환경에 연결해야 합니다. 서비스 주체 또는 사용자 자격 증명을 GitHub 리포지토리에 시크릿으로 추가한 다음 워크플로에서 사용합니다.
GitHub 비밀을 설정하는 방법에 대한 자세한 내용은 암호화된 비밀을 참조하세요.
Microsoft Power Platform 대한 서비스 주체 인증을 설정하는 방법에 대한 자세한 내용은 DevOps Build 도구를 참조하세요.
자격 증명을 구성한 후 작업 스크립트 내에서 서비스 주체를 호출할 수 있습니다.
GitHub 작업 스크립트 내에서 환경 변수로 다음 매개 변수를 정의합니다.
- 애플리케이션 ID(예:
WF_APPLICATION_ID:<your application id>) - 테넌트 ID(예:
WF_TENANT_ID:<your tenant id>)
클라이언트 시크릿을 GitHub secret으로 추가합니다. 다음과 같은 매개 변수를 사용하여 워크플로 내에서 참조합니다. client secret: ${{secrets.CLIENT_SECRET_GITHUB_ACTIONS}}
도우미 작업
다음 도우미 작업을 사용할 수 있습니다.
actions-install
GitHub Actions 워크플로가 실행기의 컨텍스트에서 Power Platform CLI를 강제로 설치하고 시간 제한 오류가 발생하면 다음 예제와 같이 추가 작업()과 함께 버전 1(actions-install@v1)을 사용합니다.
중요
- 버전 1(@v1)을 사용하면 기존 GitHub Actions가 업데이트될 수 있으며, 그 결과 현재 워크플로가 변경될 수 있습니다.
- Power Platform에 대한 다른 GitHub Actions 전에 워크플로의 첫 번째 작업으로 Power Platform Tools 설치 태스크를 추가합니다.
jobs:
builds:
runs-on: windows-latest # alternate runner OS is: ubuntu-latest
steps:
- name: Install Power Platform Tools
uses: microsoft/powerplatform-actions/actions-install@v1
- name: Export Solution
uses: microsoft/powerplatform-actions/export-solution@v1
with:
environment-url: 'https://myenv.crm.dynamics.com'
user-name: 'me@myenv.onmicrosoft.com'
password-secret: ${{ secrets.MYPASSWORD }}
solution-name: aSolution
solution-output-file: 'aSolution.zip'
working-directory: 'out'
Power Platform Actions에서 더 많은 GitHub Actions 예제를 찾을 수 있습니다.
whoAmI
서비스에 연결하고 WhoAmI [SDK/Web API] 요청을 전송하여 서비스 연결을 확인합니다. 이 작업은 처리를 시작하기 전에 연결 상태를 확인할 수 있도록 GitHub 워크플로 초기에 포함해 두면 유용할 수 있습니다.
| 매개변수 | 설명 |
|---|---|
| environment-url | 연결 중인 환경의 URL입니다. |
| user-name | 연결에 사용하는 계정의 사용자 이름입니다. |
| password-secret | user-name의 비밀번호. Settings의 Secrets에서 GitHub 암호를 정의합니다. 비밀을 정의하고 저장한 후에는 검색할 수 없습니다. |
| app-id | 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| client-secret | GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| tenant-id |
app-id 및 client-secret으로 인증할 때의 테넌트 ID |
솔루션 관련 작업
이러한 작업은 솔루션에 대한 작업을 수행하며 다음을 포함합니다.
import-solution
솔루션을 대상 환경으로 가져옵니다.
| 매개변수 | 설명 |
|---|---|
| environment-url | (필수) 솔루션을 가져올 대상 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com). |
| user-name | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다. |
| password-secret | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호 |
| solution-file | (필수) 가져올 솔루션 파일의 경로와 이름입니다. |
| app-id | 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| client-secret | GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| tenant-id |
app-id 및 client-secret으로 인증할 때의 테넌트 ID |
export-solution
원본 환경에서 솔루션을 내보냅니다.
| 매개변수 | 설명 |
|---|---|
| environment-url | (필수) 솔루션을 내보내려는 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com). |
| user-name | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다. |
| password-secret | (필수) 사용자 이름/암호 인증을 사용하는 경우 사용자 이름에 대한 암호입니다. 비밀 아래 설정에서 GitHub 암호를 정의합니다. 비밀을 정의하고 저장한 후에는 검색할 수 없습니다. |
| app-id | 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| client-secret | GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| tenant-id |
app-id 및 client-secret으로 인증할 때의 테넌트 ID |
| solution-name | (필수) 내보낼 솔루션의 이름입니다. 항상 솔루션의 이름을 사용하고 표시 이름은 사용하지 마십시오. |
| solution-output-file | (필수) 원본 환경을 내보낼 solution.zip 파일의 경로 및 이름입니다. |
| 관리형 | (필수) 관리형 솔루션으로 내보내려면 true로 설정하십시오. 기본값(false)은 비관리형 솔루션으로 내보내는 것입니다. |
unpack-solution
압축된 솔루션 파일을 받아 여러 XML 파일로 분해합니다. 소스 제어 시스템에서 이러한 파일을 더 쉽게 읽고 관리할 수 있습니다.
| 매개변수 | 설명 |
|---|---|
| solution-file | (필수) 압축해제할 solution.zip 파일의 경로 및 파일 이름입니다. |
| solution-folder | (필수) 솔루션의 압축을 풀려는 경로 및 대상 폴더입니다. |
| solution-type | (필수) 추출하려는 솔루션 유형입니다. 옵션은 비관리형(권장), 관리형, 둘 모두입니다. |
pack-solution
소스 제어에 있는 솔루션을 다른 환경으로 가져올 수 있는 solution.zip 파일에 압축합니다.
| 매개변수 | 설명 |
|---|---|
| solution-file | (필수) 솔루션을 압축하여 저장할 solution.zip 파일의 경로 및 파일 이름입니다(예: out/CI/ALMLab.zip). |
| solution-folder | (필수) 패키지할 솔루션의 경로 및 원본 폴더입니다. |
| solution-type | (선택 사항) 포장할 용액 유형입니다. 옵션은 비관리형(권장), 관리형, 둘 모두입니다. |
publish-solution
솔루션 사용자 지정을 게시합니다.
| 매개변수 | 설명 |
|---|---|
| environment-url | (필수) 솔루션을 게시할 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com). |
| user-name | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다. |
| password-secret | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호 |
| solution-file | (필수) 가져올 솔루션 파일의 경로와 이름입니다. |
| app-id | 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| client-secret | GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| tenant-id |
app-id 및 client-secret으로 인증할 때의 테넌트 ID |
clone-solution
특정 환경에 대한 솔루션을 복제합니다.
| 매개변수 | 설명 |
|---|---|
| environment-url | (필수) 솔루션을 복제하려는 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com). |
| user-name | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다. |
| password-secret | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호 |
| solution-file | (필수) 가져올 솔루션 파일의 경로와 이름입니다. |
| app-id | 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| client-secret | GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| tenant-id |
app-id 및 client-secret으로 인증할 때의 테넌트 ID |
| solution-name | (필수) 복제에 필요한 solution.zip 파일의 경로 및 이름입니다(예: out/CI/ALMLab.zip). |
| solution-version | 복제할 솔루션 버전 |
| target-folder | 추출된 솔루션을 저장할 대상 폴더입니다. (예: Git repository\target-solution-folder). |
| Working-directory | 솔루션 복제에 필요한 진행 중인 아티팩트를 위한 임시 폴더입니다. 기본값: root of the repository |
check-solution
불일치를 감지하기 위해 솔루션 파일을 확인합니다.
| 매개변수 | 설명 |
|---|---|
| environment-url | (필수) 솔루션을 복제하려는 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com). |
| user-name | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다. |
| password-secret | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호 |
| app-id | 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| client-secret | GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| tenant-id |
app-id 및 client-secret으로 인증할 때의 테넌트 ID |
| 경로 | (필수) 검사할 솔루션 파일의 경로와 이름입니다. |
| geo | 사용할 Microsoft Power Platform 검사기 서비스의 지리적 위치 기본값은 'united states'입니다. |
| rule-level-override | 규칙 및 해당 수준의 JSON 배열을 포함하는 파일 경로입니다. 허용되는 값은 Critical, High, Low 및 Informational입니다. 예: [{"Id":"meta-remove-dup-reg","OverrideLevel":"Medium"},{"Id":"il-avoid-specialized-update-ops","OverrideLevel":"Medium"}] |
| checker-logs-artifact-name | Microsoft Power Platform 검사기 로그가 업로드될 아티팩트 폴더의 이름입니다. 기본값은 'CheckSolutionLogs'입니다. |
upgrade-solution
솔루션을 업그레이드합니다.
| 매개변수 | 설명 |
|---|---|
| environment-url | (필수) 솔루션을 복제하려는 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com). |
| user-name | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 사용자 이름 |
| password-secret | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호. |
| solution-file | (필수) 가져올 솔루션 파일의 경로와 이름입니다. |
| app-id | 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| client-secret | GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 시크릿입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| tenant-id |
app-id 및 client-secret으로 인증할 때의 테넌트 ID |
| solution-name | (필수) 업그레이드할 솔루션 이름 |
| async | 솔루션을 비동기적으로 업그레이드합니다. |
| max-async-wait-time | 최대 비동기 대기 시간(분)입니다. 기본값은 60분입니다. |
패키지 작업
이러한 작업은 패키지에 대해 작업을 수행합니다.
deploy-package
패키지 DLL 또는 패키지가 포함된 ZIP 파일을 배포합니다.
참고
이 작업은 Windows에서만 지원됩니다.
| 매개변수 | 설명 |
|---|---|
| environment-url | (필수) 솔루션을 복제하려는 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com). |
| user-name | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다. |
| password-secret | (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호 |
| app-id | 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| client-secret | GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| tenant-id |
app-id 및 client-secret으로 인증할 때의 테넌트 ID |
| 패키지 | (필수) 패키지 DLL 또는 패키지가 들어 있는 ZIP 파일의 경로입니다. |
포털 작업
이러한 작업은 Power Pages에서 다음 작업을 수행합니다.
upload-paportal
Power Pages에 데이터를 업로드합니다.
| 매개변수 | 설명 |
|---|---|
| environment-url | (필수) 솔루션을 가져올 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com). |
| app-id | 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| client-secret | GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다. |
| tenant-id |
app-id 및 client-secret으로 인증할 때의 테넌트 ID |
| upload-path | 웹 사이트 콘텐츠가 저장된 경로(alias: -p). |
| deployment-profile | deployment-profiles/[profile-name].deployment.yaml 파일의 프로필 변수를 통해 정의된 환경 세부 정보를 사용하여 포털 데이터를 업로드합니다. |
| 모델 버전 | 업로드할 사이트 데이터가 표준() 또는 2(1)을 사용하는지 여부를 나타냅니다. 기본값은 1여야 합니다. |
Power Pages에 대한 Microsoft Power Platform CLI 지원에 대해 자세히 알아보세요.
카탈로그 작업 (프리뷰)
이러한 작업은 Power Platform의 카탈로그에 대해 작업을 수행합니다.
참고
현재 Power Platform의 카탈로그 작업은 미리 보기로 제공됩니다.
설치
대상 환경에 Catalog 항목을 설치합니다.
| 매개변수 | 설명 |
|---|---|
| catalog-item-id | (필수) 대상 환경에 설치할 카탈로그 항목입니다. |
| target-url | (필수) 카탈로그 항목 설치에 대한 대상 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com). |
| 설정 | (필수) 설치 프레임워크를 실행하는 데 필요한 런타임 패키지 설정입니다. 문자열의 형식은 key=value|key=value이어야 합니다. |
| 대상 버전 | 설치할 버전입니다. 버전을 지정하지 않으면 게시된 버전이 선택됩니다. |
| poll-status | 요청 상태를 확인합니다. |
제출
현재 Dataverse 환경(조직)에서 게시된 모든 카탈로그 항목을 나열합니다.
| 매개변수 | 설명 |
|---|---|
| path | (필수) 카탈로그 제출 문서의 경로입니다. |
| package-zip | 패키지 zip 파일 경로입니다. |
| solution-zip | 솔루션 zip 파일 경로입니다. |
| poll-status | 요청 상태를 확인하기 위한 폴링. |
상태
카탈로그 설치 또는 제출 요청 제출 상태를 가져옵니다.
| 매개변수 | 설명 |
|---|---|
| tracking-id | (필수) 요청 추적 ID. |
| 유형 | (필수) 요청 유형입니다. 유효한 값은 Install 및 Submit입니다. |
GitHub 워크플로 작성
GitHub Actions를 사용하여 GitHub 워크플로를 작성하는 방법에 대해 자세히 알아보려면 Microsoft Power Platform용 GitHub Actions 랩을 완료하세요.
자세한 내용은 GitHub Actions 정보를 참조하세요.